【问题标题】:AdMob Interstitial Ad never becoming "ready"AdMob 插页式广告从未“准备就绪”
【发布时间】:2016-04-10 19:27:08
【问题描述】:

我正在使用 Xcode 7.3、Swift、SpriteKit 和 AdMob。我正在尝试显示 Interstitial 广告,但无论我等待多长时间,请求都不会被填写,self.interstitial.isReady 始终为 false。这是我的代码:

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()。这总是打印错误,因为 interstitial.isReady 永远不是真的。 *一个可能的问题 - 我可能使用了错误的测试 adUnitId 或者 request.testDevices 没有被设置为正确的东西。

为什么这个请求无法满足?

【问题讨论】:

    标签: ios swift admob


    【解决方案1】:

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

    我没有使用实际的广告,因此不应将request.testDevices 设置为任何内容

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-12
      • 1970-01-01
      • 2021-12-08
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多