Google Admob不会在真实设备上的iOS 11中展示广告

我已经搜索并在线发现了帖子,并在StackOverflow上发现了与我相同或类似的错误消息,但是他们都没有和我一样的错误。 他们有不同的条件,即错误消息出现在不同的情况下,或者他们在不同的iOS版本等。我尝试了所有我在网上找到的解决方案。

基本上,我使用Admob在iOS应用中显示横幅广告和插页式广告。 这些应用程序已经在实时应用程序中运行了一年多,目前仍在iOS 10设备和早期版本的iOS中运行,没有任何问题。

但是当iOS更新到iOS11时,情况发生了变化。

测试广告适用于所有iOS版本的模拟器和实际设备。 实况广告适用于所有iOS版本的模拟器。 实时广告适用于iOS 10实际设备,但它们不适用于iOS 11实际设备(iOS 11上的iPhone SE)。 从商店下载的实时应用程序也是如此。

它必须归功于iOS 11中的新功能。

我在下面的横幅广告和插页式广告中收到了以下错误消息:

“adView:didFailToReceiveAdWithError:Request Error:No ad to show。”

我会在下面显示我的代码。

我也尝试重新安装应用程序。 我尝试更新我的AdWords帐户中的结算信息,并且已经检查了限制广告跟踪功能已被停用。 我也尝试更新我的iOS 11已发布的广告的实施。 仍然不起作用。 目前使用最新版本的SDK,Google Mobile Ads SDK版本:afma-sdk-i-v7.26.0。

这是我的原始代码,它仍然在iOS 10设备上的实时应用程序中运行,没有任何问题。

-(void)implementGoogleBannerAds
{
    self.googleBannerView = [[GADBannerView alloc] initWithAdSize:kGADAdSizeSmartBannerPortrait];  
    self.googleBannerView.adUnitID = @"ca-app-pub-4170137185945186/3406302758";
    self.googleBannerView.rootViewController = self;
    self.googleBannerView.delegate = self;

    // Place the ad view onto the screen.
    [self.view addSubview:self.googleBannerView]; 
    [self.googleBannerView loadRequest:[GADRequest request]];
    self.googleBannerView.hidden=NO;

}

我试图将其更新为代码Admob刚在iOS11的入门笔记中更新,但这并未改变任何内容。 它仍然可以在模拟器和iOS10真实设备上运行,但不是真正的iOS 11设备。

-(void)implementGoogleBannerAds
{
   self.googleBannerView = [[GADBannerView alloc]
                       initWithAdSize:kGADAdSizeSmartBannerPortrait];

    self.googleBannerView.adUnitID = @"ca-app-pub-4170137185945186/3406302758";
    self.googleBannerView.rootViewController = self;
    [self.googleBannerView loadRequest:[GADRequest request]];
    self.googleBannerView.delegate = self;

}

-(void)adViewDidReceiveAd:(GADBannerView *)adView {
    NSLog(@"adViewDidReceiveAd");

    self.googleBannerView.hidden=NO;
    [self addBannerViewToView:self.googleBannerView];
}

-(void)addBannerViewToView:(UIView *)bannerView {
      NSLog(@"addBannerViewToView");
    bannerView.translatesAutoresizingMaskIntoConstraints = NO;
    [self.view addSubview:bannerView];
    if (@available(ios 11.0, *)) {
        // In iOS 11, we need to constrain the view to the safe area.
        [self positionBannerViewFullWidthAtBottomOfSafeArea:bannerView];
    } else {
        // In lower iOS versions, safe area is not available so we use
        // bottom layout guide and view edges.
        [self positionBannerViewFullWidthAtBottomOfView:bannerView];
    }
}

-(void)positionBannerViewFullWidthAtBottomOfSafeArea:(UIView *_Nonnull)bannerView NS_AVAILABLE_IOS(11.0) {
    // Position the banner. Stick it to the bottom of the Safe Area.
    // Make it constrained to the edges of the safe area.
    UILayoutGuide *guide = self.view.safeAreaLayoutGuide;
        [NSLayoutConstraint activateConstraints:@[
                                                  [guide.leftAnchor constraintEqualToAnchor:bannerView.leftAnchor],
                                                  [guide.rightAnchor constraintEqualToAnchor:bannerView.rightAnchor],
                                                  [guide.bottomAnchor constraintEqualToAnchor:bannerView.bottomAnchor]
                                                  ]];

}

-(void)positionBannerViewFullWidthAtBottomOfView:(UIView *_Nonnull)bannerView {
        [self.view addConstraint:[NSLayoutConstraint constraintWithItem:bannerView
                                                              attribute:NSLayoutAttributeLeading
                                                              relatedBy:NSLayoutRelationEqual
                                                                 toItem:self.view
                                                              attribute:NSLayoutAttributeLeading
                                                             multiplier:1
                                                               constant:0]];
        [self.view addConstraint:[NSLayoutConstraint constraintWithItem:bannerView
                                                              attribute:NSLayoutAttributeTrailing
                                                              relatedBy:NSLayoutRelationEqual
                                                                 toItem:self.view
                                                              attribute:NSLayoutAttributeTrailing
                                                             multiplier:1
                                                               constant:0]];
        [self.view addConstraint:[NSLayoutConstraint constraintWithItem:bannerView
                                                              attribute:NSLayoutAttributeBottom
                                                              relatedBy:NSLayoutRelationEqual
                                                                 toItem:self.bottomLayoutGuide
                                                              attribute:NSLayoutAttributeTop
                                                             multiplier:1
                                                               constant:0]];
}

在iPhone 11.1.2上,我在iPhone 7上使用AdMob iOS SDK 7.27.0的最新cordova-plugin-admob-pro 2.30.1时出现同样的问题。 将我的设备更新到iOS 11.2.2后,问题已解决,并且SMART_BANNER大小的横幅广告和插页式广告一致显示。

链接地址: http://www.djcxy.com/p/32279.html

上一篇: Google Admob live ads not showing in iOS 11 on real device

下一篇: Why am I getting admob clicks before iphone app is released