【swift】複数のアドの設定をAdMobメディエーションで設定(NendとiAdとAdMob)【CoffeeNote開発日記】
友人にたのんでいたアイコンのデザインがなかなかいい感じになってきたのでそろそろ本気でCoffeeNoteリリースできるかなぁと思えてきたところで、最後の最後にやらなければいけない作業がアドの設定。
多分かなりめんどくさいと予測。でも頑張る。
iOSのアドについて一通りいろいろなサービスの比較記事とかを読んで、結論Nend、iAd、AdMobでいくことにした。
3つを切り替えてうまくFillされない確率を減らして、ePCMが大きいアドを表示するようにしたいところ。
とうことで、今回完全合致だったこの記事にお世話になりながら広告を設定してみる。
http://kojisatoapp.blogspot.jp/2014/03/admobnendiadadmob.html
各サービスへの登録
まずすることは各サービスへの登録
- nend
アプリをリリースしていなくても登録はできるらしい。3日以内にアプリの審査の結果が返ってくるらしいけど、リリースしていないものの場合どうなるんだろ。
- AdMob
- iAd
ここを参考に
http://codewithchris.com/iad-tutorial/
これがめっちゃめんどかった。
ここまでだけで結構時間かかった...。
AdMobエディメーション設定
AdMobのダッシュボードの広告の設定画面からエディメーション設定にいける。
そこでiAdとNendを追加。
とりあえずNendは保留でiAdだけ追加して先に進むことにする。
SDKのダウンロード
各アドのSDKをダウンロード。
- Admobメディエーション
http://developers.google.com/mobile-ads-sdk/download#downloadios
- iAdアダプター
http://developers.google.com/mobile-ads-sdk/docs/admob/mediation-networks?hl=ja
- Nend SDK
自分のダッシュボードのAdのところの広告枠のところからSDL最新版をダウンロード
ダウンロードできたら、それぞれXcodeのプロジェクトにぶっこんでおく。
frameworkいろいろ設定
Xcodeのプロジェクトのところで下記のframeworkをインポートしておく
(TARGETS→General→Linked Frameworks and Libraries→+)
- AdSupport.framework
- AudioToolbox.framework
- AVFoundation.framework
- CoreGraphics.framework
- MessageUI.framework
- StoreKit.framework
- SystemConfiguration.framework
- CoreTelephony.framework
- iAd.framework
- Security.framework
PROJECT→BuildSettings→Linking→Other Linker Flagsに「-ObjC」を追加する。DebugとRelease両方。
Ad実装(swift)
ここあたりを参考に
http://stackoverflow.com/questions/24760156/xcode-6-swift-ads-googlemobileadssdkios
Bridging-Header.hでGADBannerView.hをimport
#import "GADBannerView.h"
GADBannerDelegateを追加
// 冒頭 class ViewController: UIViewController, GADBannerViewDelegate {
viewDidAppearで広告の生成の部分を作成
override func viewDidAppear(animated: Bool) { super.viewDidAppear(animated) var origin = CGPointMake(0.0, self.view.frame.size.height - CGSizeFromGADAdSize(kGADAdSizeBanner).height); // place at bottom of view var size = GADAdSizeFullWidthPortraitWithHeight(50) // set size to 50 var adB = GADBannerView(adSize: size, origin: origin) // create the banner adB.adUnitID = MY_BANNER_UNIT_ID //"ca-app-pub-XXXXXXXX/XXXXXXX" adB.delegate = self // ?? adB.rootViewController = self // ?? self.view.addSubview(adB) // ?? var request = GADRequest() // create request request.testDevices = [ GAD_SIMULATOR_ID ]; // set it to "test" request adB.loadRequest(request) // actually load it (?) }
うーん、まぁstack over flowの回答ではviewDidAppearで読んでたけど、画面が読まれるために実行される必要もない気がするので、これはviewDidLoadで自分はいい気がする。僕はそうしました。
やったーーーーーーーーー表示された!!!!嬉しい