【问题标题】:Interstitial ads using iAds on iPhone在 iPhone 上使用 iAds 的插页式广告
【发布时间】:2014-07-17 12:10:11
【问题描述】:

在 iPhone 上使用 iAd 显示插页式广告似乎有 2 个选项。插页式广告的文档已过时,但根据iAds Additions Reference,所有需要做的设置是:

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

后跟:

[self requestInterstitialAdPresentation]

(如果成功则返回布尔值)只要您想展示广告。

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

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 只是模拟低填充率吗?还是我错过了一步?

【问题讨论】:

    标签: iphone objective-c uiviewcontroller iad interstitial


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      【解决方案2】:

      您描述的第一种方法正是我刚刚开始使用的方法,它确实会生成新的广告,而不仅仅是一个。你必须打电话

      [self requestInterstitialAdPresentation]
      

      每次您想展示广告时。广告并不总是显示,您的 iPhone 开发人员设置可能会使情况变得更糟。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多