viewDidLoad(AdMob)上的Swift插页式广告

我正在学习这个教程

到目前为止,我已经得到它的工作,当我点击button。 不过,我似乎无法让它在viewDidLoad上显示插页式广告。

这是我的:

override func viewDidLoad() { super.viewDidLoad() self.interstitialAd = GADInterstitial(adUnitID: "ADUnitID") let request = GADRequest() // Requests test ads on test devices. request.testDevices = ["2077ef9a63d2b398840261c8221a0c9b"] self.interstitialAd.loadRequest(request) self.interstitialAd = reloadInterstitialAd() } 

控制台不断向我显示这一点:

2016-02-04 22:27:51.855 GoogleAdMobTutorial [3394:56415]要在此设备上获得testing广告,请调用:request.testDevices = @ [kGADSimulatorID];

当我点击button时:

 @IBAction func showAd(sender: AnyObject) { if self.interstitialAd.isReady { self.interstitialAd.presentFromRootViewController(self) } } 

广告出现了。 当我放弃广告时,我在控制台中得到这个:

2016-02-04 22:29:16.661 GoogleAdMobTutorial [3394:56743]请求错误:由于使用了插页式对象,因此不会发送请求。

这是我closures广告时调用的function:

 func interstitialDidDismissScreen(ad: GADInterstitial!) { self.interstitialAd = reloadInterstitialAd() } 

为了清楚起见:如何在viewcontroller加载时显示插页式广告?

在任何viewController中,添加这个函数。

  override func viewDidLoad() { super.viewDidLoad() let App = UIApplication.sharedApplication().delegate as! AppDelegate App.gViewController = self; App.showAdmobInterstitial() } 

//在AppDelegate中,将gViewController声明为成员variables

  var gViewController: UIViewController? var mInterstitial: GADInterstitial! 

在AppDelegate类中添加这些函数

  func showAdmobInterstitial() { let kGoogleFullScreenAppUnitID = "ca-app-pub-***"; self.mInterstitial = GADInterstitial.init(adUnitID:kGoogleFullScreenAppUnitID ) mInterstitial.delegate = self let Request = GADRequest() Request.testDevices = ["2077ef9a63d2b398840261c8221a0c9b"] mInterstitial.loadRequest(Request) } func interstitialDidReceiveAd(ad: GADInterstitial!) { ad.presentFromRootViewController(self.gViewController) } 

确保你在AppDelegate中添加了GADInterstitialDelegate。

 @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate, GADInterstitialDelegate {