除非在测试设备上,否则iOS AdMob广告不会显示

时间:2014-11-18 15:46:15

标签: ios admob adbannerview

我已按照Google提供的教程:https://developers.google.com/mobile-ads-sdk/docs/admob/ios/quick-start来设置admob横幅广告。

我的代码正是从上面链接的指南中显示的,所以当我在我的测试设备或模拟器上运行应用时,会出现“智能横幅”“测试广告”。但是,第二个我删除了根本没有横幅的代码行出现了..

 request.testDevices = @[ @"70b9ee4e66c8e6fa26cb84def25706d9" ];

此外,我已将应用程序加载到另一台设备上,但仍然没有出现广告横幅,这让我想知道当我将应用程序提交到App Store时,只有我的所有用户都不会看到广告才有意义在他们的设备上。为什么会这样?我一直在摸不着头脑!我不想提交它进行审核,直到我确定一切正常并且我知道广告不仅会出现在测试设备上,还会出现在应用程序上。提前致谢! :)

10 个答案:

答案 0 :(得分:3)

-(void)adViewDidReceiveAd:(GADBannerView *)bannerView;
-(void)adView:(GADBannerView *)bannerView didFailToReceiveAdWithError:(GADRequestError *)error;

不显示实时广告可能有多种原因。

  1. 检查您的google admob帐户以获取付款信息​​。如果没有填写,请填写。
  2. 检查您的设备是否已注册为测试设备,否则您可能会被Google停用30天左右。
  3. 您可以检查委托方法并打印日志:
  4. 在我的情况下,我收到了错误 {'错误':'请求错误:没有要展示的广告。',' adType' :'横幅' }

    但在我交付给客户后,它在客户端显示出来。所以,我认为这个问题是由于谷歌在我所在的地区没有广告的原因。

答案 1 :(得分:2)

奇怪的解决方案,但它有效:

按照Google提供的指南在iOS中设置广告调解,它会告诉您通过Storyboard / nib实现它。一旦我删除了这个方法并简单地以编程方式实现了GADBannerView,一切都开始按预期工作了。相当恼人的问题,但幸运的是它已经解决了,我可以继续前进。

答案 2 :(得分:2)

如果您使用的是iOS10,则应将其添加到.plist:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
    <key>NSAllowsArbitraryLoadsForMedia</key>
    <true/>
    <key>NSAllowsArbitraryLoadsInWebContent</key>
    <true/>
</dict>

否则只会显示测试广告。您可以在Firebase&#39; Admob documentation找到有关它的更多详细信息。

答案 3 :(得分:1)

我有同样的问题。

我的错误是我在AdMob中为我的Android应用程序创建了一个应用程序,效果很好,但是当在iOS中创建应用程序时,我所做的就是在同一个应用程序下创建另一个广告单元。这样做,给了我你看到的相同结果。

为了解决这个问题,我在AdMob内部创建了一个适用于iOS平台的新应用程序,在其中创建了一个广告单元,它解决了我的问题,现在我在应用程序中看到了真实的广告。

答案 4 :(得分:0)

您是否在AdMob注册了帐户?如果是这样,您是否已使用自己的快速入门替换了快速入门中包含的测试广告单元ID?如果没有,这可以解释您所看到的行为(示例中的ID仅适用于测试广告,并且不会提供真实的广告)。

广告单元ID可识别您应用中的广告展示位置,对您而言是独一无二的。用于生成一个的AdMob说明位于their help documentation

答案 5 :(得分:0)

如果您的设置中的广告跟踪数量有限,则会出现这种情况。在您的设备上,检查限制广告跟踪是否启用:

设置 - &gt;隐私 - &gt;广告

答案 6 :(得分:0)

就我而言,这实际上是由于我没有使用正确的广告单元ID(斜杠后的部分)造成的。当我使用google提供的示例ID时,便能够找到答案,然后转到我的admob帐户,单击横幅广告,我意识到plist(或应用程序委托中应用程序的初始设置)和广告单元是不同的。我大概花了几个小时:-(

答案 7 :(得分:0)

我返回了以下错误:“广告请求成功,但由于缺少广告资源而没有返回任何广告。”这也可以解释为什么广告不会展示。

答案 8 :(得分:0)

如果其他人仍在寻找它,这就是解决方案。

bannerView = GADBannerView();

GADMobileAds.sharedInstance().requestConfiguration.testDeviceIdentifiers = 
["YOUR DEVICE ID" ]
        bannerView.adUnitID = "YOUR ADMOB ID"
        bannerView.frame = CGRect(x: 0, y: screenHeight * 0.25, width: screenWidth, height: screenWidth * 0.2) // you can customise this
        bannerView.rootViewController = self
        let request = GADRequest()
        bannerView.load(request)
        self.view.addSubview(bannerView);

答案 9 :(得分:-2)

您在我认为的google admob帐户中注册了您的帐户。您为自己的注册帐户拥有自己的测试ID。按照确切的程序检查&#34; self.bannerView.adUnitID&#34;并检查代码&#34; self.bannerView.rootViewController = self;&#34;在objectice-c编程中你在代码中遵循的内容。 最重要的是检查默认大小的正确横幅大小。 祝你成功。 享受编码..