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 {