このようになる前(_R.string.admob_application_id
_を渡す):
_MobileAds.initialize(this, getString(R.string.admob_application_id));
_
MobileAds
メソッド.initialize(Context context, String applicationCode)
は次のようになります:
このメソッドは非推奨です。代わりに
initialize(Context, OnInitializationCompleteListener)
を使用してください。
どれを読む:
Google Mobile Ads SDKを初期化します。セッションの最初の広告リクエストの待ち時間を短縮するために、このメソッドをできるだけ早く呼び出します。このメソッドが呼び出されない場合、最初の広告リクエストにより、Google Mobile Ads SDKが自動的に初期化されます。
MobileAds.Settings も廃止されました。
これまでに試みたのは、アダプターごとに InitializationStatus
を取得することです。
_MobileAds.initialize(this, initializationStatus -> {
/* get the adapter status */
Map<String, AdapterStatus> map = initializationStatus.getAdapterStatusMap();
for (Map.Entry<String, AdapterStatus> entry : map.entrySet()) {
AdapterStatus adapterStatus = entry.getValue();
AdapterStatus.State state = adapterStatus.getInitializationState();
Log.d(LOG_TAG, "key = " + entry.getKey() + ", state = " + state.name() + ", desc = " + adapterStatus.getDescription());
}
});
_
エミュレータではREADY
と表示されますが、.getDescription()
にはやや紛らわしいメッセージが表示されます。
_Google Mobile Ads SDK initialization functionality unavailable for this session.
Ad requests can be made at any time.
_
インターネット接続のある物理デバイスでは、さらに4つのアダプターが表示されます。
_key = com.google.Android.gms.ads.MobileAds, state = READY, desc =
key = com.google.ads.mediation.vungle.VungleMediationAdapter, state = NOT_READY, desc = Failed to create Adapter.
key = com.google.ads.mediation.applovin.AppLovinMediationAdapter, state = NOT_READY, desc = Failed to create Adapter.
key = com.google.ads.mediation.adcolony.AdColonyMediationAdapter, state = NOT_READY, desc = Failed to create Adapter.
key = com.google.ads.mediation.tapjoy.TapjoyMediationAdapter, state = NOT_READY, desc = Failed to create Adapter.
_
_om.google.Android.gms.ads.MobileAds
_はREADY
を読み取り、他の_com.google.ads.mediation.*
_は_NOT_READY
_および_Failed to create Adapter
_を読み取ります( メディエーション は設定されていませんが、テスト広告を読み込みます)。
MobileAds.initialize(this);
も機能します(OnInitializationCompleteListener
はオプションです)。
_R.string.admob_application_id
_がなくても機能するように見えるため、実際の質問は次のとおりです。
_R.string.admob_publisher_id
_および_R.string.admob_application_id
_の設定は引き続き必要ですか?それとも現在は広告ユニットIDのみですか?ほとんどのドキュメントでは、廃止された初期化メソッド(上記に示したものと同様)がまだ使用されているため、これは明確ではありません。
Androidプロジェクト でAdMobを使ってみると、アプリケーションIDの部分に答えているようです:
以下に示すように
AndroidManifest.xml
タグを追加して、AdMobアプリIDをアプリの<meta-data>
ファイルに追加します。重要:この手順は、Google Mobile Ads SDK v17.0.0以降で必要です。この
<meta-data>
タグを追加しない場合、アプリは次のメッセージでクラッシュします:「The Google Mobile Ads SDK was initialized incorrectly.
」
<manifest>
<application>
<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 -->
<meta-data
Android:name="com.google.Android.gms.ads.APPLICATION_ID"
Android:value="ADMOB_APP_ID"/>
</application>
</manifest>
そして、パブリッシャーIDは ヨーロッパのユーザーからの同意の要求 にも必要です。
代わりに、以下を使用してMobileAdsを初期化します。
MobileAds.initialize(this, initializationStatus -> { });