【问题标题】:Getting crash in Facebook Audience network while showing ad显示广告时在 Facebook Audience 网络中崩溃
【发布时间】:2016-04-12 13:45:25
【问题描述】:

我已经整合了 Facebook 受众网络来展示广告,

代码:

if (fbInterstitialAd.isAdValid == YES) {
    [fbInterstitialAd showAdFromRootViewController:viewController];
}

但在展示广告时出现此崩溃:

*** Terminating app due to uncaught exception 'InvalidOperationException', reason: 'showAdFromRootViewController may only be called once'

注意:

【问题讨论】:

标签: ios objective-c facebook-audience-network


【解决方案1】:

我也想多次展示插页式广告,所以这是我的方式。

当插页式广告确实展示时,将调用“interstitialAdWillLogImpression”委托。届时我会制作新的插页式广告。

func interstitialAdWillLogImpression(interstitialAd: FBInterstitialAd) {
    fbInterstitialAd = FBInterstitialAd(placementID: "your_placement_id")
    fbInterstitialAd.delegate = self
    fbInterstitialAd.loadAd()
}

【讨论】:

    【解决方案2】:

    目前,FBInterstitialAd 仅限显示一次。如果应用尝试多次显示它,则会抛出“InvalidOperationException”。

    首先,请在方法 '[fbInterstitialAd showAdFromRootViewController:viewController];' 周围添加 try/catch避免崩溃。

    其次,验证您的集成并确保对象“fbInterstitialAd”不会多次显示。

    【讨论】:

    • 感谢您的回复,我会在那边添加try catch,但是如何确保“fbInterstitialAd”不显示多次?是否有任何方法 fb 提供呢?
    • 对象FBInterstitialAd 本身目前不提供检查方法。可以为此添加本地标志。根据您的代码,该标志可以如下使用:if (fbInterstitialAd.isAdValid == YES && isAlreadyViewed == FALSE) { [fbInterstitialAd showAdFromRootViewController:viewController]; isAlreadyViewed = TRUE; }
    猜你喜欢
    • 2018-06-08
    • 1970-01-01
    • 2018-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-17
    相关资源
    最近更新 更多