Menurut Kebijakan Izin Pengguna Uni Eropa Google, Anda harus membuat pengungkapan tertentu kepada pengguna di Wilayah Ekonomi Eropa (EEA) 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 dalam memenuhi kewajibannya berdasarkan kebijakan ini, Google menawarkan SDK Izin. Consent SDK adalah library open source yang menyediakan fungsi utilitas untuk mengumpulkan izin dari pengguna Anda. Kode sumber lengkap tersedia diGitHub.
Iklan yang ditayangkan oleh Google dapat dikategorikan sebagai dipersonalisasi atau tidak dipersonalisasi, keduanya memerlukan izin dari pengguna di EEA. Secara default, permintaan iklan ke Google menayangkan iklan yang dipersonalisasi, dengan pilihan iklan berdasarkan data yang dikumpulkan sebelumnya. Google juga mendukung konfigurasi permintaan iklan untuk menayangkan iklan yang tidak dipersonalisasi. Pelajari iklan yang dipersonalisasi dan yang tidak dipersonalisasi lebih lanjut.
Panduan ini menjelaskan cara menggunakan Consent SDK untuk mendapatkan izin dari pengguna. Bagian ini juga menjelaskan cara meneruskan izin ke Google Mobile Ads SDK setelah Anda mendapatkan izin.
Prasyarat
- Login ke akun AdMob Anda dan pilih penyedia teknologi iklan.
Impor Consent SDK
Aplikasi dapat mengimpor Consent SDK dengan dependensi Gradle yang mengarah ke repositori Maven Google. Untuk menggunakan repositori tersebut, Anda harus mereferensikannya dalam file build.gradle
level project aplikasi. Buka file Anda dan cari bagian allprojects
:
Contoh build.gradle level project (kutipan)
allprojects { repositories { google() jcenter() } }
Tambahkan perintah google()
di atas jika belum ada.
Selanjutnya, buka file build.gradle
tingkat aplikasi untuk aplikasi Anda, lalu cari bagian "dependensi".
Contoh build.gradle tingkat aplikasi (kutipan)
dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'com.google.android.ads.consent:consent-library:1.0.6' }
Tambahkan baris yang dicetak tebal di atas, yang menginstruksikan Gradle untuk mengambil versi terbaru SDK Izin. Setelah selesai, simpan file dan lakukan sinkronisasi Gradle.
Tips untuk menggunakan Consent SDK
Sebelum menggunakan metode lain di Consent SDK, Anda harus memperbarui status izin untuk memastikan Consent SDK memiliki informasi terbaru mengenai penyedia teknologi iklan yang Anda pilih di UIAdMob . Jika daftar penyedia teknologi iklan berubah sejak pengguna terakhir memberikan izin, status izin akan disetel kembali ke status tidak diketahui.
Jika Anda tidak menggunakan mediasi
Jika tidak menggunakan mediasi, Anda memiliki dua opsi untuk menerapkan Consent SDK guna mengumpulkan izin.
Salah satu opsi adalah menggunakan SDK Izin untuk menampilkan formulir izin yang dirender Google kepada pengguna Anda. Formulir izin menampilkan daftar penyedia teknologi iklan yang telah Anda pilih di UI AdMob. Consent SDK menyimpan respons izin pengguna.
Opsi lainnya adalah menggunakan Consent SDK untuk mengambil daftar lengkap penyedia teknologi iklan secara dinamis dari AdMob, seperti yang dijelaskan dalam pengumpulan izin yang dikelola penayang. Namun, dalam kasus ini, Anda harus menentukan bagaimana daftar penyedia harus tersedia bagi pengguna dan menyajikan formulir izin Anda sendiri kepada pengguna.
Setelah pengguna membuat pilihan izin, Anda dapat meminta SDK Izin untuk menyimpan pilihan izin pengguna seperti yang dijelaskan dalam Menyimpan izin terkelola penayang.
Setelah mengumpulkan izin, jika pengguna setuju untuk hanya menerima iklan yang tidak dipersonalisasi, Anda harus meneruskan izin ke Google Mobile Ads SDK.
Jika Anda menggunakan AdMob mediasi
Anda dapat menggunakan Consent SDK untuk secara dinamis mengambil daftar lengkap penyedia teknologi iklan dari AdMob, seperti yang dijelaskan dalam pengumpulan izin yang dikelola penayang. Anda perlu menentukan penyedia teknologi iklan tambahan dari jaringan iklan lain yang perlu ditampilkan kepada pengguna untuk mendapatkan izin.
Sebagai developer aplikasi, Anda harus mengumpulkan izin pengguna untuk penyedia teknologi iklan yang ditampilkan oleh Consent SDK dan penyedia dari jaringan iklan lainnya. Anda juga harus menyimpan respons izin pengguna secara manual dan meneruskan izin ke Google Mobile Ads SDK jika pengguna mengizinkan untuk hanya menerima iklan yang tidak dipersonalisasi.
Saat ini Google tidak dapat memperoleh dan menangani izin untuk jaringan mediasi, sehingga Anda harus mendapatkan dan menangani izin untuk setiap jaringan iklan secara terpisah. Baca panduan integrasi setiap partner mediasi untuk mengetahui detail penerapan.
Perbarui status izin
Saat menggunakan Consent SDK, sebaiknya Anda menentukan status izin pengguna pada setiap peluncuran aplikasi. Untuk melakukannya, panggil requestConsentInfoUpdate()
pada instance ConsentInformation
.
import com.google.ads.consent.*; public class MainActivity extends Activity { ... @Override protected void onCreate(Bundle savedInstanceState) { ... ConsentInformation consentInformation = ConsentInformation.getInstance(context); String[] publisherIds = {"pub-0123456789012345"}; consentInformation.requestConsentInfoUpdate(publisherIds, new ConsentInfoUpdateListener() { @Override public void onConsentInfoUpdated(ConsentStatus consentStatus) { // User's consent status successfully updated. } @Override public void onFailedToUpdateConsentInfo(String errorDescription) { // User's consent status failed to update. } }); ... } ... }
Panggilan ke requestConsentInfoUpdate()
memerlukan dua argumen:
Array ID penayang valid dan sepenuhnya diaktifkan yang digunakan aplikasi Anda untuk meminta iklan. Temukan ID penayang Anda.
Instance
ConsentInfoUpdateListener
.
Jika informasi izin berhasil diperbarui, status izin yang diperbarui akan diberikan melalui metode onConsentInfoUpdated()
dari ConsentInfoUpdateListener
. ConsentStatus
yang ditampilkan mungkin memiliki nilai yang tercantum di bawah:
Status Izin | Definisi |
---|---|
ConsentStatus.PERSONALIZED |
Pengguna telah memberikan izin untuk iklan yang dipersonalisasi. |
ConsentStatus.NON_PERSONALIZED |
Pengguna telah memberikan izin untuk iklan yang tidak dipersonalisasi. |
ConsentStatus.UNKNOWN |
Pengguna tidak memberikan atau menolak izin untuk iklan yang dipersonalisasi atau yang tidak dipersonalisasi. |
Setelah informasi izin berhasil diperbarui, Anda juga dapat memeriksa
ConsentInformation.getInstance(context).isRequestLocationInEeaOrUnknown()
untuk
mengetahui apakah pengguna berada di Wilayah Ekonomi Eropa atau lokasi
permintaan tidak diketahui.
Jika metode isRequestLocationInEeaOrUnknown()
menampilkan false
,
pengguna tidak berada di Wilayah Ekonomi Eropa dan izin tidak
diperlukan berdasarkan Kebijakan Izin
Pengguna Uni Eropa.
Anda dapat membuat permintaan iklan ke Google Mobile Ads SDK.
Jika metode isRequestLocationInEeaOrUnknown()
menampilkan true
:
Jika
ConsentStatus
yang ditampilkan adalahPERSONALIZED
atauNON_PERSONALIZED
, pengguna telah memberikan izin. Anda kini dapat meneruskan izin ke Google Mobile Ads SDK.Jika
ConsentStatus
yang ditampilkan adalahUNKNOWN
, lihat bagian Mengumpulkan izin di bawah, yang menjelaskan penggunaan metode utilitas untuk mengumpulkan izin.
Kumpulkan izin
Google SDK Izin. menyediakan dua cara untuk mengumpulkan izin dari pengguna:

Presentasikan formulir izin yang dirender Google kepada pengguna.
Minta daftar penyedia teknologi iklan dan kumpulkan izin Anda sendiri menggunakan opsi Pengumpulan izin yang dikelola penayang.
Jangan lupa untuk memberi pengguna opsi Mengubah atau mencabut izin.
Formulir izin yang dirender Google
Formulir izin yang dirender Google adalah formulir layar penuh yang dapat dikonfigurasi yang ditampilkan di atas konten aplikasi Anda. Anda dapat mengonfigurasi formulir untuk menampilkan kombinasi opsi berikut kepada pengguna:
- Persetujuan untuk melihat iklan yang dipersonalisasi
- Persetujuan untuk melihat iklan yang tidak dipersonalisasi
- Menggunakan versi berbayar dari aplikasi, alih-alih melihat iklan
Anda harus meninjau teks izin dengan cermat: pesan yang muncul secara default adalah pesan yang mungkin sesuai jika Anda menggunakan Google untuk memonetisasi aplikasi; tetapi kami tidak dapat memberikan saran hukum terkait teks izin yang sesuai untuk Anda. Untuk memperbarui teks izin pada formulir izin yang dirender Google, ubah file
consentform.html
yang disertakan dalam Consent SDK sesuai kebutuhan.
ConsentForm
. Kode berikut menunjukkan cara membuat
ConsentForm
dengan ketiga opsi izin:
URL privacyUrl = null;
try {
// TODO: Replace with your app's privacy policy URL.
privacyUrl = new URL("https://www.your.com/privacyurl");
} catch (MalformedURLException e) {
e.printStackTrace();
// Handle error.
}
ConsentForm form = new ConsentForm.Builder(context, privacyUrl)
.withListener(new ConsentFormListener() {
@Override
public void onConsentFormLoaded() {
// Consent form loaded successfully.
}
@Override
public void onConsentFormOpened() {
// Consent form was displayed.
}
@Override
public void onConsentFormClosed(
ConsentStatus consentStatus, Boolean userPrefersAdFree) {
// Consent form was closed.
}
@Override
public void onConsentFormError(String errorDescription) {
// Consent form error.
}
})
.withPersonalizedAdsOption()
.withNonPersonalizedAdsOption()
.withAdFreeOption()
.build();
Metode di atas menyiapkan formulir izin yang dirender Google dengan opsi berikut:
withListener()
- Mendaftarkan pemroses untuk
ConsentForm
. Setiap metode yang dapat diganti diConsentFormListener
sesuai dengan peristiwa dalam siklus proses formulir izin.Metode yang dapat diganti onConsentFormLoaded
Formulir persetujuan berhasil dimuat. onConsentFormError
Formulir izin gagal dimuat. Parameter errorDescription
memberikan deskripsi error.onConsentFormOpened
Formulir izin dibuka. onConsentFormClosed
Formulir izin ditutup. Parameter metode memberikan informasi berikut: consentStatus
adalah nilaiConsentStatus
yang menjelaskan status izin pengguna yang diperbarui.userPrefersAdFree
memiliki nilaitrue
saat pengguna memilih untuk menggunakan versi aplikasi berbayar, bukan melihat iklan.
withPersonalizedAdsOption()
- Menunjukkan bahwa formulir izin harus menampilkan opsi iklan yang dipersonalisasi.
withNonPersonalizedAdsOption()
- Menunjukkan bahwa formulir izin harus menampilkan opsi iklan yang tidak dipersonalisasi.
withAdFreeOption()
- Menunjukkan bahwa formulir izin harus menampilkan opsi aplikasi bebas iklan.
Muat formulir izin
Setelah Anda membuat objek ConsentForm
, muat formulir izin dengan
memanggil metode load()
ConsentForm
, seperti yang ditunjukkan di bawah:
form.load();
Tampilkan formulir izin
Untuk menampilkan formulir izin yang dirender Google kepada pengguna, panggil show()
pada
instance ConsentForm
, seperti yang ditunjukkan di bawah:
form.show();
Setelah pengguna memilih opsi dan menutup formulir, Consent SDK akan menyimpan pilihan pengguna dan mengaktifkan peristiwa onConsentFormClosed
. Anda dapat memproses peristiwa ini dan meneruskan izin ke Google Mobile Ads SDK.
Pengumpulan izin yang dikelola penayang
Jika Anda memilih untuk mengumpulkan izin sendiri, Anda dapat menggunakan metode getAdProviders()
dari class ConsentInformation
untuk mendapatkan penyedia teknologi iklan
yang terkait dengan ID penayang yang digunakan di aplikasi Anda. Perhatikan bahwa izin
diperlukan untuk daftar lengkap penyedia teknologi iklan yang dikonfigurasi untuk
ID penayang Anda.
Sebelum dapat memanggil getAdProviders()
, Anda harus menunggu metode
onConsentInfoUpdate()
dari ConsentInfoUpdateListener
seperti yang dijelaskan
di bagian Memperbarui status izin.
List<AdProvider> adProviders =
ConsentInformation.getInstance(context).getAdProviders();
Anda kemudian dapat menggunakan daftar penyedia teknologi iklan untuk mendapatkan izin sendiri.
Menyimpan izin yang dikelola penerbit
Setelah mendapatkan izin, catat ConsentStatus
yang sesuai dengan respons pengguna
menggunakan metode setConsentStatus()
dari class
ConsentInformation
.
ConsentInformation.getInstance(context)
.setConsentStatus(ConsentStatus.PERSONALIZED);
Setelah melaporkan izin ke Consent SDK, Anda dapat meneruskan izin ke Google Mobile Ads SDK.
Mengubah atau mencabut izin
Untuk mengizinkan pengguna memperbarui izinnya, cukup ulangi langkah-langkah yang diuraikan di bagian Kumpulkan izin saat pengguna memilih untuk memperbarui status izinnya.
Pengguna di bawah usia dewasa
Jika penayang mengetahui bahwa pengguna berusia di bawah usia dewasa, semua permintaan
iklan harus menetapkan TFUA (Tag Untuk Pengguna yang berusia di bawah Usia Dewasa di Eropa). Untuk
menyertakan tag ini di semua permintaan iklan yang dibuat dari aplikasi Anda,
panggil setTagForUnderAgeOfConsent(true)
. Setelan ini berlaku untuk semua permintaan iklan di masa mendatang.
ConsentInformation.getInstance(context).setTagForUnderAgeOfConsent(true);
Setelah setelan TFUA diaktifkan, formulir izin yang dirender Google akan gagal dimuat. Semua permintaan iklan yang menyertakan TFUA akan dibuat tidak memenuhi syarat untuk iklan yang dipersonalisasi dan pemasaran ulang. TFUA menonaktifkan permintaan ke penyedia teknologi iklan pihak ketiga, seperti piksel pengukuran iklan dan server iklan pihak ketiga.
Untuk menghapus TFUA dari permintaan iklan,
panggil setTagForUnderAgeOfConsent(false)
.
Pengujian
Consent SDK memiliki perilaku yang berbeda, bergantung pada nilaiConsentInformation.getInstance(context).isRequestLocationInEeaOrUnknown()
.
Misalnya, formulir izin gagal dimuat jika pengguna tidak berada di
EEA.
Untuk mempermudah pengujian aplikasi Anda di dalam dan di luar EEA, Consent SDK mendukung opsi debug yang dapat Anda tetapkan sebelum memanggil metode lain di Consent SDK.
Ikuti petunjuk di bagian memperbarui status izin untuk memanggil
requestConsentInfoUpdate
. Lalu jalankan aplikasi Anda. Periksa output logcat untuk menemukan log berikut:I/ConsentInformation: Use ConsentInformation.getInstance(context).addTestDevice("33BE2250B43518CCDA7DE426D04EE231") to get test ads on this device.
Tetapkan perangkat Anda sebagai perangkat pengujian menggunakan ID iklan dari logcat:
ConsentInformation.getInstance(context).addTestDevice("33BE2250B43518CCDA7DE426D04EE231");
Terakhir, panggil
setDebugGeography
untuk menetapkan geografi pilihan Anda untuk tujuan pengujian.// Geography appears as in EEA for test devices. ConsentInformation.getInstance(context). setDebugGeography(DebugGeography.DEBUG_GEOGRAPHY_EEA); // Geography appears as not in EEA for debug devices. ConsentInformation.getInstance(context). setDebugGeography(DebugGeography.DEBUG_GEOGRAPHY_NOT_EEA);
Setelah menyelesaikan langkah-langkah ini, panggilan untuk memperbarui status izin akan mempertimbangkan geografi debug Anda.
Meneruskan izin ke Google Mobile Ads SDK
Kode di bagian ini dapat digunakan dengan SDK Iklan Seluler Google versi apa pun. Itu juga dapat digunakan terlepas dari apakah Anda menggunakan SDK Persetujuan untuk mengumpulkan persetujuan.
Perilaku default SDK Iklan Seluler Google adalah menayangkan iklan yang dipersonalisasi. Jika pengguna telah menyetujui untuk hanya menerima iklan yang tidak dipersonalisasi, Anda dapat mengonfigurasi objek AdRequest
untuk menentukan bahwa hanya iklan yang tidak dipersonalisasi yang harus diminta. Kode berikut menyebabkan iklan yang tidak dipersonalisasi diminta terlepas dari apakah pengguna berada di EEA atau tidak:
Bundle extras = new Bundle();
extras.putString("npa", "1");
AdRequest request = new AdRequest.Builder()
.addNetworkExtrasBundle(AdMobAdapter.class, extras)
.build();
Jika iklan yang tidak dipersonalisasi diminta, URL permintaan iklan saat ini menyertakan &npa=1
. Namun, perhatikan bahwa ini adalah detail penerapan internal Google Mobile Ads SDK dan dapat berubah.
Tunda pengukuran aplikasi (opsional)
Secara default, Google Mobile Ads SDK melakukan inisialisasi pengukuran aplikasi dan mulai mengirimkan data peristiwa tingkat pengguna ke Google segera saat aplikasi dimulai. Perilaku inisialisasi ini memastikan Anda dapat mengaktifkan metrik pengguna AdMob tanpa membuat perubahan kode tambahan.
Namun, jika aplikasi Anda memerlukan izin pengguna sebelum peristiwa ini dapat dikirim, Anda dapat menunda pengukuran aplikasi hingga Anda secara eksplisit menginisialisasi Mobile Ads SDK atau memuat iklan.
Untuk menunda pengukuran aplikasi, tambahkan tag <meta-data>
berikut
dalam AndroidManifest.xml
Anda.
<manifest> <application> <!-- Delay app measurement until MobileAds.initialize() is called. --> <meta-data android:name="com.google.android.gms.ads.DELAY_APP_MEASUREMENT_INIT" android:value="true"/> </application> </manifest>
FAQ
- Berapa banyak penyedia teknologi iklan yang didukung oleh SDK Izin?
- Consent SDK tidak memberlakukan batasan pada jumlah penyedia teknologi iklan yang diaktifkan oleh penayang.
- Apakah daftar penyedia teknologi iklan yang ditampilkan oleh SDK diperbarui secara otomatis jika saya mengubah pilihan di AdMob UI?
- Ya, jika Anda mengubah daftar penyedia teknologi iklan di AdMob UI, perubahan tersebut akan diterapkan ke server iklan Google dalam waktu sekitar satu jam.