SDK の初期化

このページでは、Google Mobile Ads SDK(ベータ版)を初期化する手順について説明します。

始める前に

Google Mobile Ads SDK(ベータ版)を使用するには、メディエーションなしで統合するか、メディエーション プラットフォームとして AdMob を使用する必要があります。他のメディエーション プラットフォームは Google Mobile Ads SDK(ベータ版)と互換性がありません。

Google Mobile Ads SDK(ベータ版)用にビルドを構成する

以降のセクションでは、Google Mobile Ads SDK(ベータ版)を構成するために必要な手順について説明します。

Google Mobile Ads SDK(ベータ版)の依存関係を含める

Google Mobile Ads SDK(ベータ版)では、別の Gradle 依存関係が必要です。アプリレベルのビルドファイルで、現在の Mobile Ads SDK の依存関係への参照を削除し、新しいアーティファクトを含めます。

Gradle の依存関係
現在

Kotlin

dependencies {
  // ...
  implementation("com.google.android.gms:play-services-ads:24.7.0")
}

Groovy

dependencies {
  // ...
  implementation 'com.google.android.gms:play-services-ads:24.7.0'
}
Google Mobile Ads SDK(ベータ版)

Kotlin

dependencies {
  // ...
  // Comment out/remove play-services-ads.
  // implementation("com.google.android.gms:play-services-ads:24.7.0")
  implementation("com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:0.21.0-beta01")
}

Groovy

dependencies {
  // ...
  // Comment out/remove play-services-ads.
  // implementation 'com.google.android.gms:play-services-ads:24.7.0'
  implementation 'com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:0.21.0-beta01'
}

メディエーション統合で com.google.android.gms モジュールを除外する

メディエーション アダプタは、引き続き現在の Mobile Ads SDK に依存します。ただし、Google Mobile Ads SDK(ベータ版)には、メディエーション アダプタに必要なすべてのクラスが含まれています。重複するシンボルに関連するコンパイル エラーを回避するには、メディエーション アダプタによって依存関係として取り込まれないように、現在のモバイル広告 SDK を除外する必要があります。

アプリレベルのビルドファイルで、play-services-ads モジュールと play-services-ads-lite モジュールの両方をすべての依存関係からグローバルに除外します。

Kotlin

configurations.all {
    exclude(group = "com.google.android.gms", module = "play-services-ads")
    exclude(group = "com.google.android.gms", module = "play-services-ads-lite")
}

Groovy

configurations {
  all {
    exclude(group = "com.google.android.gms", module = "play-services-ads")
    exclude(group = "com.google.android.gms", module = "play-services-ads-lite")
  }
}

最小およびコンパイル対象の Android API レベルを設定する

Google Mobile Ads SDK(ベータ版)では、最小 Android API レベル 24 とコンパイル Android API レベル 34 が必要です。アプリレベルのビルドファイルで、minSdkcompileSdk の値をそれぞれ 24 以上と 34 以上に調整します。

Google Mobile Ads SDK(ベータ版)を初期化する

Google Mobile Ads SDK(ベータ版)では、広告を読み込む前に初期化が必要です。現在の Mobile Ads SDK では初期化は任意ですが推奨されています。以前に広告を読み込む前に SDK を初期化していなかった場合は、コードを更新します。

このセクションでは、現在の Google Mobile Ads SDK(ベータ版)と Google Mobile Ads SDK の初期化実装の違いについて説明します。

AdMob アプリ ID を設定する

次の例では、現在と Google Mobile Ads SDK(ベータ版)で AdMob アプリ ID を設定しています。

現在

統合には、アプリの AndroidManifest.xml ファイル内に AdMob アプリ ID を含む android:name="com.google.android.gms.ads.APPLICATION_ID" を含む <meta-data> タグが必要です。

<manifest>
  <application>
    <!-- Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713 -->
    <meta-data
        android:name="com.google.android.gms.ads.APPLICATION_ID"
        android:value="SAMPLE_APP_ID"/>
  </application>
</manifest>
Google Mobile Ads SDK(ベータ版)

SDK の初期化の一部として、AdMob アプリ ID をプログラムで指定します。

Kotlin

// Initialize the Google Mobile Ads SDK.
val initConfig = InitializationConfig.Builder("SAMPLE_APP_ID").build()
MobileAds.initialize(this@MainActivity, initConfig) {}

Java

// Initialize Google Mobile Ads SDK (beta).
InitializationConfig initConfig =
    new InitializationConfig.Builder("SAMPLE_APP_ID").build();
MobileAds.initialize(this, initConfig, initializationStatus -> {});

実装の変更を確認する

次の例では、現在の Google Mobile Ads SDK(ベータ版)を初期化しています。

現在

MobileAds.initialize() を呼び出して Google Mobile Ads SDK を初期化します。ANR を減らすために、バックグラウンド スレッドでの初期化をおすすめします。

Kotlin

import com.google.android.gms.ads.MobileAds
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch

class MainActivity : AppCompatActivity() {
  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    val backgroundScope = CoroutineScope(Dispatchers.IO)
    backgroundScope.launch {
      // Initialize the Google Mobile Ads SDK on a background thread.
      MobileAds.initialize(this@MainActivity) {}
    }
  }
}

Java

import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.initialization.InitializationStatus;
import com.google.android.gms.ads.initialization.OnInitializationCompleteListener;

public class MainActivity extends AppCompatActivity {
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    new Thread(
            () -> {
              // Initialize the Google Mobile Ads SDK on a background thread.
              MobileAds.initialize(this, initializationStatus -> {});
            })
        .start();
  }
}
Google Mobile Ads SDK(ベータ版)

MobileAds.initialize() を呼び出して、Google Mobile Ads SDK(ベータ版)を初期化します。このメソッドはバックグラウンド スレッドで呼び出す必要があります。そうしないと、アプリケーション応答なし(ANR)エラーが発生する可能性があります。

Kotlin

import com.google.android.libraries.ads.mobile.sdk.MobileAds
import com.google.android.libraries.ads.mobile.sdk.initialization.InitializationConfig
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch

class MainActivity : AppCompatActivity() {
  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    val backgroundScope = CoroutineScope(Dispatchers.IO)
    backgroundScope.launch {
      // Initialize Google Mobile Ads SDK (beta) on a background thread.
      MobileAds.initialize(
        this@MainActivity,
        // Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713
        InitializationConfig.Builder("SAMPLE_APP_ID").build()
      ) {
        // Adapter initialization is complete.
      }
      // Other methods on MobileAds can now be called.
    }
  }
}

Java

import com.google.android.libraries.ads.mobile.sdk.MobileAds;
import com.google.android.libraries.ads.mobile.sdk.initialization.InitializationConfig;

public class MainActivity extends AppCompatActivity {
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    new Thread(
            () -> {
              // Initialize Google Mobile Ads SDK (beta) on a background thread.
              MobileAds.initialize(
                  this,
                  // Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713
                  new InitializationConfig.Builder("SAMPLE_APP_ID")
                      .build(),
                  initializationStatus -> {
                    // Adapter initialization is complete.
                  });
              // Other methods on MobileAds can now be called.
            })
        .start();
  }
}