GADInterstitial没有在iOS上触发任何委托方法

时间:2014-07-20 10:22:53

标签: ios ios7 admob

我正在尝试将AdMob的插页式广告整合到我的iOS中,但即使一切似乎都没问题,我也没有获得任何插页式委托​​方法(包括失败)。我已将广告设置为插页式广告,并且我的广告单元ID正确无误。这是我的代码:

GADInterstitial *interstitialAd = [[GADInterstitial alloc] init];
interstitialAd.adUnitID = AD_UNIT_ID;
interstitialAd.delegate = self;
GADRequest *adRequest = [GADRequest request];
#if DEBUG
adRequest.testDevices = @[ @"9ab869b041b0e1d5a362be13c99eb69a" ];
#endif
[interstitialAd loadRequest:adRequest];

我在上面的代码中有一个断点,它正在解雇。然后,在同一个班级,我实现了委托方法:

-(void)interstitial:(GADInterstitial *)ad didFailToReceiveAdWithError:(GADRequestError *)error{
    loadedAd = nil;
}

-(void)interstitialDidReceiveAd:(GADInterstitial *)ad{
    loadedAd = ad;
    [self presentAdIfAppropriate];
}

然而,即使在等待几分钟后,也没有调用这些方法。我的设备上有稳定的互联网连接,AdMob网站的连接超时设置为4秒。为什么我的广告没有加载?

2 个答案:

答案 0 :(得分:5)

您应该在插页式广告对象上保留一个强引用(在类范围内),因为它可能会在您加载请求后释放(因为它在您的请求方法的本地范围内定义)。

答案 1 :(得分:1)

此外,请确保您已经设置并引用了您正在测试的特定iOS应用的adUnitID(在admob.com上的Monetize下)。只使用示例应用中的adUnitID,或者使用其他平台上的应用中的adUnitID将无效。症状是没有任何委托方法会触发,甚至都不会触发.FailToReceiveAdWithError。