2014年10月12日日曜日

AdMob SDKにテスト用デバイスを登録して安全に開発する

アプリの開発中にAdMob広告を誤クリックしてしまうと、最悪、アカウントの停止を受けてしまいますので注意したいです。
AdMob SDK側にテスト用デバイスを登録するシステムがあるので、そちらを利用するのが良いと思います。

テスト環境
  • Mac OS X 10.9.5
  • Google Mobile Ads SDK 6.12.0 (iOS)
  • Google Play Services Rev.17 (Android)



何も対策をしない(ノーマルのまま)で広告を表示すると、SDK(Google Play Services)側が、以下のようなログを出力します。
# iOSの場合
<Google> To get test ads on this device, call: request.testDevices = @[ @"xxxxxxxxxx" ];

# Androidの場合
Ads     : Use AdRequest.Builder.addTestDevice("xxxxxxxxxx") to get test ads on this device.
"xxxxxxxxxx"のところにアプリを実行したデバイスのデバイスIDが表示されます。
広告リクエストするプログラムの中で、このIDを利用しますのでコピーしておきます。
ちなみにこのデバイスIDですが、iOSの場合はUDIDということでは無いのでお間違えの無いように。

広告リクエストのコード修正

iOSの場合は、およそ以下のようになります。
"xxxxxxxxxx"の所に、ログに表示されたデバイスIDを入れます。
デバイスIDは配列に複数登録できます。
GADRequest *req = [GADRequest request];
req.testDevices = @[GAD_SIMULATOR_ID,  // シミュレーター
                   @"xxxxxxxxxx",      // テスト用デバイスID
                   ];
[_adView loadRequest:req];

Androidの場合は、以下のようになります。
こちらも.addTestDevice()メソッドを接続して、複数登録できます。
AdRequest adRequest = new AdRequest.Builder()
           .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)  // エミュレーター
           .addTestDevice("xxxxxxxxxx")  // テスト用のデバイスID
           .build();
_adView.loadAd(adRequest);

これでテスト用デバイスで広告表示をしようとすると、テスト用のバナー広告が表示されるようになります。

テストモードの時の注意点

このテストモードで実行している時は、サーバー側(AdMob管理画面)で設定したパラメータは無視されているようです。

自動更新を「更新しない」に設定していても、テストモードの場合では、定期的(2分ぐらい?)に広告受信イベントが来ました。このあたりは本番環境と違いが生じる可能性があるので、注意しておいた方が良いと思います。

関連記事

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...