2016-08-13 48 views
1

我有這樣的代碼:如何顯示AdMob插頁一個時間上的後退按鈕自來水

func createAndLoadInterstitial() { 
    interstitial = GADInterstitial(adUnitID: "ca-app-pub-xxxxxxxxxx/xxxxx") 
    interstitial.delegate = self 
    let request = GADRequest() 
    interstitial.loadRequest(request) 
} 

override func viewDidAppear(animated: Bool) { 
    if (interstitial.isReady && showAd) { 
     showAd = false 
     // print("iterstitialMain is ready") 
     interstitial.presentFromRootViewController(self) 
     self.createAndLoadInterstitial() 
    } 
    else { 
     showAd = true 
    } 
} 

和它的作品。但每次用戶點擊後退按鈕時都會顯示一個廣告。

我想僅在用戶點擊後退按鈕時顯示廣告一次。相反,在一段時間後展示廣告會更好嗎?例如,每5分鐘?

回答

1

你最初在哪裏設置showAdtrue?您的if聲明中的邏輯是主要問題。

在設置在if聲明showAd = false,下一次viewDidAppear叫你else語句將被執行,設置showAdtrue

你應該做的是檢查你的Bool,然後檢查interstitial.isReady。然後,在您的GADInterstitialinterstitialDidDismissScreen代表方法中,您將更新您的showAdBool,並根據需要再請求GADInterstitial。你說你只想顯示一個GADInterstitial,所以請求另一個是沒有必要的。例如:

override func viewDidAppear(animated: Bool) { 
    if showAd { // Should we show an ad? 
     if interstitial.isReady { // Is the ad ready? 
      interstitial.presentFromRootViewController(self) 
     } 
    } 
    else { 
     // Do nothing 
    } 
} 

func interstitialDidDismissScreen(ad: GADInterstitial!) { 
    // Ad was presented and dismissed 
    print("interstitialDidDismissScreen") 
    showAd = false // Don't show anymore ads 
} 

此外,您可以更改:

let request = GADRequest() 
interstitial.loadRequest(request) 

只是:

interstitial.loadRequest(GADRequest()) 
createAndLoadInterstitial功能

要回答問題的第二部分,詢問您是否應該延遲一段時間後展示廣告,這違反了AdMob計劃政策。不符合標準的實現

例子:

出現的應用打開或應用程序關閉後前
  • 的插頁式廣告。
  • 用戶關閉另一個插頁式廣告後觸發的插頁式廣告。
  • 當用戶查看應用程序的內容時意外加載插頁式廣告。請記住只在內容頁面之間投放插頁式廣告。
  • 每個用戶點擊後都會觸發的插頁式廣告。
  • 在遊戲時段或重度用戶互動期間出現的插頁式廣告。
+1

謝謝!這對我幫助很大。 – user6023982

相關問題