2016-04-12 74 views
0

獲取崩潰,顯示我已經整合Facebook的受衆網絡展示廣告的廣告

代碼:

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

,但得到這個崩潰,顯示廣告:

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

備註:

回答

1

目前,FBInterstitialAd僅限於一次展示。如果一個應用程序試圖多次顯示它,則會拋出「InvalidOperationException」。

首先,請圍繞方法添加try/catch'[fbInterstitialAd showAdFromRootViewController:viewController];'以避免崩潰。

其次,驗證您的集成並確保對象'fbInterstitialAd'不會多次顯示。

+0

感謝您的回覆,我將在此處添加試試看,但是如何確保'fbInterstitialAd'不會多次顯示? 有沒有任何方法fb提供這個? –

+0

對象'FBInterstitialAd'本身沒有提供現在檢查的方法。 可以爲此添加一個本地標誌。根據你的代碼,該標誌可以如下使用: 'if(fbInterstitialAd.isAdValid == YES && isAlreadyViewed == FALSE){fbInterstitialAd showAdFromRootViewController:viewController]; isAlreadyViewed = TRUE; }' –

+0

謝謝賈森,嘗試趕上做的伎倆。 –

1

我確實希望不止一次地展示插頁式廣告,所以這是我的方式。

當插頁式廣告確實顯示時,將會調用「interstitialAdWillLogImpression」委託。我將在時間創建新的插頁式廣告。

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

應該是被接受的答案。 – Shahar