Menginisialisasi SDK

Halaman ini mencakup petunjuk untuk melakukan inisialisasi GMA Next Gen SDK.

Sebelum memulai

Untuk menggunakan GMA SDK Generasi Berikutnya, Anda harus melakukan integrasi tanpa mediasi atau menggunakan AdMob sebagai platform mediasi. Platform mediasi lainnya tidak kompatibel dengan GMA SDK Generasi Berikutnya.

Mengonfigurasi build untuk GMA Next Gen SDK

Bagian berikut menunjukkan langkah-langkah yang diperlukan untuk mengonfigurasi GMA Next Gen SDK.

Sertakan dependensi GMA Next Gen SDK

GMA Next Gen SDK memerlukan dependensi Gradle yang berbeda. Dalam file build tingkat aplikasi, hapus referensi ke dependensi Mobile Ads SDK saat ini dan sertakan artefak baru.

Dependensi Gradle
Saat ini

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'
}

Mengecualikan modul com.google.android.gms dalam integrasi mediasi

Adaptor mediasi akan terus bergantung pada Mobile Ads SDK saat ini. Namun, GMA Next Gen SDK mencakup semua class yang diperlukan oleh adapter mediasi. Untuk menghindari error kompilasi terkait simbol duplikat, Anda harus mengecualikan Mobile Ads SDK saat ini agar tidak ditarik sebagai dependensi oleh adapter mediasi.

Dalam file build level aplikasi, kecualikan modul play-services-ads dan play-services-ads-lite secara global dari semua dependensi.

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")
  }
}

Menetapkan level API Android minimum dan kompilasi

GMA Next Gen SDK memerlukan level API Android minimum 24 dan level API Android kompilasi 34. Sesuaikan nilai minSdk dan compileSdk dalam file build tingkat aplikasi Anda menjadi 24 atau lebih tinggi dan 34 atau lebih tinggi.

Lakukan inisialisasi GMA Next Gen SDK

GMA Next Gen SDK memerlukan inisialisasi sebelum memuat iklan, perubahan dari Mobile Ads SDK saat ini yang inisialisasinya bersifat opsional, tetapi direkomendasikan. Perbarui kode Anda jika sebelumnya Anda tidak melakukan inisialisasi SDK sebelum memuat iklan.

Bagian ini membahas perbedaan dalam penerapan inisialisasi SDK antara SDK GMA Generasi Saat Ini dan Generasi Berikutnya.

Menetapkan ID aplikasi AdMob

Contoh berikut menetapkan ID aplikasi AdMob di SDK GMA Generasi Berikutnya dan saat ini:

Saat ini

Integrasi memerlukan tag <meta-data> dengan android:name="com.google.android.gms.ads.APPLICATION_ID" yang berisi ID aplikasi AdMob Anda dalam file AndroidManifest.xml aplikasi Anda.

<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

Berikan ID aplikasi AdMob Anda secara terprogram sebagai bagian dari inisialisasi SDK.

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 -> {});

Meninjau perubahan penerapan

Contoh berikut melakukan inisialisasi SDK Generasi Berikutnya GMA dan saat ini:

Saat ini

Panggil MobileAds.initialize() untuk melakukan inisialisasi Google Mobile Ads SDK. Inisialisasi di thread latar belakang direkomendasikan untuk mengurangi 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

Panggil MobileAds.initialize() untuk melakukan inisialisasi GMA Next Gen SDK. Metode ini harus dipanggil di thread latar belakang. Jika tidak dilakukan, error "Aplikasi Tidak Merespons" (ANR) dapat terjadi.

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();
  }
}