【问题标题】:SWIFT ADMOB : Failed to load: Request Error: No ad to showSWIFT ADMOB:加载失败:请求错误:没有广告可显示
【发布时间】:2018-04-06 16:36:42
【问题描述】:

我实际上是在 Swift 中使用 AdMob Reward 开发一个 iOS 应用程序,当我尝试使用模拟器(iPhone 6、6s、7、8...等)构建我的应用程序时,广告可以正常工作,而且我也有此消息:

收到基于奖励的视频广告。

但是(因为总是有一个但是)当我在我自己的设备(iPhone 6)上构建我的应用程序时,它不起作用并且我收到以下错误消息: “基于奖励的视频广告加载失败:请求错误:没有广告可显示。” 这是我的代码(显然我通过“开始使用 Reward Ad Mob”中给出的示例更改了广告 ID,但在我的应用程序中,我使用了我的广告 ID)。这是我为示例选择的示例 ID:ca-app-pub-3940256099942544/1712485313

let request = GADRequest()
    request.testDevices = [ kGADSimulatorID,"ca-app-pub-3940256099942544/1712485313"];
    rewardBasedVideo = GADRewardBasedVideoAd.sharedInstance()
    rewardBasedVideo?.delegate = self
    if rewardBasedVideo?.isReady == false {
        rewardBasedVideo?.load(GADRequest(), withAdUnitID: "ca-app-pub-3940256099942544/1712485313")
        adRequestInProgress = true
    }

还有

//ADMOB
// MARK: GADRewardBasedVideoAdDelegate implementation
func rewardBasedVideoAd(_ rewardBasedVideoAd: GADRewardBasedVideoAd,
                        didFailToLoadWithError error: Error) {
    adRequestInProgress = false
    print("Reward based video ad failed to load: \(error.localizedDescription)")
}

func rewardBasedVideoAdDidReceive(_ rewardBasedVideoAd: GADRewardBasedVideoAd) {
    adRequestInProgress = false
    print("Reward based video ad is received.")
}

func rewardBasedVideoAdDidOpen(_ rewardBasedVideoAd: GADRewardBasedVideoAd) {
    print("Opened reward based video ad.")
}

func rewardBasedVideoAdDidStartPlaying(_ rewardBasedVideoAd: GADRewardBasedVideoAd) {
    print("Reward based video ad started playing.")
}

func rewardBasedVideoAdDidClose(_ rewardBasedVideoAd: GADRewardBasedVideoAd) {
    print("Reward based video ad is closed.")
}

func rewardBasedVideoAdWillLeaveApplication(_ rewardBasedVideoAd: GADRewardBasedVideoAd) {
    print("Reward based video ad will leave application.")
}

func rewardBasedVideoAd(_ rewardBasedVideoAd: GADRewardBasedVideoAd,
                        didRewardUserWith reward: GADAdReward) {
    print("Reward received with currency: \(reward.type), amount \(reward.amount).")
}
//ADMOB!

【问题讨论】:

标签: ios swift admob rewardedvideoad


【解决方案1】:

首先,您应该查看日志以获取真实设备的标识符

然后修复该行:

request.testDevices = [...]

用模拟器和你的真实设备的 if 替换 ... 然后你可以看到一个测试广告 您使用了您的广告单元 ID,而不是您的设备 ID

【讨论】:

  • 嗨,感谢您的回复,所以如果我明白我这样做了“request.testDevices = [“ca-app-pub-3940256099942544/1712485313”];” ?因为如果仅此而已,那也行不通……
  • 从那里删除广告单元。 testDevices 定义了哪些设备加载了即使没有广告显示也始终显示的测试广告!查看运行时日志(在真实设备上调试时),您应该会看到如下内容:“使用 id .... 获取该设备的测试广告”,获取 id 并在数组中使用它, 将模拟器标识符也保留在数组中'
  • 我不明白对不起,请给我一个例子,谢谢
  • 是的,但在几个小时后
猜你喜欢
  • 1970-01-01
  • 2014-02-02
  • 2016-12-30
  • 2018-08-15
  • 2016-10-16
  • 1970-01-01
  • 1970-01-01
  • 2019-11-28
  • 1970-01-01
相关资源
最近更新 更多