Lakukan inisialisasi GMA Next-Gen SDK

Halaman ini membahas petunjuk untuk melakukan inisialisasi 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 GMA Next-Gen SDK dependensi

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

Groovy

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

Kotlin

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

Groovy

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

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

Adapter mediasi terus bergantung pada Google Mobile Ads SDK. Namun, GMA Next-Gen SDK menyertakan semua class yang diperlukan oleh adapter mediasi. Untuk menghindari error kompilasi terkait simbol duplikat, Anda harus mengecualikan Google Mobile Ads SDK agar tidak ditarik sebagai dependensi oleh mediasi adapter.

Di file build tingkat 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 di file build tingkat aplikasi ke 24 atau lebih tinggi dan 34 atau lebih tinggi.

Menginisialisasi GMA Next-Gen SDK

GMA Next-Gen SDK memerlukan inisialisasi sebelum memuat iklan, yang merupakan 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 dalam 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.

<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 melakukan inisialisasi Google Mobile Ads SDK dan GMA Next-Gen SDK:

Google Mobile Ads SDK

Panggil MobileAds.initialize() untuk melakukan inisialisasi Google Mobile Ads SDK. Sebaiknya lakukan inisialisasi di thread latar belakang 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, 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();
  }
}