毎回、ちょっと思い出しながらやっているので簡単にまとめておく。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
}
すごく簡単な設定はこれでよし。