このページでは、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 の依存関係 | |
|---|---|
| 現在 |
Kotlindependencies { // ... implementation("com.google.android.gms:play-services-ads:24.7.0") } Groovydependencies { // ... implementation 'com.google.android.gms:play-services-ads:24.7.0' } |
| GMA Next Gen SDK |
Kotlindependencies { // ... // 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") } Groovydependencies { // ... // 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 である必要があります。アプリレベルのビルドファイルで、minSdk と compileSdk の値をそれぞれ 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 を含む <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 を初期化しています。
| 現在 |
Kotlinimport 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) {} } } } Javaimport 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 |
Kotlinimport 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. } } } Javaimport 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(); } } |