【问题标题】:admob mediation custom event Request Error: No ad to show from all configured ad networksadmob 中介自定义事件请求错误:没有广告可从所有配置的广告网络中显示
【发布时间】:2013-06-22 03:23:56
【问题描述】:

我在developers.google.com 上关注了custom event example,但未能从自定义广告网络接收到标题错误的广告。

在我为自定义事件请求广告后,CustomAd 类中的 requestBannerAd:parameter:label:request: 确实被调用了。但随后(几秒钟后),它跳到adView:didFailToReceiveAdWithError: 并出现以下错误。我在requestBannerAd:parameter:label:request: 中的自定义网络广告请求不起作用。

Error Domain=com.google.ads Code=9 “请求错误:所有配置的广告网络都没有广告可展示。” UserInfo=0x1e8e31a0 {NSLocalizedDescription=请求错误:所有配置的广告网络都没有广告可显示。, NSLocalizedFailureReason=请求错误:所有配置的广告网络都没有广告可显示。}

我尝试将[self.delegate customEventBanner:self didReceiveAd:bannerView_]; 添加到requestBannerAd:parameter:label:request:,然后就可以了。

我的问题是:

我做得对吗?我是否应该从requestBannerAd:parameter:label:request:手动调用[self.delegate customEventBanner:self didReceiveAd:bannerView_];,官方文档中没有提到。

对于稍后触发requestBannerAd:parameter:label:request: 的自定义事件广告请求,我是否应该为其设置gadBannerView_.delegate。当我设置它,然后成功接收到自定义事件(requestBannerAd:parameter:label:request: 被调用)时,为什么adView:didFailToReceiveAdWithError 被调用而不是adViewDidReceiveAd:

【问题讨论】:

    标签: ios admob custom-events


    【解决方案1】:

    您确实需要在自定义事件流中的某个时间点调用[self.delegate customEventBanner:self didReceiveAd:bannerView_];。如果您在调用 requestBannerAd:parameter:label:request: 后的大约 5 秒内未执行此操作,AdMob 中介将根据您的自定义事件请求超时并继续操作。这就是您看到该消息的原因:

    Error Domain=com.google.ads Code=9 “请求错误:所有配置的广告网络都没有广告可展示。” UserInfo=0x1e8e31a0 {NSLocalizedDescription=请求错误:所有配置的广告网络都没有广告可显示。, NSLocalizedFailureReason=请求错误:所有配置的广告网络都没有广告可显示。}

    至于何时调用[self.delegate customEventBanner:self didReceiveAd:bannerView_];,这取决于您的自定义事件。如果您的自定义事件只返回一个静态图像,您可以使用该图像直接在requestBannerAd:parameter:label:request: 中调用didReceiveAd:

    但是,如果您正在实施 AdMob 中介尚不支持的广告网络,那么他们很可能会在收到广告时告诉您某种听众(在 AdMob 的情况下,这将是 GADBannerViewDelegate' s adViewDidReceiveAd 回调)。您应该监听该网络收到的广告回调,并在该监听器中调用 didReceiveAd:

    对于最终触发您的自定义事件的 AdMob 的主要 GADRequest,您应该在您的 GADBannerView 上设置一个 GADBannerViewDelegate 以侦听来自您的自定义事件或您在中介中可能拥有的任何其他网络的回调流动。如果您收到adViewDidReceiveAd:,则表明 AdMob 中介从您的一个网络中发现了一个广告。

    【讨论】:

      【解决方案2】:

      我在 Xamarin.iOS 中遇到同样的问题,但现在我已经解决了:

      [按照此步骤][对于 Xamarin.iOS] `我。我在这里传递了一个广告暴民请求:

        adView.LoadRequest(request);
      

      二。如果 adview 在加载广告请求时失败。

       adView.ReceiveAdFailed += (object sender, BannerViewErrorEventArgs ea) => {
                                              viewOnScreen = false;
                          Console.WriteLine(ea.Error.Description);
                          adView.LoadRequest(request);
                                          };
      

      三。然后我们会在这里得到暴民广告响应。

       adView.AdReceived += (sender, args) =>
                      {
                          viewOnScreen = true;
                          if (!viewOnScreen) this.AddSubview(adView);
                      };`
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-02-02
        • 1970-01-01
        • 2016-10-16
        • 2018-08-15
        • 2016-12-30
        • 1970-01-01
        • 2018-04-06
        • 1970-01-01
        相关资源
        最近更新 更多