在iPhone上使用iAds的插页式广告

时间:2014-07-17 12:10:12

标签: iphone objective-c uiviewcontroller iad interstitial

似乎有两种方法可以在iPhone上使用iAd显示插页式广告。关于插页式广告的文档已过时,但根据iAds Additions Reference,设置的所有操作都需要:

[UIViewController prepareInterstitialAds];
[self setInterstitialPresentationPolicy:ADInterstitialPresentationPolicyManual];

接下来是:

[self requestInterstitialAdPresentation]
每当您想要展示广告时,

(如果成功则返回bool)。

其他选项是手动创建插页式广告对象:

ADInterstitialAd *interstitial;

然后:

interstitial = [[ADInterstitialAd alloc] init];
interstitial.delegate = self;

当你想要展示广告时:

if (interstitial.isLoaded) {
    [interstitial presentFromViewController:self];
}

然而,不推荐使用PresentViewController:并使用presentInView:self.view表示广告没有关闭按钮。编译器还建议requestInterstitalAdPresentation。

因此人们会认为选项1是首选方法。我对this question的答案感到有点困惑,因为它使用了2的组合,但似乎requestInterstitalAdPresentation没有触发ADInterstitialAd实例的委托方法,并且使用它们都是没有意义的。

所以我的问题是 - 第一种方法真的足够吗?我发现它只显示一个广告,然后再显示无法显示。我在另一个问题中读到ADInterstitialAd实例需要分配给nil才能请求新广告,但是requestInterstitialAdPresentation无论如何都会忽略此实例。 requestInterstitialAdPresentation是否只是模拟低填充率?或者我错过了一步?

2 个答案:

答案 0 :(得分:2)

它只显示1个广告,因为苹果实施了延迟。您必须等待2或3分钟,然后才能为您提供下一个广告。

对于实现,当用户从广告返回时,新方法会在视图控制器中调用viewDidAppear。

你可以在这里看到我的实施...... https://stackoverflow.com/a/27536872/3489816

所以回答你的问题 - 是的,第一种方法就足够了。它会显示更多广告,但您必须等待一段时间。您不应再使用AdInterstitialAd,因此不必担心将其设置为nil。它不是模拟低填充率。我不认为你错过任何东西......我们从来没有告诉我们必须等待:)

旁注...我相信设置interstitialPresentationPolicy也会为您请求您的第一个广告(就像prepareInterstitialAds那样)。

答案 1 :(得分:0)

您描述的第一种方法正是我刚刚开始工作的方式,它确实会生成新的广告,而不仅仅是一种广告。你必须致电

[self requestInterstitialAdPresentation]

每次您想要展示广告。广告并未始终显示,您的iPhone开发人员设置可能会使这种情况变得更糟。

我已经有一些代码执行此操作并等待完成here