Menurut Kebijakan Izin Pengguna Uni Eropa Google, Anda harus membuat pengungkapan tertentu untuk pengguna di Wilayah Ekonomi Eropa (EEA) bersama dengan Inggris Raya dan mendapatkan izin mereka untuk menggunakan cookie atau penyimpanan lokal lainnya, jika diwajibkan secara hukum, dan untuk menggunakan data pribadi (seperti AdID) guna menayangkan iklan. Kebijakan ini mencerminkan persyaratan dalam ePrivacy Directive dan General Data Protection Regulation (GDPR) Uni Eropa.
Untuk mendukung penayang agar memenuhi kewajibannya berdasarkan kebijakan ini, Google menawarkan User Messaging Platform (UMP) SDK. UMP SDK telah diupdate untuk mendukung standar IAB terbaru. Semua konfigurasi ini sekarang dapat ditangani dengan mudah di AdMob privasi & amp; pesan.
Prasyarat
- Selesaikan panduan Memulai.
- Konfigurasikan pesan di tab Privasi & amp; pesan di akunAdMob Anda. Untuk mengetahui detail selengkapnya, baca Tentang privasi dan pesan,
- Jika Anda menyusun persyaratan terkait GDPR, baca Pengaruh persyaratan IAB terhadap pesan izin Uni Eropa.
Jenis pesan pengguna
Lihat Jenis pesan pengguna untuk mengetahui daftar lengkap pesan yang didukung. Untuk petunjuk khusus tentang cara mengimplementasikan setiap jenis pesan, lihat menu navigasi sebelah kiri.
Menginstal dengan Gradle
Jika Anda menggunakan Google Mobile Ads SDK versi 19.8.0 atau yang lebih tinggi, UMP SDK akan disertakan dalam paket Anda. Jika Anda menggunakan Mobile Ads SDK versi sebelumnya, sertakan UMP SDK dalam build.gradle aplikasi Anda sebagai berikut:
dependencies {
// This dependency is automatically included by Google Mobile Ads SDK 19.8.0
// or higher.
implementation 'com.google.android.ump:user-messaging-platform:2.0.0'
}
Setelah melakukan perubahan pada build.gradle aplikasi, pastikan untuk menyinkronkan project dengan file Gradle.
Selanjutnya,
temukan ID aplikasi Anda
dan tambahkan ke AndroidManifest.xml
Anda:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.rewardedinterstitialexample">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<!-- Sample app ID: ca-app-pub-3940256099942544~3347511713 -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Menentukan apakah pesan perlu ditampilkan
Anda harus meminta pembaruan informasi izin pengguna di setiap peluncuran aplikasi, menggunakan requestConsentInfoUpdate()
sebelum memuat formulir.
Hal ini dapat menentukan apakah pengguna perlu memberikan izin jika mereka belum melakukannya atau apakah izin mereka telah habis masa berlakunya.
consentInformation
saat Anda mempresentasikan formulir saat diperlukan.
Berikut adalah contoh cara memeriksa status saat aplikasi dimulai:
Java
package com.example.myapplication; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import com.google.android.ump.ConsentForm; import com.google.android.ump.ConsentInformation; import com.google.android.ump.ConsentRequestParameters; import com.google.android.ump.FormError; import com.google.android.ump.UserMessagingPlatform; public class MainActivity extends AppCompatActivity { private ConsentInformation consentInformation; private ConsentForm consentForm; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Set tag for under age of consent. false means users are not under // age. ConsentRequestParameters params = new ConsentRequestParameters .Builder() .setTagForUnderAgeOfConsent(false) .build(); consentInformation = UserMessagingPlatform.getConsentInformation(this); consentInformation.requestConsentInfoUpdate( this, params, new ConsentInformation.OnConsentInfoUpdateSuccessListener() { @Override public void onConsentInfoUpdateSuccess() { // The consent information state was updated. // You are now ready to check if a form is available. } }, new ConsentInformation.OnConsentInfoUpdateFailureListener() { @Override public void onConsentInfoUpdateFailure(FormError formError) { // Handle the error. } }); } }
Kotlin
Coming soon.
Memuat formulir jika tersedia
Sebelum menampilkan formulir, Anda harus menentukan terlebih dahulu apakah formulir tersedia. Formulir yang tidak tersedia dapat disebabkan karena pengguna mengaktifkan pelacakan iklan terbatas atau jika Anda telah menandainya sebagai di bawah usia dewasa.
Untuk memeriksa ketersediaan formulir, gunakan
the isConsentFormAvailable()
method on the ConsentInformation
instance yang Anda buat sebelumnya.
Kemudian, tambahkan metode wrapper untuk memuat formulir:
Java
... consentInformation.requestConsentInfoUpdate( this, params, new ConsentInformation.OnConsentInfoUpdateSuccessListener() { @Override public void onConsentInfoUpdateSuccess() { // The consent information state was updated. // You are now ready to check if a form is available. if (consentInformation.isConsentFormAvailable()) { loadForm(); } } }, new ConsentInformation.OnConsentInfoUpdateFailureListener() { @Override public void onConsentInfoUpdateFailure(FormError formError) { // Handle the error. } }); } public void loadForm() { } }
Kotlin
Coming soon.
Untuk memuat formulir, gunakan the static loadConsentForm()
method on the UserMessagingPlatform
class.
Java
public void loadForm() { // Loads a consent form. Must be called on the main thread. UserMessagingPlatform.loadConsentForm( this, new UserMessagingPlatform.OnConsentFormLoadSuccessListener() { @Override public void onConsentFormLoadSuccess(ConsentForm consentForm) { MainActivity.this.consentForm = consentForm; } }, new UserMessagingPlatform.OnConsentFormLoadFailureListener() { @Override public void onConsentFormLoadFailure(FormError formError) { // Handle the error } } ); }
Kotlin
Coming soon.
Presentasikan formulir jika diperlukan
Setelah Anda menentukan ketersediaan formulir dan memuatnya, gunakan
metodeshow()
pada
instanceConsentForm
untuk mempresentasikan formulir.
Gunakan objek
consentInformation
dari sebelumnya untuk memeriksa
consent status dan mengupdate
metodeloadForm()
Anda:
Java
public void loadForm() { UserMessagingPlatform.loadConsentForm( this, new UserMessagingPlatform.OnConsentFormLoadSuccessListener() { @Override public void onConsentFormLoadSuccess(ConsentForm consentForm) { MainActivity.this.consentForm = consentForm; if(consentInformation.getConsentStatus() == ConsentInformation.ConsentStatus.REQUIRED) { consentForm.show( MainActivity.this, new ConsentForm.OnConsentFormDismissedListener() { @Override public void onConsentFormDismissed(@Nullable FormError formError) { // Handle dismissal by reloading form. loadForm(); } }); } } }, new UserMessagingPlatform.OnConsentFormLoadFailureListener() { @Override public void onConsentFormLoadFailure(FormError formError) { /// Handle Error. } } ); }
Kotlin
Coming soon.
Jika Anda perlu melakukan tindakan apa pun setelah pengguna membuat pilihan atau menutup formulir, tempatkan logika tersebut di pengendali penyelesaian atau callback untuk formulir Anda.
Pengujian
Memaksa geografi
UMP SDK menyediakan cara untuk menguji perilaku aplikasi Anda seolah-olah perangkat berada di EEA atau Inggris Raya menggunakan the setDebugGeography
method on ConsentDebugSettings.Builder
.
Anda harus memberikan ID hash perangkat pengujian di setelan debug aplikasi untuk
menggunakan fungsi debug. Jika Anda memanggilrequestConsentInfoUpdate()
tanpa menetapkan nilai ini, aplikasi Anda akan mencatat hash ID yang diperlukan saat berjalan.
Java
ConsentDebugSettings debugSettings = new ConsentDebugSettings.Builder(this) .setDebugGeography(ConsentDebugSettings .DebugGeography .DEBUG_GEOGRAPHY_EEA) .addTestDeviceHashedId("TEST-DEVICE-HASHED-ID") .build(); ConsentRequestParameters params = new ConsentRequestParameters .Builder() .setConsentDebugSettings(debugSettings) .build(); consentInformation = UserMessagingPlatform.getConsentInformation(this); consentInformation.requestConsentInfoUpdate(this, params, new ConsentInformation.OnConsentInfoUpdateSuccessListener() { @Override public void onConsentInfoUpdateSuccess() { // The consent information state was updated. // You are now ready to check if a form is available. } }, new ConsentInformation.OnConsentInfoUpdateFailureListener() { @Override public void onConsentInfoUpdateFailure(FormError formError) { // Handle the error. } });
Kotlin
Coming soon.
Dengan DebugGeography
, Anda memiliki opsi untuk memaksa geografi ke salah satu opsi berikut:
DebugGeografi | Deskripsi |
---|---|
DEBUG_GEOGRAPHY_DISABLED |
Geografi debug dinonaktifkan. |
DEBUG_GEOGRAPHY_EEA |
Geografi muncul seperti di EEA untuk perangkat debug. |
DEBUG_GEOGRAPHY_NOT_EEA |
Geografi muncul sebagai tidak berada di EEA untuk perangkat debug. |
Perhatikan bahwa setelan debug hanya berfungsi pada perangkat pengujian. Emulator tidak perlu ditambahkan ke daftar ID perangkat karena pengujian sudah diaktifkan secara default.
Reset status izin
Dalam menguji aplikasi dengan UMP SDK, sebaiknya reset
status SDK agar Anda dapat menyimulasikan pengalaman penginstalan pertama pengguna.
SDK menyediakan metode reset()
untuk melakukannya.
Java
consentInformation.reset();
Kotlin
consentInformation.reset()
Anda juga harus memanggil reset()
jika memutuskan untuk menghapus UMP SDK sepenuhnya dari project Anda.