首页 文章

AdMob非页内广告永远不会“准备好”

提问于
浏览
0

我正在使用 Xcode 7.3, Swift, SpriteKit, and AdMob . 我正在尝试显示 Interstitial 广告,但无论我等待多久,请求都永远不会被填充, self.interstitial.isReady 总是错误的 . 这是我的代码:

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)
        }
    }
}

在另一个swift文件中,我正在调用 GameViewController().displayAd() . 这始终打印为false,因为interstitial.isReady永远不会为真 . *一个可能的问题 - 我可能使用了错误的测试adUnitId或者request.testDevices没有被设置为正确的东西 .

为什么这个要求不会填写?

1 回答

  • 0

    对于那些稍后读这篇文章的人我修了它,有两个问题:

    我没有使用实际的广告,所以 request.testDevices 不应该被设置为任何东西

    另外,当我调用 GameViewController().displayAd() 时,我正在创建一个 GameViewController 的新实例,它必须是原始实例 . 为了避免这种情况,我创建了一个引用 GameViewController's self的变量,然后做了 variable.displayAd()

相关问题