我最近将我的应用发送到了Beta测试,并在其中放置了广告(Google AdMob)。最初,当我的测试人员使用它时,他们曾经看过广告,但是当我这样做时,却没有看到它们(在手机上,而在模拟器上,它们可以正常工作)。
现在他们有时会看到它们(虽然我仍然无法在iPhone上看到它们)。我以为那是因为我屏蔽了某些广告类别,所以我检查了一下,发现我不得不允许我想展示的广告,但是有些测试人员仍然看不到它们(或者他们可以看到一段时间,然后几分钟会消失)。
因此,我想到了另一种解决方案:我添加了一个视图,该视图仅会显示是否未加载广告,是否已在模拟器广告上进行测试,一切都很好,将其发送到Beta并出现新错误:现在他们可以看到广告了,但过了一会儿他们会消失并显示其他视图,这很好。但是过了一段时间,广告就会在新视图上展示,否则它们会随机停止展示(出现之后)。
所以,我想知道的是:
我的代码与Google AdMob tutorial中的代码相同,但我进行了编辑以添加其他类似横幅的视图:
//This is to remove the banners when the user purchases the app or to show them if he has the free version
override func viewWillAppear(_ animated: Bool) {
if defaults.value(forKey: purchaseKey) == nil {
bannerView = GADBannerView(adSize: kGADAdSizeSmartBannerPortrait)
addBannerViewToView(bannerView)
bannerView.delegate = self
bannerView.adUnitID = "myID"
bannerView.rootViewController = self
bannerView.load(GADRequest())
} else {
bannerView.isHidden = true
removeAdsView.isHidden = true
}
}
/// Tells the delegate an ad request loaded an ad.
func adViewDidReceiveAd(_ bannerView: GADBannerView) {
print("adViewDidReceiveAd")
removeAdsView.isHidden = true
addBannerViewToView(bannerView)
bannerView.alpha = 0
UIView.animate(withDuration: 1, animations: {
bannerView.alpha = 1
})
}
/// Tells the delegate an ad request failed.
func adView(_ bannerView: GADBannerView,
didFailToReceiveAdWithError error: GADRequestError) {
print("adView:didFailToReceiveAdWithError: \(error.localizedDescription)")
removeAdsView.isHidden = false
}
答案 0 :(得分:1)
阅读您的日志,必须有Google的一些错误说明,以我为例,我将设备添加为测试
let request = GADRequest()
request.testDevices = ["5bb6d1ce5935f98196d35d9e61ac74f6"]
bannerView?.load(request)
此外,您还应该在iPhone上打开广告过滤器,依次选择设置->隐私->广告