毎回、ちょっと思い出しながらやっているので簡単にまとめておく。7.7.1で動作確認した。Cocoapodsを利用しない方針なので、こういうのはたまに必要。
MobileAdsの登録
https://apps.admob.com/ のホームから「新しいアプリの収益化」を選択
広告ユニットID(ca-app-pub-xxxxxxxxxxxxxxxxx/xxxxxxxxxx)が生成される。
Google Mobile Ads SDKをダウンロード
プロジェクトに読み込む
GoogleMobileAds.framework をこのようにプロジェクトに追加する。
Linked Frameworks and Librariesに追加されているのを確認する
Briding-Headerを作成する
下記のヘッダーファイルをimportする。
#import <GoogleMobileAds/GoogleMobileAds.h>
利用する
ca-app-pub-xxxxxxxxxxxxxxxx/xxxxxxxxxx の部分には最初に作成した広告ユニットIDをセットする。
func showAdIfFreeUser(timer: NSTimer) { let adSize = kGADAdSizeBanner let bannerView = GADBannerView(adSize: adSize) view.addSubview(bannerView) bannerView.snp_makeConstraints { [unowned self] (make) -> Void in make.left.equalTo(self.view) make.top.equalTo(self.view) make.width.equalTo(adSize.size.width) make.height.equalTo(adSize.size.height) } bannerView.adUnitID = "ca-app-pub-xxxxxxxxxxxxxxxx/xxxxxxxxxx" bannerView.rootViewController = self bannerView.delegate = self let request = GADRequest() request.testDevices = [kGADSimulatorID] bannerView.loadRequest(request) self.adBannerView = bannerView }
* 位置の指定にはSnapKitを使っているがこれは別に利用せず、普通のAutoLayoutでよい。
GADBannerViewDelegate
func adViewDidReceiveAd(bannerView: GADBannerView!) { // Do something } func adView(bannerView: GADBannerView!, didFailToReceiveAdWithError error: GADRequestError!) { // Do something }
すごく簡単な設定はこれでよし。