我想在我的 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 教程中的教程。
- 我将我的GADApplicationIdentifier添加到
info.plist
- 在 AppDelegate 中:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
GADMobileAds.sharedInstance().start(completionHandler: nil)
}
- 在 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
都来自谷歌的上述教程页面。