这个问题在这里被多次询问和回答。我已经阅读了所有这些内容,实施了所有建议,但仍然无效。我目前正在使用NotificationObserver
来创建广告,但它始终会为false
返回isReady
。如果有什么事情发生,请告诉我。
GameViewController
var interstitial: GADInterstitial!
在viewDidLoad
interstitial = createAndLoadInterstitial()
NotificationCenter.default.addObserver(self, selector: #selector(self.showInterstitial), name:NSNotification.Name(rawValue: "showInterAd"), object: nil);
广告功能
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)
所有功能都会在正确的时间被调用,但广告永远不会准备就绪。我已经对adUnitID
进行了三重检查,并尝试了多个设备/模拟器。
答案 0 :(得分:1)
所以我已经开始工作了。我不知道为什么会这样,我假设它与应用程序本身无关,而是AdMob中的错误或其他内容。
该修复方法是将ad_unit_id
替换为与我的其他应用程序不同的应用程序,然后使广告准备就绪并显示。然后我就可以将ad_unit_id
替换回这个应用程序的正确版本,它仍然有效。
它需要一个之前用过 jumpstart 的工作。它让我感到困惑,但希望这有助于其他人。