web-dev-qa-db-ja.com

MobileAds.initialize()はどこで呼び出す必要がありますか?

読んだことがあります 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")
    }
    ...
}
8
HelloCW

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は暗黙的に呼び出します。

17
earthw0rmjim

アプリケーションコンテキストでモバイル広告を初期化すると、InMobiメディエーションアダプターでエラーが発生します

"Adapter Initialization status: Not Ready"

AdMob TestSuiteでテスト済み。

解決策は、アクティビティコンテキストでMobileAdsを初期化することです。

0
Zoran