斯威夫特3 - AdMob广告没有出现在现有的视图控制器
问题描述:
我想给AdMob整合到我基于SWIFT的应用程序,但它不工作,没有不管我尝试什么样的代码。斯威夫特3 - AdMob广告没有出现在现有的视图控制器
我创建了一个新的视图控制器和所使用的确切相同的代码,我的“家”控制器,似乎工作,但它不会在任何我有现有ViewControllers的工作。
和我目前的广告代码如下所示:
import UIKit
import GoogleMobileAds
import AudioToolbox
class AdTest: UIViewController, GADBannerViewDelegate {
// Ad banner
var adMobBannerView = GADBannerView()
let ADMOB_BANNER_UNIT_ID = "ca-app-pub-9999999999"
override func viewDidLoad() {
super.viewDidLoad()
// Init AdMob banner
initAdMobBanner()
}
// MARK: - ADMOB BANNER
func initAdMobBanner() {
if UIDevice.current.userInterfaceIdiom == .phone {
// iPhone
adMobBannerView.adSize = GADAdSizeFromCGSize(CGSize(width: 320, height: 50))
adMobBannerView.frame = CGRect(x: 0, y: view.frame.size.height, width: 320, height: 50)
} else {
// iPad
adMobBannerView.adSize = GADAdSizeFromCGSize(CGSize(width: 468, height: 60))
adMobBannerView.frame = CGRect(x: 0, y: view.frame.size.height, width: 468, height: 60)
}
adMobBannerView.adUnitID = ADMOB_BANNER_UNIT_ID
adMobBannerView.rootViewController = self
adMobBannerView.delegate = self
view.addSubview(adMobBannerView)
let request = GADRequest()
adMobBannerView.load(request)
}
// Hide the banner
func hideBanner(_ banner: UIView) {
UIView.beginAnimations("hideBanner", context: nil)
banner.frame = CGRect(x: view.frame.size.width/2 - banner.frame.size.width/2, y: view.frame.size.height - banner.frame.size.height, width: banner.frame.size.width, height: banner.frame.size.height)
UIView.commitAnimations()
banner.isHidden = true
}
// Show the banner
func showBanner(_ banner: UIView) {
UIView.beginAnimations("showBanner", context: nil)
banner.frame = CGRect(x: view.frame.size.width/2 - banner.frame.size.width/2, y: view.frame.size.height - banner.frame.size.height, width: banner.frame.size.width, height: banner.frame.size.height)
UIView.commitAnimations()
banner.isHidden = false
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
我ADTEST的ViewController表明这一点:
而我Home ViewController根本不显示广告:
答
所以我找到了问题,事实证明,如果你改变了全球用户的默认AdMob将无法正常工作。
作为一个临时的解决办法,我已经添加了这项权利的显示广告前。
//MARK : - Load table data
UserDefaults.standard.register(defaults: ["UserAgent": "AB-" + UIDevice.current.identifierForVendor!.uuidString])
////////////
//GET CODE//
////////////
//MARK : - Load AdMob
UserDefaults.standard.register(defaults: ["UserAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Mobile/15A372"])
initAdMobBanner()
//Set browser back so the app works
UserDefaults.standard.register(defaults: ["UserAgent": "AB-" + UIDevice.current.identifierForVendor!.uuidString])
你不应该显示的'ADMOB_BANNER_UNIT_ID' :) –
尝试真正的价值来实现'FUNC的AdView(_ bannerView:GADBannerView上, didFailToReceiveAdWithError错误:GADRequestError){ 打印(“AD浏览:didFailToReceiveAdWithError:\(错误.localizedDescription)“) }'并检查是否有错误... –
^即返回‘请求错误:没有广告的展示。’ - 但即使我在谷歌网站上使用测试ID,也不会展示广告。 –