Android広告を表示するためにadmobを使用しています。テスト広告は正常に機能していますが、実際の広告は表示されていません。実際のバナー広告は表示されません。MyJavaコードは
private InterstitialAd interstitial;
interstitial = new InterstitialAd(MainActivity.this);
interstitial.setAdUnitId("ca-app-pub-********");
AdView adView = (AdView) this.findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder()
// Add a test device to show Test Ads
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.addTestDevice("4CCC00EF4EA205A6FE82E1AEB26B0839")
.build();
// Load ads into Banner Ads
adView.loadAd(adRequest);
// Load ads into Interstitial Ads
//interstitial.loadAd(adRequest);
レイアウトファイルは
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:ads="http://schemas.Android.com/apk/res-auto"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:orientation="vertical" >
<com.google.Android.gms.ads.AdView
Android:id="@+id/adView"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
ads:adSize="BANNER"
ads:adUnitId="ca-app-pub-********" />
</LinearLayout>
アプリがAdMobに新しく登録されると、インベントリの作成を許可するのに時間がかかり、広告がいくつか要求されます。このため、ライブインプレッションがすぐに表示されない場合があります。アプリがさらにリクエストを作成し始めると、より一貫した結果が表示されるはずです。テスト広告はライブ広告と同じチャネルを介して動作することに注意してください。テスト広告を返すことができると、アプリケーションがネットワークと適切に通信していることが保証されます。それが数日後に機能するのを待ってください。
という行を削除します
.addTestDevice("4CCC00EF4EA205A6FE82E1AEB26B0839")
また、仮想デバイスを使用すると、何であれテスト広告が表示されます。実際のデバイスでテストしていますか?
「新しい広告ユニットIDを最近作成し、ライブ広告をリクエストしている可能性があります。その場合、広告の配信が開始されるまでに数時間かかることがあります。」
同じ問題に直面しました。テスト広告を表示できる場合は問題ありません。ライブ広告はすぐに表示されます(もちろん.addTestDevice(...)を削除した後)。
グーグルがユーザーの興味を引く広告を適切に表示するために、いくつかの情報(場所、年齢、性別など)を収集する時間が必要だと思います。
ご存知かもしれませんが、決して忘れないでください。ライブ広告に触れないでください。すぐに禁止されます。
https://groups.google.com/forum/#!category-topic/google-admob-ads-sdk/Android/fBe3YL3ffpo
サンプルユニットIDを使用している可能性があります:ca-app-pub-3940256099942544/6300978111
上記を使用すると、テスト広告が表示されます。
アプリをリリースする前に、必ず独自のユニットIDに変更してください。
あなたのlogcatを見てください。実際の広告が表示されない理由がわかります。
これはおそらく、お使いのデバイスの現在の場所に表示できるものがないためです。
ライブ広告ユニットIDを作成するには
にサインイン
xml内にAdViewを追加します
<com.google.Android.gms.ads.AdView
xmlns:ads="http://schemas.Android.com/apk/res-auto"
Android:id="@+id/adView"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_alignParentBottom="true"
Android:layout_centerHorizontal="true"
ads:adSize="BANNER"
ads:adUnitId="@string/banner_ad_unit_id">
</com.google.Android.gms.ads.AdView>
文字列内<string name="banner_ad_unit_id">your_new_ad_unit</string>
あなたのJavaコード
AdView mAdView = (AdView) v.findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
私もこの問題に直面しました。 AdViewとIntersitialAdは、simulatorのテスト広告のみを表示しました。しかし、実際のデバイスには実際の広告がありました。 Firebaseは、シミュレータを使用するか、実際のデバイスを使用するかを検出できると思います。私はfirebaseを使用しました:
com.google.firebase:firebase-ads:11.0.4
Native Expressテンプレートを選択した場合は、このリンクを使用してください。 NativeExpressAdViewはAdViewでは機能しません。 https://firebase.google.com/docs/admob/Android/native-express
NativeExpressAdView adView = (NativeExpressAdView)findViewById(R.id.adView);
<com.google.Android.gms.ads.NativeExpressAdView
Android:id="@+id/adView"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
ads:adUnitId="ca-app-123123123123/123123123"
ads:adSize="320x150">
</com.google.Android.gms.ads.NativeExpressAdView>
古い質問に答えましたが、テスト広告が表示され、プロダクションキーの広告が機能しないという同じ問題に直面していました。
後で支払いの詳細をAdmobに渡さなかったことがわかりました。
Admobでのお支払いの詳細は必須です。表示され始めてから数時間後に更新して確認してください。