Edited at

《iOS》AdMobSDKでメディエーションが上手く行かなかった話【バナー】

More than 3 years have passed since last update.

iOSでAdmobSDKを実装したものの国内の特定のアドネットワークだけ上手く表示されなかったりして困っていました。

それでいろいろテストしてみたらAdmobの特徴がすこしわかった話。

当初の実装(AdmobのSDKは6.12.2とすこし古めです)


RootViewController

GADBannerView* banner = [[GADBannerView alloc] initWithAdSize: GADAdSizeFullWidthPortraitWithHeight(GAD_SIZE_320x50.height)];


これだと一部のアドネットワークの広告が表示されないようで困っていたのでとりあえず


RootViewController

GADBannerView* banner = [[GADBannerView alloc]init];


とサイズを指定せずに実装。しかしこれだと次のようなエラーが発生します。

 "Request Error: No ads to show"

Admobはサイズを適切に設定してやらないと表示されないという特徴がありました。

iOS SDK7.0.0(2015年3月時点で最新版)では先ほどの

GADAdSizeFullWidthPortraitWithHeight(GAD_SIZE_320x50.height)

のメソッドは消されていてDeprecatedなメソッドだったぽいので次のように書き換えたら上手くいきました。


RootViewController

GADBannerView* banner = [[GADBannerView alloc] initWithAdSize:kGADSizeBanner];

// iPadならkGADSizeFullBannerになります。


アドネットワーク各社さんにご迷惑をおかけしてしまいましたが、AdmobのSDKにはこのような特徴があるため

適切なサイズの設定をしてあげなければなりません。

次のパターンにはまったらこの解決法で上手くいくかもしれません

・AdUnitID設定したのに表示されない

・アドネットワークの設定が適切なのに表示されない

・ちゃんとViewControllerにaddSubViewしてRequest出してるのに表示されない

[追記 2015/03/24]

iAdについて

iAdはデフォルトでスマートバナーといって

GADAdSizeFullWidthPortraitWithHeight(GAD_SIZE_320x50.height)

のサイズでバナーを表示しようとするためサイズが見切れてしまうという現象が起こってしまいます。

通常のkGADAdSizeBannerだと(320 x 50)のサイズになってしまうためです。

したがってメディエーションについてはiAdはお勧めしません。onDidReceivedAd(delegateイベント)で

iAdの場合だけハンドリングしてうまくやれる方法があればいいのですが.....