我正在尝试将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秒。为什么我的广告没有加载?
答案 0 :(得分:5)
您应该在插页式广告对象上保留一个强引用(在类范围内),因为它可能会在您加载请求后释放(因为它在您的请求方法的本地范围内定义)。
答案 1 :(得分:1)
此外,请确保您已经设置并引用了您正在测试的特定iOS应用的adUnitID(在admob.com上的Monetize下)。只使用示例应用中的adUnitID,或者使用其他平台上的应用中的adUnitID将无效。症状是没有任何委托方法会触发,甚至都不会触发.FailToReceiveAdWithError。