目标 C语言 不调用 iAd 插页式委托方法



我想在我的应用中使用插播式广告,所以我实现了所有必要的委托方法。问题是,如果我使用[self requestInterstitialAdPresentation]来显示广告,只有interstitialaddload:方法被调用。interstialadactiondidfinish:方法不会被调用…

但是如果我使用已弃用的[self.interstitial presentFromViewController:self]来显示广告,一切都有效。

是否有新的实现使事情工作?

Thanks in advance

好的,我解决了这个问题。

自从IOS7有了iAd的附加功能,就不需要adinterstialdelegate了。唯一要做的就是准备广告或将interstitialPresentationPolicy设置为非none(你可以在文档中阅读),并作为最后一步使用requestInterstitialAdPresentation:方法请求广告。

iOS 9.2.1, Xcode 7.2.1, ARC enabled

@Jellyjoey我确认,当广告关闭时,viewDidAppear被调用。如您所料,当您点击广告时,viewDidDisappear被调用。

这与你如何展示插播广告有关:

完成广告动作

如果全屏广告显示富媒体广告在你的应用程序中,它方法之后调用委托的interstialadactiondidfinish:方法广告结束。此方法的实现应该恢复任何当动作开始时,应用程序暂停服务。

重要提示:如果你的应用被移动到后台,因为参数willLeave为YES,则应用程序的用户界面为never被横幅视图覆盖,你的应用程序不会收到调用interstitialAdActionDidFinish:。但是,如果您的接口被覆盖通过横幅视图,你的应用仍然可以移动到后台后来,要么是因为广告启动了另一个应用程序,要么因为用户选择这样做。在所有情况下,如果你的用户界面被横幅视图覆盖,它是未覆盖的,而你的委托呢interstialadactiondidfinish:在应用移动到背景。因为应用可能会移到后台,你的delegate应该从它的interstialadactiondidfinish快速返回:方法。

查看上面的节选和其他插页式广告指南:

https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/iAd_Guide/Full-ScreenAdvertisements/Full-ScreenAdvertisements.html//apple_ref/doc/uid/TP40009881-CH5-SW24

下面是苹果公司提供的关于如何使用整页广告的两个例子:

https://developer.apple.com/library/ios/samplecode/iAdInterstitialSuite/Introduction/Intro.html//apple_ref/doc/uid/DTS40010627-Intro-DontLinkElementID_2

最新更新