2

我想在我的 swift 应用中显示奖励广告 (Google AdMob)。(XCode 11.4、Swift 5、Storyboard),但每当我加载广告时,它都会在控制台中显示以下错误消息:

Error Domain=com.google.admob Code=5 
"Request Error: The Google Ad request was unable to be fulfilled before a timeout occurred." 
UserInfo={NSLocalizedDescription=Request Error: The Google Ad request was unable to be fulfilled before a timeout occurred., gad_response_info=<GADResponseInfo: 0x6000030f8090>}

我基本上遵循了Google AdMob 教程中的教程

  1. 我将我的GADApplicationIdentifier添加到info.plist
  2. 在 AppDelegate 中:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    GADMobileAds.sharedInstance().start(completionHandler: nil)
}
  1. 在 ViewController 中,我按照新的RewardAd 教程中的步骤进行了复制和粘贴,除了用我自己的替换 AdId(我在模拟器中运行它,所以如果我理解正确,使用自己的 AdID 应该不是问题...)

这是失败的地方:

override func viewDidLoad() {
    super.viewDidLoad()
    rewardedAd = GADRewardedAd(adUnitID: adId)

    rewardedAd?.load(GADRequest()) { error in
        if let error = error {
            print("Error while loading ad: \(error.description)")
            // Timeout occurs here!!!
        } else {
            if self.rewardedAd?.isReady == true {
                self.rewardedAd?.present(fromRootViewController: self, delegate:self)
            }
        }
    }
}

知道为什么我会超时吗?

笔记:

  • 我还创建了一个具有相同奖励应用程序结构的示例 SwiftUI 应用程序,它也获得了超时
  • 是的,我的互联网连接正常
  • 我也尝试了 AdMob 的示例 AdIds,然后出现以下错误:
Error while loading ad: Error Domain=com.google.admob Code=1 
"Request Error: No ad to show." 
UserInfo={NSLocalizedDescription=Request Error: No ad to show., gad_response_info=<GADResponseInfo: 0x6000018f4d80>}

我在 'info.plist' 中使用了:ca-app-pub-3940256099942544~1458002511 和 AdID :ca-app-pub-3940256099942544/1712485313都来自谷歌的上述教程页面。

4

1 回答 1

0

我认为您应该使用自己的 appID 和测试广告 ID。

于 2020-05-10T15:11:02.917 回答