我关注了developers.google.com上的custom event example,但未能通过标题中的错误从自定义广告网络接收广告。
在我为自定义事件请求广告后,类requestBannerAd:parameter:label:request:
中的CustomAd
确实被调用了。但随后(几秒钟后),它跳转到adView:didFailToReceiveAdWithError:
并出现以下错误。我在requestBannerAd:parameter:label:request:
中的自定义网络广告请求无效。
错误域= com.google.ads代码= 9“请求错误:无法显示所有已配置广告网络的广告。” UserInfo = 0x1e8e31a0 {NSLocalizedDescription =请求错误:无广告显示所有已配置的广告网络。,NSLocalizedFailureReason =请求错误:无广告显示所有已配置的广告网络。}
我尝试将[self.delegate customEventBanner:self didReceiveAd:bannerView_];
添加到requestBannerAd:parameter:label:request:
,然后就可以了。
我的问题是:
我做得对吗?我是否应该从[self.delegate customEventBanner:self didReceiveAd:bannerView_];
手动拨打requestBannerAd:parameter:label:request:
,这在官方文档中没有提及。
对于稍后触发requestBannerAd:parameter:label:request:
的自定义事件广告请求,我应该为其设置gadBannerView_.delegate
。当我设置它,然后成功接收自定义事件(requestBannerAd:parameter:label:request:
被调用)时,为什么adView:didFailToReceiveAdWithError
被调用而不是adViewDidReceiveAd:
?
答案 0 :(得分:2)
您需要在自定义事件流程中的某个时刻调用[self.delegate customEventBanner:self didReceiveAd:bannerView_];
。如果您在调用requestBannerAd:parameter:label:request:
后约5秒内未执行此操作,AdMob Mediation将会对您的自定义事件的请求超时并继续。这就是你看到这条消息的原因:
错误域= com.google.ads代码= 9“请求错误:无法显示所有已配置广告网络的广告。” UserInfo = 0x1e8e31a0 {NSLocalizedDescription =请求错误:无广告显示所有已配置的广告网络。,NSLocalizedFailureReason =请求错误:无广告显示所有已配置的广告网络。}
至于何时调用[self.delegate customEventBanner:self didReceiveAd:bannerView_];
,这取决于您的自定义事件。如果您的自定义事件只返回静态图片,则可以使用该图片直接在didReceiveAd:
中调用requestBannerAd:parameter:label:request:
。
但是,如果您正在实施一些AdMob Mediation尚未支持的广告网络,那么他们可能会有某种倾听者在收到广告时告诉您(在AdMob的情况下,这将是{{1} } GADBannerViewDelegate
回调)。您应该侦听该网络收到的广告回调,并在该侦听器中调用adViewDidReceiveAd
。
对于最终触发自定义事件的主didReceiveAd:
到AdMob,您应该在GADRequest
上设置GADBannerViewDelegate
以侦听来自自定义事件或任何其他网络的回调你可能在你的调解流程中。如果您获得GADBannerView
,则表示AdMob Mediation会从您的某个广告网络中找到广告。
答案 1 :(得分:0)
我在Xamarin.iOS中也遇到了同样的问题,但是现在我已经解决了:
[遵循此步骤] [对于Xamarin.iOS] 我在这里,我正在传递广告暴民的请求:
adView.LoadRequest(request);
II。如果adview在加载广告请求时失败。
adView.ReceiveAdFailed += (object sender, BannerViewErrorEventArgs ea) => {
viewOnScreen = false;
Console.WriteLine(ea.Error.Description);
adView.LoadRequest(request);
};
III。那么我们将在这里获得暴民广告响应。
adView.AdReceived += (sender, args) =>
{
viewOnScreen = true;
if (!viewOnScreen) this.AddSubview(adView);
};`