【问题标题】:Interstitial don't appear.不显示插页式广告。
【发布时间】:2015-02-09 17:00:43
【问题描述】:

我使用此代码添加插页式广告:

    - (void)applicationDidBecomeActive:(UIApplication *)application
{
    GADRequest *request = [GADRequest request];

    request.testDevices = [NSArray arrayWithObjects:
                           GAD_SIMULATOR_ID,
                           nil];



    gadinter = [[GADInterstitial alloc] init];
    gadinter.delegate = self;
    gadinter.adUnitID = @"ca-app-pub-8360827428091030/4165686904";

    [gadinter loadRequest:request];
}

- (void)interstitialDidReceiveAd:(GADInterstitial *)interstitial {

    [gadinter presentFromRootViewController:self.window.rootViewController];
}

我得到了这个:

2015-02-09 18:57:12.636 iStrobe[5951:1824030] <Google> Cannot present interstitial. It is not ready. 2015-02-09 18:57:13.801 iStrobe[5951:1824030] <Google> No UIViewController supplied to the ad. Cannot continue.

知道为什么吗?在其他应用程序中它可以工作。

【问题讨论】:

  • 你的 rootViewControlelr 是什么?是UINavigationController,还是UITabBarController,还是UIViewController
  • 你能在[gadinter presentFromRootViewController:self.window.rootViewController]前面加一个NSLog(%"%@", self.window.rootViewController),看看值是多少?会不会是nil
  • 我正在浏览documentation。似乎他们将广告初始化代码放在viewDidLoad 中。当这个 - (void)interstitialDidReceiveAd:(GADInterstitial *)interstitial 被调用时,你的 rootViewController 可能还没有准备好。
  • 感谢@YuchenZhong,我在viewDidLoad中添加了,现在可以了。
  • 那太好了,如果您弄清楚了,您可以自己写答案,以便将来对其他人有所帮助..

标签: ios objective-c interstitial


【解决方案1】:

在我的 viewController 中我添加了这个:

- (void)viewDidLoad {


    GADRequest *request = [GADRequest request];

    request.testDevices = [NSArray arrayWithObjects:
                           GAD_SIMULATOR_ID,
                           nil];



    gadinter = [[GADInterstitial alloc] init];
    gadinter.delegate = self;
    gadinter.adUnitID = @"ca-app-pub-8360827428091030/4165686904";

    [gadinter loadRequest:request];

}

- (void)interstitialDidReceiveAd:(GADInterstitial *)interstitial {
    [gadinter presentFromRootViewController:self];
}

【讨论】:

  • 我试过这个,但由于某种原因 interstitialDidReceiveAd 永远不会执行。如果我等待足够的时间,我可以手动显示广告,但其他所有配置都正确,只是代理没有执行。
猜你喜欢
  • 1970-01-01
  • 2022-11-25
  • 1970-01-01
  • 1970-01-01
  • 2014-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多