AdMobがメディエーション機能の提供を始めるにあたって、AdWhirlのメディエーション機能が終息していくようなので広告を使う新規アプリや既存のアプリのメディエーションをAdMobに移行するように作業をしています。
そこで新たにi-mobileもインプリしようといていたのですが、どうでもいいトコでハマってしまいました。
AdMobのメディエーションの実装は非常に簡単で、アプリ側ではGADBannerViewを
インスタンス化してGADRequestを付けて
[self.gadBannerView loadRequest:self.gadRequest];
としてやるだけです。
しかしハマってしまったのは
gadBannerView = [gadBannerView initWithAdSize:kGADAdSizeBanner];
初期化メソッドを呼ぶ際にバナーのサイズを指定してやるのですが、ここでkGADAdSizeSmartBannerPortrait等を指定してやると、どうやらAdMobとiAdくらいしか表示してくれない…
https://developers.google.com/mobile-ads-sdk/docs/admob/mediationにも
Note: AdMob Ad Network Mediation does not fully support Smart Banners currently.
と書いてはあるのですが、どうやら殆どサポートされていないようです。
誤って設定すると、AdMobのメディエーションのレポート画面を見てもi-mobile等は設定した比率に合わせてリクエストは来ているのですが、impressionがゼロという状況になってしまいます。
Portraitの時はkGADAdSizeBannerを指定するべきです。
Landscapeの時は?どうやらPortrait用の広告は諦めるか、AdMobとiAdのみを表示するかと言う事しか無いようです。
元々、i-mobileは320×50しかサポートしていないトコに問題があるのですが、そういう場合には320×50の広告をセンタリングして表示するとか…
その他、 gadBannerView.rootViewController で指定すべきUIViewControllerにも何だか癖がありそう…
AdWhirlはオープンソースになっていたので、ある程度は自分で調整出来たのですが、AdMobはクローズドなので面倒です。
後は自分でCustomEventをハンドリングするようにしなければいけない?
面倒だなぁ。
Leave a Reply