Panduan ini menunjukkan cara mengintegrasikan adaptor mediasi dengan aplikasi Android Anda.
Prasyarat
Sebelum dapat mengintegrasikan mediasi untuk format iklan, Anda harus mengintegrasikan format iklan tersebut ke dalam aplikasi:
Baru mengenal mediasi? Baca Pengantar mediasi.
Lakukan inisialisasi GMA Next-Gen SDK
Panduan memulai cepat menunjukkan cara melakukan inisialisasi GMA SDK Generasi Berikutnya. Selama panggilan inisialisasi tersebut, adaptor mediasi juga diinisialisasi. Penting untuk menunggu inisialisasi selesai sebelum Anda memuat iklan untuk memverifikasi partisipasi penuh dari setiap jaringan iklan pada permintaan iklan pertama.
Contoh kode berikut menunjukkan cara memeriksa status inisialisasi setiap adaptor sebelum membuat permintaan iklan.
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, InitializationConfig.Builder("SAMPLE_APP_ID").build()) {
initializationStatus ->
for ((adapterName, adapterStatus) in initializationStatus.adapterStatusMap) {
Log.d(
"MyApp",
String.format(
"Adapter name: %s, Status code: %s, Status string: %s, Latency: %d",
adapterName,
adapterStatus.initializationState,
adapterStatus.description,
adapterStatus.latency,
),
)
}
// 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.AdapterStatus;
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,
new InitializationConfig.Builder("SAMPLE_APP_ID")
.build(),
initializationStatus -> {
Map<String, AdapterStatus> adapterStatusMap =
initializationStatus.getAdapterStatusMap();
for (String adapterClass : adapterStatusMap.keySet()) {
AdapterStatus adapterStatus = adapterStatusMap.get(adapterClass);
Log.d(
"MyApp",
String.format(
"Adapter name: %s, Status code: %s, Status description: %s,"
+ " Latency: %d",
adapterClass,
adapterStatus.getInitializationState(),
adapterStatus.getDescription(),
adapterStatus.getLatency()));
}
// Adapter initialization is complete.
});
// Other methods on MobileAds can now be called.
})
.start();
}
}
Mengecualikan modul com.google.android.gms dalam integrasi mediasi
Adaptor mediasi terus bergantung pada GMA SDK Generasi Berikutnya saat ini. Namun, GMA Next-Gen SDK mencakup semua class yang diperlukan oleh adaptor mediasi. Untuk menghindari error kompilasi terkait simbol duplikat, Anda harus mengecualikan GMA SDK Generasi Berikutnya saat ini agar tidak ditarik sebagai dependensi oleh adaptor mediasi.
Di file build.gradle tingkat aplikasi, kecualikan modul play-services-ads dan play-services-ads-lite secara global dari semua dependensi.
configurations {
all {
exclude(group = "com.google.android.gms", module = "play-services-ads")
exclude(group = "com.google.android.gms", module = "play-services-ads-lite")
}
}
Periksa class adaptor jaringan iklan mana yang memuat iklan
Berikut adalah beberapa contoh kode yang mencatat nama class jaringan iklan untuk iklan banner:
Kotlin
BannerAd.load(
BannerAdRequest.Builder("AD_UNIT_ID", AdSize.BANNER).build(),
object : AdLoadCallback<BannerAd> {
override fun onAdLoaded(ad: BannerAd) {
Log.d(
"MyApp", "Adapter class name: " +
ad.getResponseInfo().mediationAdapterClassName
)
}
}
)
Java
BannerAd.load(
new BannerAdRequest.Builder("AD_UNIT_ID", AdSize.BANNER).build(),
new AdLoadCallback<BannerAd>() {
@Override
public void onAdLoaded(@NonNull BannerAd ad) {
Log.d("MyApp",
"Adapter class name: " + ad.getResponseInfo().getMediationAdapterClassName());
}
}
);
Menggunakan iklan banner dengan mediasi
Pastikan untuk menonaktifkan refresh di semua UI sumber iklan pihak ketiga untuk unit iklan banner yang digunakan dalam mediasi. Hal ini mencegah refresh ganda karena Ad Manager juga memicu refresh berdasarkan kecepatan refresh unit iklan banner Anda.
Hukum privasi negara bagian Amerika Serikat dan GDPR
Jika Anda perlu mematuhi hukum privasi negara bagian Amerika Serikat atau General Data Protection Regulation (GDPR), ikuti langkah-langkah di setelan peraturan negara bagian Amerika Serikat atau setelan GDPR untuk menambahkan partner mediasi Anda di daftar partner iklan GDPR atau negara bagian Amerika Serikat di Privasi & pesan Ad Manager. Jika tidak dilakukan, partner tidak dapat menayangkan iklan di aplikasi Anda.
Pelajari lebih lanjut cara mengaktifkan pemrosesan data yang dibatasi (RDP) dan mendapatkan izin GDPR dengan Google User Messaging Platform (UMP) SDK.