まず第一に、コードでエミュレーターと実際のデバイスの違いの問題に対処したかどうかはわかりません。アプリがエミュレーターで実行されているか、実際のデバイスで実行されているかを区別する必要があります。これは、次の方法で実行できます。
boolean inEmulator = "generic".equals(Build.BRAND.toLowerCase());
これは、エミュレーターを使用している場合は true に戻り、そうでない場合は false に戻ります。次に、inEmulaotor の値に応じて広告を処理する方法を構築する必要があります。
if (inEmulator)
{
adRequest.addTestDevice(AdRequest.TEST_EMULATOR);
}
else
{
adRequest.addTestDevice("11111111101111111110111111111011");
}
ここで、エミュレータ テスト デバイスを追加するか、実際のデバイスの 32 文字のデバイス ID を追加する必要があります。(この ID は英数字です) 実際のデバイスのこの ID は、テスト モードの外で実際のデバイスで admob を実行することによって見つけることができ、logcat に表示されます。
最後に、testing = true を設定して、広告の読み込みを開始する必要があります。
adRequest.setTesting(true);
adView.loadAd(adRequest);
全体として、このコードの作業セットは次のようになります。
boolean isTestingAds = true; //this is a switch, to make it easy on changing modes
boolean inEmulator = "generic".equals(Build.BRAND.toLowerCase());
AdView adView = new AdView(this, AdSize.BANNER, MY_AD_UNIT_ID);
AdRequest adRequest = new AdRequest();
if (isTestingAds)
{
if (inEmulator)
{
adRequest.addTestDevice(AdRequest.TEST_EMULATOR);
}
else
{
adRequest.addTestDevice("11111111101111111110111111111011");
}
adRequest.setTesting(true);
}
adView.loadAd(adRequest);
広告ビューをコンテンツ ビューに追加し、マニフェスト ファイルを更新することを忘れないでください。MY_AD_UNIT_ID は、この特定のアプリの admob から取得したコードです。
最後にIDを見つけるために、設定します
isTestingAds = false;
次に、テストするデバイスを設定するために必要な # が LogCat に表示されます。
実際のデバイスからデータを取得してログに記録していない場合、それはまったく別の問題です。