iosでadmobを複数画面で表示する
現在開発しているアプリでadmobを実装しているのですが、複数画面で表示する際にどうすればよいかを調べたのでメモ。
Google Ads Developer Blog: Creating A GADBannerView Singleton in AdMob Applications
iphone - AdMod single instance in all ViewControllers - Stack Overflow
こちらの2つを参考にするとシングルトンで管理するのが良いそうです。
設置するadmobのoriginを設定したかったのでこんな感じで書きました。
class Banner: NSObject { static let shared = Banner() var bannerView:GADBannerView! func setBanner<T where T:GADBannerViewDelegate,T:UIViewController>(point:CGPoint,viewController:T){ if bannerView == nil { bannerView = GADBannerView(adSize: GADAdSizeFullWidthPortraitWithHeight(50)) bannerView.adUnitID = "" bannerView.delegate = viewController bannerView.rootViewController = viewController let request = GADRequest() request.testDevices = [""] bannerView.loadRequest(request) } bannerView.frame.origin = point viewController.view.addSubview(bannerView) } }
使うときはuiviewcontroller内で以下の様に書きます。
Banner.shared.setBanner(CGPointMake(0,0), viewController: self)