2015-02-24 94 views
3

我設置了插頁式廣告,如果用戶死亡4次,則會彈出整頁廣告。每當玩家死亡時,numberOfLoses會增加。iAD未按預期方式工作

 numberOfLosses++ 
     if numberOfLosses == 4 { 
      gameViewController?.showFullScreenAd() 
      numberOfLosses = 0 
     } 

這部作品在模擬器上和設備上的第一次,但後來我再也看不到它再次合作,無論我死多少次。這是一旦它在應用程序商店生活,或者我做錯了什麼?

func showFullScreenAd() { 
     interstitial.delegate = self 
     self.interstitialPresentationPolicy = ADInterstitialPresentationPolicy.Manual 
     self.requestInterstitialAdPresentation() 
} 

,如果我調用println(self.requestInterstitialAdPresentation()),我在第一時間拿到

這是我更新的代碼(的作品,但多個廣告被在同一時間加載)

//MARK: interstitial ad delegate 

func showFullScreenAd() { 
    viewForAd = UIView(frame: screenbounds) 
    viewForAd.frame = CGRectOffset(viewForAd.frame, 0, screenbounds.size.height) 
    self.view.addSubview(viewForAd) 

    iADInterstitial = ADInterstitialAd() 
    iADInterstitial.delegate = self 
    self.interstitialPresentationPolicy = ADInterstitialPresentationPolicy.Manual 
    self.requestInterstitialAdPresentation() 
} 

func interstitialAdDidUnload(interstitialAd: ADInterstitialAd!) { 
    iADInterstitial = nil 
    println("did unload") 

} 

func interstitialAd(interstitialAd: ADInterstitialAd!, didFailWithError error: NSError!) { 
    viewForAd.removeFromSuperview() 
    viewForAd = nil 
    iADInterstitial = nil 
    println("failed with error: \(error.localizedDescription)") 

} 

func interstitialAdDidLoad(interstitialAd: ADInterstitialAd!) { 
    println("Ad did load") 
    iADInterstitial.presentInView(viewForAd) 
    UIView.beginAnimations("", context: nil) 
    viewForAd.frame = CGRectOffset(viewForAd.frame, 0, -screenbounds.size.height) 
    UIView.commitAnimations() 
} 

func interstitialAdActionDidFinish(interstitialAd: ADInterstitialAd!) { 
    UIView.beginAnimations("", context: nil) 
    viewForAd.frame = CGRectOffset(viewForAd.frame, 0, screenbounds.size.height) 
    UIView.commitAnimations() 
    println("action did finish") 
} 
+0

在您的手機/模擬器上,轉到設置>開發者。您的iAd Fill Rate設置爲? – 2015-02-24 02:21:31

+0

它設置爲「始終提供廣告」 – 2015-02-24 03:03:32

+0

您是否將'interstitial = nil'設置爲可在用戶解散廣告後卸載? – 2015-02-24 14:56:35

回答

2
後假

你不需要interstitial.delegate = self(以及其他任何你沒有看到的代碼)

你只需要兩到三行代碼:

// Preloads an ad, so call on app startup (optional but recommended). 
[UIViewController prepareInterstitialAds]; 

// Call once on your viewController when you create it. 
self.interstitialPresentationPolicy = ADInterstitialPresentationPolicyManual; 

// Call when you want to show an ad (will show if one is available) 
[self requestInterstitialAdPresentation]; 

這就是所有存在於iOS的7新的方法,你有可能會引起問題,所以刪除它不管其他的代碼,如果你仍然有問題(尤其在以100%的填充率測試),那麼需要進一步調查。

+0

這仍然只能在100%填充率的設備/模擬器上首次使用。 – 2015-02-25 11:15:44

+0

剛剛測試過各種選項,而且非常隨意。我點擊了一個按鈕,通過請求調用進行簡單的設置。我通常可以快速獲得兩個廣告,但有時需要10分鐘才能顯示。我已經嘗試過每次都準備好準備,並將填充率設置爲100%,並將「無限廣告展示」設置爲。在模擬器,iOS 7和iOS 8上測試過。我只是從當前通話中返回「NO」,但仍然呈現廣告!所以我認爲這是一個困難的問題,它會在現場工作嗎? – 2015-02-25 12:57:27

+0

是啊真正的問題是這個工作時,應用程序是在應用程序商店生活... – 2015-02-25 16:37:50