2016-11-25 5 views
0

Diese Frage wurde hier mehrmals gestellt und beantwortet. Und ich habe sie alle gelesen, alle Vorschläge umgesetzt, und trotzdem funktioniert es nicht. Ich mache es gerade mit einer NotificationObserver und die Anzeige wird erstellt, jedoch immer false für isReady zurückgegeben. Bitte lassen Sie mich wissen, wenn etwas hervorragt.Swift 3, SpriteKit, Google Interstitial-Anzeige nie fertig

GameViewController

var interstitial: GADInterstitial! 

In viewDidLoad

interstitial = createAndLoadInterstitial() 
NotificationCenter.default.addObserver(self, selector: #selector(self.showInterstitial), name:NSNotification.Name(rawValue: "showInterAd"), object: nil); 

Ad Funktionen

func showInterstitial(){ 
    if (interstitial!.isReady) { 
     self.interstitial.present(fromRootViewController: self) 
    }else{ 
     print("ad not ready?") 
    } 
} 

func createAndLoadInterstitial() -> GADInterstitial { 
    print("making ad") 
    let interstitial = GADInterstitial(adUnitID: "ca-app-pub-6956068899232786/9340371153") 
    interstitial.delegate = self 
    let request = GADRequest() 
    request.testDevices = [kGADSimulatorID] 
    interstitial.load(request) 
    return interstitial 
} 

func interstitialDidDismissScreen(_ ad: GADInterstitial) { 
    interstitial = createAndLoadInterstitial() 
} 

GameScene.swift

NotificationCenter.default.post(name: NSNotification.Name(rawValue: "showInterAd"), object: nil) 

Alle Funktionen im richtigen Zeiten aufgerufen, aber die Anzeige wird einfach nie fertig. Ich habe das adUnitID dreifach überprüft und an mehreren Geräten/Simulatoren ausprobiert.

+0

Haben Sie versucht, die zweite Zeile Ihres viewDidLoad-Codes in viewWillLayoutSubviews zu setzen? – Nik

+0

Nein, aber dieser Code tut nichts mit Ansichten oder Positionierung. Welche Gründe muss man haben, um diese Idee zu unterstützen? – TheValyreanGroup

+0

Sie sollten Benachrichtigungsbeobachter in viewWillLayoutSubviews hinzufügen (das ist ein Tutorial, das ich vor einiger Zeit gelesen habe) – Nik

Antwort

1

Also ich habe es funktioniert. Ich weiß nicht, warum das funktioniert hat, und ich nehme an, dass es nichts mit der App selbst zu tun hat, sondern mit einem Bug oder etwas in AdMob.

Der Fix war das Ersetzen der ad_unit_id durch eine andere von einer meiner anderen Anwendungen, die dann die Anzeige bereit und angezeigt wurde. Ich war dann in der Lage, die ad_unit_id zurück zu der richtigen für diese App zu ersetzen, und es funktioniert immer noch.

Es ist wie es benötigt eine, die zuvor zu Jumpstart es in Arbeit verwendet worden war. Es hat mich verblüfft, aber hoffentlich hilft das jemand anderem.