読んだことがあります https://developers.google.com/admob/Android/quick-start?hl=en-US#import_the_mobile_ads_sdk
AdMob ADを表示するには、コードAを使用してMobileAdsを初期化する必要があります。
ADを表示する必要のあるアクティビティがいくつかありますが、すべてのアクティビティにコードAを追加する必要がありますか?
さらに、削除してもAdMob広告が正しく表示されるのはなぜですか
MobileAds.initialize(this, "YOUR_ADMOB_APP_ID")
コードA
import com.google.Android.gms.ads.MobileAds;
class MainActivity : AppCompatActivity() {
...
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713
MobileAds.initialize(this, "YOUR_ADMOB_APP_ID")
}
...
}
docs of MobileAds.initialize()
から:
このメソッドはできるだけ早く呼び出す必要があり、アプリケーションの起動ごとに1回だけ呼び出す必要があります。
これを行う適切な方法は、Application
クラスのonCreate()
メソッドで呼び出すことです。
Application
クラスがない場合は、次のように作成します。
_class YourApp: Application() {
override fun onCreate() {
super.onCreate()
MobileAds.initialize(this, "YOUR_ADMOB_APP_ID")
}
}
_
application
タグの_Android:name
_属性を設定して、AndroidManifest.xmlでこのクラスを参照する必要があります。
_<application
Android:name=".YourApp"
Android:allowBackup="true"
Android:icon="@mipmap/ic_launcher"
Android:label="@string/app_name"
Android:theme="@style/AppTheme">
<!-- ... -->
</application>
_
そしてあなたの質問に関して:
削除してもAdMob広告が正しく表示されるのはなぜですか
_MobileAds.initialize(this, "YOUR_ADMOB_APP_ID")
_
引用 モバイル広告SDKチームのVeer Arjun Busaniから:
Mobile Ads SDKは、それ自体を初期化するのに数ミリ秒かかります。最初の広告を呼び出す前に、このメソッドを呼び出す方法を提供しました。それが完了すると、最初のリクエストに追加の読み込み時間はありません。これを呼び出さない場合、最初のAdRequestは最初にそれ自体を初期化する必要があるため、さらに数ミリ秒かかります。
したがって、基本的にMobileAds.initialize()
を呼び出さない場合、最初のAdRequest
は暗黙的に呼び出します。
アプリケーションコンテキストでモバイル広告を初期化すると、InMobiメディエーションアダプターでエラーが発生します
"Adapter Initialization status: Not Ready"
AdMob TestSuiteでテスト済み。
解決策は、アクティビティコンテキストでMobileAdsを初期化することです。