SDK の初期化

このページでは、GMA Next Gen SDK を初期化する手順について説明します。

始める前に

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

GMA Next Gen SDK 用にビルドを構成する

以降のセクションでは、GMA Next Gen SDK を設定するために必要な手順について説明します。

GMA Next Gen SDK の依存関係を含める

GMA Next Gen 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'
}
GMA Next Gen 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 に依存します。ただし、GMA Next Gen SDK にはメディエーション アダプタに必要なすべてのクラスが含まれています。重複するシンボルに関連するコンパイル エラーを回避するには、メディエーション アダプタによって依存関係として取り込まれないように、現在の Mobile Ads 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 レベルを設定する

GMA Next Gen SDK では、Android API レベルの最小値が 24、コンパイル Android API レベルが 34 である必要があります。アプリレベルのビルドファイルで、minSdkcompileSdk の値をそれぞれ 24 以上と 34 以上に調整します。

GMA Next Gen SDK を初期化する

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

このセクションでは、現在の SDK と GMA Next Gen SDK の SDK 初期化実装の違いについて説明します。

AdMob アプリ ID を設定する

次の例では、現在と GMA Next Gen 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>
GMA Next Gen 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 GMA Next Gen SDK.
InitializationConfig initConfig =
    new InitializationConfig.Builder("SAMPLE_APP_ID").build();
MobileAds.initialize(this, initConfig, initializationStatus -> {});

実装の変更を確認する

次の例では、現在の SDK と GMA Next Gen 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();
  }
}
GMA Next Gen SDK

MobileAds.initialize() を呼び出して、GMA Next Gen 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 GMA Next Gen SDK 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 GMA Next Gen SDK 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();
  }
}