新しい AdMob iOS SDK の変更点?

ReadMe ファイルを見る限り、特に変更点等の記述はなかった。
何にも変わってないのかな〜と思って、既存の SDK を新しいのと単純に入れ替えただけで前回のサンプルを起動してみた…。

動いてるじゃん! ならこのままで良いかな?と思ってたら、コンソールにこんな文字が…。

<Google> "testing" property has been deprecated.  Use "testDevices" instead.

あらら…。testing プロパティ無くなっちゃったんだ!
代わりに testDevices プロパティ使えって。
取り敢えずドキュメントを見てみよう。


探してみたんだけど、新しい SDK での変更点一覧とかないのね…。
っていうか、SDK にバージョン番号をふってくれたりしないのかな?


とりあえず、testing については GADRequest の所から消えてた。
test 用の設定については、GADRequest.testDevices があるのでそこにある通りに NSArray に Device ID を入れて渡すように変更しよう。

GADRequest *request = [GADRequest request];

request.testDevices = [NSArray arrayWithObjects:
    GAD_SIMULATOR_ID,                               // Simulator
    @"28ab37c3902621dd572509110745071f0101b124",    // Test iPhone 3G 3.0.1
    @"8cf09e81ef3ec5418c3450f7954e0e95db8ab200",    // Test iPod 4.3.1
    nil];

上記はドキュメントの例そのまま。@"xxxxx" は各人の iPhone/iPad の Device Identifier を入れる。
ドキュメントにあるけど、Device Identifier は Xcode のオーガナイザでデバイスを選択して右クリックすれば Copy Device Identifier が出てくるのでこれを使うのが簡単。

また、コード内で [[UIDevice currentDevice] uniqueIdentifier] を使って取得しても良い。


というわけで、前回アップロードしたサンプルを新しくしておきました。


あ、MY_BANNER_UNIT_ID をちゃんと設定していない場合は実行時にこんなエラーがコンソールに出ます。MY_BANNER_UNIT_ID をググって辿り着く人が多いので念のため。

<Google> Invalid Request: {
    errors = "Cannot determine request type. Is your ad unit id correct?";