检测插页式广告是否正在展示

时间:2014-02-04 23:36:52

标签: ios iphone objective-c iad interstitial

我目前正在我的第一个iPhone应用中实施iAd。我的问题是检测我的视图控制器上是否有实际显示插页式广告。因为,如果没有广告,我想展示另一种观点。

我一直在阅读iAd编程指南,然后在文档中找到了“UIViewController iAd Additions Reference”。这个告诉我,我的视图控制器现在有一个名为presentsFullScreenAd的新属性。

问题是每当我在viewDidLoad,viewWillAppear或viewDidAppear中调用它时,它返回NO。除非我关闭广告(如果有广告显示),否则它在viewWillAppear和viewDidAppear中返回YES,但是时间太晚了。

我设置了视频控制器的interstitialPresentationPolicy,该广告向ADInterstitialPresentationPolicyAutomatic展示广告,因为我希望它尽可能频繁地展示广告。

有关于此的任何想法? 提前谢谢。

1 个答案:

答案 0 :(得分:3)

您可能需要设置一个计时器,以便在一段时间后取消对插页式广告的请求,以便在广告未及时填充时显示下一个视图。 在显示插页式广告之前,会调用interstitialAdDidLoad。因此,如果广告已加载,则广告现在在屏幕上,直到广告被取消,其中interstitialAdDidUnloadinterstitialAdActionDidFinish将被调用。收听这些委托方法,以确定当前是否在屏幕上显示插页式广告。

-(void)interstitialAdDidLoad:(ADInterstitialAd *)interstitialAd {
    NSLog(@"interstitialAdDidLOAD");

    [interstitial presentFromViewController:self];
    NSLog(@"interstitialAdDidPRESENT");
}

-(void)interstitialAdDidUnload:(ADInterstitialAd *)interstitialAd {
    NSLog(@"interstitialAdDidUNLOAD");
}

-(void)interstitialAdActionDidFinish:(ADInterstitialAd *)interstitialAd {
    NSLog(@"interstitialAdDidFINISH");
}

另请参阅UIViewController iAd Additions Reference

相关问题