SDK の初期化

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

始める前に

GMA Next-Gen SDK を使用するには、メディエーションなしで統合するか、メディエーション プラットフォームとしてアド マネージャーを使用する必要があります。他のメディエーション プラットフォームは 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.8.0")
}

Groovy

dependencies {
  // ...
  implementation 'com.google.android.gms:play-services-ads:24.8.0'
}
GMA Next-Gen SDK

Kotlin

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

Groovy

dependencies {
  // ...
  // Comment out/remove play-services-ads.
  // implementation 'com.google.android.gms:play-services-ads:24.8.0'
  implementation 'com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:0.22.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 レベルとコンパイル 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 初期化実装の違いについて説明します。

アド マネージャー アプリ ID を設定する

次の例では、現在と GMA Next-Gen SDK でアド マネージャー アプリ ID を設定しています。

現在

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

<manifest>
  <application>
    <!-- Sample Ad Manager 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 の初期化の一部として、アド マネージャー アプリ 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 Ad Manager 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 Ad Manager 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();
  }
}