Lakukan inisialisasi GMA Next-Gen SDK

Halaman ini membahas petunjuk untuk menginisialisasi GMA Next-Gen SDK.

Sebelum memulai

Untuk menggunakan GMA Next-Gen SDK, Anda harus melakukan integrasi tanpa mediasi atau menggunakan Ad Manager sebagai platform mediasi. Platform mediasi lainnya tidak kompatibel dengan GMA Next-Gen SDK.

Mengonfigurasi build untuk GMA Next-Gen SDK

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

Menyertakan dependensi GMA Next-Gen SDK

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

Dependensi Gradle
Google Mobile Ads SDK

Kotlin

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

Groovy

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

Kotlin

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

Groovy

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

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

Adaptor mediasi terus bergantung pada Google Mobile Ads SDK. Namun, GMA Next-Gen SDK mencakup semua class yang diperlukan oleh adaptor mediasi. Untuk menghindari error kompilasi terkait simbol duplikat, Anda harus mengecualikan Google Mobile Ads SDK 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.configureEach {
    exclude(group = "com.google.android.gms", module = "play-services-ads")
    exclude(group = "com.google.android.gms", module = "play-services-ads-lite")
}

Groovy

configurations.configureEach {
    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 Google Mobile Ads SDK yang inisialisasinya bersifat opsional, tetapi direkomendasikan. Perbarui kode Anda jika sebelumnya Anda tidak melakukan inisialisasi SDK sebelum memuat iklan.

Bagian ini membahas perbedaan penerapan inisialisasi SDK antara Google Mobile Ads SDK dan GMA Next-Gen SDK.

Menetapkan ID aplikasi Ad Manager

Contoh berikut menetapkan ID aplikasi Ad Manager di Google Mobile Ads SDK dan GMA Next-Gen SDK:

Google Mobile Ads SDK

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

<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

Berikan ID aplikasi Ad Manager 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 menginisialisasi Google Mobile Ads SDK dan GMA Next-Gen SDK:

Google Mobile Ads SDK

Panggil MobileAds.initialize() untuk melakukan inisialisasi Google Mobile Ads SDK. Inisialisasi pada 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 Ad Manager app ID: ca-app-pub-3940256099942544~3347511713
        InitializationConfig.Builder("SAMPLE_APP_ID").build()
      ) {
        // Adapter initialization is complete.
      }
      // SDK initialization is complete. If you don't want to wait for bidding adapters to finish
      // initializing, start loading ads now.
    }
  }
}

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.
                  });
              // SDK initialization is complete. If you don't want to wait for bidding adapters to
              // finish initializing, start loading ads now.
            })
        .start();
  }
}