Meminta Izin dari Pengguna Eropa

Prasyarat

Selesaikan bagian Mulai dengan plugin GMA Flutter versi 1.3.0, yang mendukung User Messaging Platform SDK.

Baca Pengaruh persyaratan IAB terhadap pesan izin Uni Eropa.

Pengantar

UMP SDK menyediakan alat bagi penayang untuk meminta izin untuk iklan yang dipersonalisasi serta menangani persyaratan App Tracking Transparency (ATT) Apple. Penayang dapat menggunakan UMP SDK untuk menangani salah satu atau kedua permintaan tersebut dengan menampilkan satu formulir, karena semua konfigurasi terjadi di Privasi & pesan Ad Manager.

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 ID iklan) untuk 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 User Messaging Platform (UMP) SDK. UMP SDK telah diperbarui untuk mendukung standar IAB terbaru. Kami juga telah menyederhanakan proses penyiapan formulir izin dan mencantumkan partner iklan. Semua konfigurasi ini kini dapat ditangani dengan mudah di Privasi & pesan Ad Manager.

Panduan ini memandu Anda terkait cara menginstal SDK, menerapkan solusi IAB, dan mengaktifkan fitur pengujian.

App Tracking Transparency (khusus iOS)

Jika Anda berencana menggunakan UMP SDK untuk menangani persyaratan App Tracking Transparency Apple, pastikan Anda telah membuat, mengonfigurasi, dan memublikasikan pesan ATT menggunakan Privasi & pesan Ad Manager.

Agar UMP SDK dapat menampilkan pesan pemberitahuan kustom, perbarui Info.plist untuk menambahkan kunci NSUserTrackingUsageDescription dengan string pesan kustom yang menjelaskan penggunaan Anda.

<key>NSUserTrackingUsageDescription</key>
<string>This identifier will be used to deliver personalized ads to you.</string>

Deskripsi penggunaan akan muncul sebagai bagian dari dialog ATT saat Anda menampilkan formulir izin:

Selanjutnya, Anda harus menautkan framework AppTrackingTransparency:

Saat melakukan pengujian, perlu diingat bahwa sesuai persyaratan Apple, dialog IDFA ATT hanya akan muncul satu kali karena requestTrackingAuthorization: adalah permintaan satu kali. Agar peringatan muncul untuk kedua kalinya, Anda harus meng-uninstal dan menginstal ulang aplikasi di perangkat pengujian.

Menggunakan SDK

SDK ini dirancang untuk digunakan secara linear. Langkah-langkah untuk menggunakan SDK adalah:

  1. Minta informasi izin terbaru.
  2. Periksa apakah izin diperlukan.
  3. Periksa apakah formulir tersedia dan muat formulir jika tersedia.
  4. Sajikan formulir.
  5. Berikan cara bagi pengguna untuk mengubah izin mereka.

Sebaiknya Anda meminta pembaruan informasi izin pada setiap peluncuran aplikasi. Tindakan ini akan menentukan apakah pengguna perlu memberikan izin atau tidak.

final params = ConsentRequestParameters();
ConsentInformation.instance.requestConsentInfoUpdate(
  params,
  () async {
    // The consent information state was updated.
    // You are now ready to check if a form is available.
  },
  (FormError error) {
    // Handle the error
  },
);

Muat formulir jika tersedia

Formulir untuk mendapatkan izin dibuat di UI Ad Manager. Setelah menentukan bahwa Anda akan meminta izin dari pengguna, langkah selanjutnya adalah menentukan apakah formulir tersedia atau tidak. Ada berbagai alasan formulir tidak tersedia, seperti:

  • Pengguna telah mengaktifkan pembatasan pelacakan iklan.
  • Anda memberi tag pengguna sebagai di bawah usia dewasa.

Untuk memeriksa apakah formulir tersedia, gunakan metode isConsentFormAvailable() pada instance ConsentInformation. Tambahkan metode wrapper untuk memuat formulir:

final params = ConsentRequestParameters();
ConsentInformation.instance.requestConsentInfoUpdate(
  params,
  () async {
    if (await ConsentInformation.instance.isConsentFormAvailable()) {
      loadForm();
    }
  },
  (FormError error) {
    // Handle the error
  },
);

Untuk memuat formulir, Anda akan menggunakan metode loadConsentForm() statis pada class ConsentForm. Ubah metode loadForm() Anda seperti ini:

void loadForm() {
  ConsentForm.loadConsentForm(
    (ConsentForm consentForm) async {
      // Present the form
    },
    (FormError formError) {
      // Handle the error
    },
  );
}

Tunjukkan formulir jika diperlukan

Untuk menampilkan formulir izin, gunakan metode show() di class ConsentForm. Anda harus menentukan apakah pengguna memerlukan izin sebelum menampilkan formulir. Untuk memeriksa apakah izin diperlukan, panggil getConsentStatus() pada objek ConsentInformation, yang menampilkan enum jenis ConsentStatus. Ada empat kemungkinan nilai untuk ConsentStatus:

  • unknown: Status izin tidak diketahui.
  • required: Izin pengguna diperlukan tetapi belum diperoleh.
  • notRequired: Izin pengguna tidak diperlukan. Misalnya, pengguna tidak berada di EEA atau Inggris Raya.
  • obtained: Izin pengguna diperoleh. Personalisasi tidak ditentukan.

Ubah metode loadForm Anda seperti ini:

void loadForm() {
  ConsentForm.loadConsentForm(
    (ConsentForm consentForm) async {
      var status = await ConsentInformation.instance.getConsentStatus();
      if (status == ConsentStatus.required) {
        consentForm.show(
          (FormError formError) {
            // Handle dismissal by reloading form
            loadForm();
          },
        );
      }
    },
    (formError) {
      // Handle the error
    },
  );
}

Jika izin tidak diperlukan, Anda dapat menyimpan referensi ke formulir tersebut agar pengguna dapat mengubah status izinnya.

Pengujian

Paksa geografi

UMP SDK menyediakan cara untuk menguji perilaku aplikasi seolah-olah perangkat berada di EEA menggunakan ConsentDebugSettings.debugGeography.

Anda harus memberikan ID yang di-hash perangkat pengujian di setelan debug aplikasi untuk menggunakan fungsi debug. Jika Anda memanggil requestConsentInfoUpdate() tanpa menetapkan nilai ini, aplikasi akan mencatat hash ID yang diperlukan saat dijalankan.

ConsentDebugSettings debugSettings = ConsentDebugSettings(
  debugGeography: DebugGeography.debugGeographyEea,
  testIdentifiers: ['TEST-DEVICE-HASHED-ID']);

ConsentRequestParameters params = ConsentRequestParameters(
  consentDebugSettings: debugSettings);

ConsentInformation.instance.requestConsentInfoUpdate(
  params,
  () {},
  (error) {});

Untuk memaksa SDK memperlakukan perangkat seolah-olah tidak berada di EEA atau Inggris Raya, gunakan DebugGeography.debugGeographyNotEea. Perhatikan bahwa setelan debug hanya berfungsi pada perangkat pengujian. Emulator tidak perlu ditambahkan ke daftar ID perangkat karena pengujian telah diaktifkan secara default.

Dalam menguji aplikasi dengan UMP SDK, sebaiknya reset status SDK agar dapat menyimulasikan pengalaman penginstalan pertama pengguna. SDK menyediakan metode reset untuk melakukannya.

ConsentInformation.instance.reset();

Anda juga harus memanggil reset jika Anda memutuskan untuk menghapus UMP SDK sepenuhnya dari project.

Mediasi

Jika menggunakan mediasi, Anda harus menangani izin untuk partner mediasi secara berbeda berdasarkan framework izin yang dipilih untuk digunakan di aplikasi. Google mendukung IAB Consent Framework, tetapi juga memungkinkan Anda untuk memiliki solusi izin kustom Anda sendiri. Di bawah ini adalah detail tentang cara menangani mediasi pada setiap opsi ini. Pelajari solusi izin kami lebih lanjut.

UMP SDK atau Mobile Ads SDK tidak meneruskan informasi izin ke partner mediasi. Namun, saat menggunakan solusi IAB, UMP SDK akan menulis informasi status izin ke penyimpanan lokal dan setiap SDK partner mediasi bertanggung jawab untuk membaca kunci yang sesuai. Pastikan untuk menghubungi setiap jaringan pihak ketiga untuk menentukan apakah mereka mendukung solusi IAB atau tidak.

Jika menggunakan solusi izin kustom, Anda bertanggung jawab untuk memberi tahu SDK pihak ketiga tentang status izin aplikasi Anda. Setiap jaringan mediasi memiliki API-nya sendiri untuk menangani izin, yang didokumentasikan untuk Android dan iOS.

Lihat Menggunakan API Khusus Jaringan untuk mempelajari cara memanggil API ini dari Dart.

Perilaku default Google Mobile Ads SDK adalah menayangkan iklan yang dipersonalisasi. Jika pengguna telah setuju untuk hanya menerima iklan yang tidak dipersonalisasi, Anda dapat mengonfigurasi objek AdManagerAdRequest dengan kode berikut untuk menentukan bahwa hanya iklan yang tidak dipersonalisasi yang boleh diminta:

final AdManagerAdRequest = AdManagerAdRequest(nonPersonalizedAds: true);

Kebijakan Izin Pengguna Uni Eropa Google mengharuskan Anda mengumpulkan izin untuk daftar lengkap penyedia teknologi iklan yang dikonfigurasi untuk ID penayang Anda sebelum menampilkan iklan yang dipersonalisasi, meskipun Anda menggunakan solusi mediasi pihak ketiga untuk mengirim permintaan iklan ke Google.