2016-04-10 12 views
0

Ich verwende Xcode 7.3, Swift, SpriteKit und AdMob. Ich versuche, eine Interstitial Anzeige anzuzeigen, aber egal wie lange ich warte die Anfrage wird nie gefüllt und self.interstitial.isReady ist immer falsch. Hier ist mein Code:AdMob Interstitial Ad wird nie "fertig"

import UIKit 
import SpriteKit 
import GoogleMobileAds 

class GameViewController: UIViewController { 

    var interstitial = GADInterstitial(adUnitID: "ca-app-pub-3940256099942544/4411468910") 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     let request = GADRequest() 
     // Requests test ads on test devices. 
     request.testDevices = ["2077ef9a63d2b398840261c8221a0c9b"] 
     self.interstitial.loadRequest(request) 
     } 
    func displayAd() { 
     print(self.interstitial.isReady) 
     if self.interstitial.isReady { 
      self.interstitial.presentFromRootViewController(self) 
     } 
    } 
} 

In einer weiteren schnellen Datei ich GameViewController().displayAd() nenne. Dies gibt immer falsch aus, da interstitial.isReady nie wahr ist. * Ein mögliches Problem - ich verwende möglicherweise den falschen Test adUnitId oder die request.testDevices wird nicht auf die richtige Sache eingestellt.

Warum wird diese Anfrage nicht ausgefüllt?

Antwort

0

Für diejenigen, dies ich es zu einem späteren Zeitpunkt zu lesen fixiert, gab es zwei Probleme:

Ich bin ein actualy Ad nicht verwenden, so request.testDevices sollte nicht

Zusätzlich zu irgendetwas eingestellt werden, wenn ich Anruf GameViewController().displayAd(), mache ich eine neue Instanz von GameViewController, und es muss das Original sein. Um dies zu vermeiden, habe ich eine Variable erstellt, die auf GameViewController's self verweist, dann tat variable.displayAd()

Verwandte Themen