【发布时间】:2018-03-29 11:32:57
【问题描述】:
我正在尝试将 AdMob 集成到我的基于 Swift 的应用程序中,但无论我尝试什么代码,它都不起作用。
我创建了一个新的视图控制器并使用了与我的“主页”控制器完全相同相同的代码,这似乎可以正常工作,但它不适用于我拥有的任何现有视图控制器。
我当前的广告代码如下所示:
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_BANNER_UNIT_ID的真实值:) -
尝试执行
func adView(_ bannerView: GADBannerView, didFailToReceiveAdWithError error: GADRequestError) { print("adView:didFailToReceiveAdWithError: \(error.localizedDescription)") }并检查是否有错误... -
^ 返回“请求错误:没有广告可展示”。 - 但即使我在谷歌网站上使用测试 ID,也不会显示广告。
标签: ios swift xcode swift3 uiviewcontroller