Mengelola setelan izin (web)

Halaman ini ditujukan untuk developer yang mengelola tag Google di situs dan ingin mengintegrasikan mode izin. Untuk mempelajari pengantar mode izin, baca artikel Ringkasan mode izin.

Cara mengaktifkan dan menggunakan mode izin akan bergantung pada penerapan untuk mendapatkan izin dan platform pemberian tag (Google Tag Manager (GTM) atau tag Google) yang Anda gunakan:

  • Platform Pengelolaan Izin (CMP) yang mendukung mode izin Google menyediakan:
    • Template Tag Manager di Galeri Template Komunitas yang harus Anda gunakan agar dapat membuat tag untuk mengelola izin.
    • Kode JavaScript untuk situs yang menggunakan gtag.js untuk mengelola izin.
  • Untuk penerapan kustom dan CMP yang tidak mendukung mode izin:
    • Jika Anda menggunakan GTM, sebaiknya buat template sendiri menggunakan API izin Tag Manager. Contoh berikut tersedia sebagai referensi untuk memulai.
    • Jika menggunakan gtag.js, Anda harus menambahkan kode izin secara manual ke setiap halaman situs sebagai perintah langsung atau dalam cuplikan HTML kustom.

Artikel ini menguraikan praktik terbaik dan memberikan contoh API. Lihat link terkait untuk mendapatkan informasi selengkapnya.

Sebelum memulai

Pertimbangkan hal-hal berikut sebelum menerapkan mode izin:

  • Sebaiknya tetapkan cakupan setelan izin default ke wilayah tempat Anda menampilkan banner izin kepada pengunjung. Tindakan ini akan membantu agar pengukuran tetap dijalankan di wilayah yang mewajibkan banner izin dan tag Google akan menyesuaikan perilakunya. Anda juga akan mencegah hilangnya pengukuran jika tidak ada banner izin atau jika banner izin tidak berlaku. Lihat Perilaku spesifik per wilayah.

  • Jika Anda menggunakan CMP, perintah pembaruan izin harus dikonfigurasi untuk menarget pengunjung dari wilayah yang sama dengan yang ditentukan dalam perintah izin default. Langkah ini akan memberi kesempatan bagi pengguna untuk memperbarui status izin mereka jika ditetapkan ke 'denied' secara default.

  • Saat menulis template atau tag HTML Kustom Anda sendiri, semua perintah yang dieksekusi di callback atau perintah yang menggunakan gtag() tidak dijamin akan tersedia sebelum pemicu berikutnya diaktifkan. Untuk memastikan informasi izin tersedia secepat mungkin, gunakan (atau buat) template tag yang menggunakan API Izin Tag Manager untuk menetapkan status izin.

Status izin default harus langsung ditetapkan saat halaman dimuat berdasarkan setelan default yang diwajibkan organisasi Anda. CMP atau solusi pengelolaan izin kustom harus meminta pengunjung memberikan atau menolak izin untuk jenis izin yang berlaku. Karena mode izin tidak menyimpan pilihan izin, solusi pengelolaan izin juga harus mengeluarkan perintah pembaruan mode izin berdasarkan pilihan izin pengguna seawal mungkin di setiap halaman setelah izin diberikan.

gtag.js

Bagian berikut memberikan contoh penggunaan gtag.js untuk:

Sebaiknya tetapkan nilai default untuk setiap jenis izin yang Anda gunakan. Nilai status izin dalam artikel ini hanyalah contoh. Anda bertanggung jawab untuk memastikan mode izin default ditetapkan untuk setiap produk pengukuran agar sesuai dengan kebijakan organisasi Anda.

Untuk menyesuaikan kemampuan pengukuran default, panggil perintah gtag('consent', 'default', ...) di setiap halaman situs Anda sebelum perintah apa pun yang mengirim data pengukuran (seperti config atau event). Misalnya, untuk menolak beberapa jenis izin secara default, tentukan parameter consent berikut:

gtag('consent', 'default', {
  'ad_storage': 'denied',
  'ad_user_data': 'denied',
  'ad_personalization': 'denied',
  'analytics_storage': 'denied'
});

Saat pengguna menentukan izin, atau mengubah pilihan izinnya, perbarui status izin menggunakan perintah update. Karena mode izin tidak menyimpan pilihan izin, perbarui status izin segera setelah pengguna berinteraksi dengan solusi pengelolaan izin Anda. Setelah pengguna memberikan izin, pertahankan pilihan mereka dan panggil perintah pembaruan yang sesuai di halaman berikutnya.

Dalam contoh di bawah, hanya nilai ad_storage yang diubah. Jika analytics_storage ditetapkan ke denied, jenis izin ini akan tetap ditolak setelah panggilan ini. Anda harus memastikan bahwa nilai yang benar telah ditetapkan untuk semua jenis izin. Untuk mengetahui detail selengkapnya tentang jenis yang didukung, baca Referensi API.

Contoh kode berikut menunjukkan cara memperbarui status izin menjadi granted saat pengguna setuju untuk mengizinkan cookie iklan:

<script>
function consentGrantedAdStorage() {
  gtag('consent', 'update', {
    'ad_storage': 'granted'
  });
  }
</script>
<!-- Invoke your consent function when a user interacts with your banner -->
<body>
  ...
  <button onclick="consentGrantedAdStorage()">Yes</button>
  ...
</body>

Mengintegrasikan dengan platform pengelolaan izin asinkron

Jika dimuat secara asinkron, CMP Anda mungkin tidak selalu berjalan sebelum Tag Google. Untuk menangani situasi tersebut, tentukan wait_for_update beserta nilai milidetik untuk mengontrol waktu tunggu sebelum data dikirim.

Misalnya, untuk menolak ad_storage di halaman tertentu secara default, tetapi mengizinkan CMP memperbarui status izin, gunakan wait_for_update. Dalam kode berikut, ad_storage ditetapkan secara default ke denied, dan alat izin diberi waktu 500 milidetik untuk memanggil gtag('consent', 'update', ...) sebelum tag diaktifkan:

gtag('consent', 'default', {
'ad_storage': 'denied',
'wait_for_update': 500
});

Tag Manager

Untuk penerapan Tag Manager, sebaiknya gunakan template mode izin dari Galeri Template Komunitas untuk mengelola izin. Lihat artikel Membuat template mode izin untuk mengetahui informasi tentang cara membuat template Anda sendiri menggunakan API izin Tag Manager.

Catatan:

  • Penerapan mode izin di situs yang memanfaatkan GTM untuk pemberian tag harus menggunakan API khusus GTM untuk mengelola status izin, yaitu setDefaultConsentState dan updateConsentState. API gtagSet dapat digunakan untuk secara opsional menetapkan setelan ads_data_redaction dan passthrough URL yang sesuai.

  • Metode gtag('consent','update',...) tidak boleh digunakan sebagai pengganti updateConsentState karena metode tersebut akan dimasukkan ke antrean setelah semua pesan tertunda lainnya dan mungkin tidak akan diproses sebelum peristiwa berikutnya dimulai. Untuk mengetahui informasi selengkapnya, lihat bagian Cara pemrosesan informasi lapisan data.

Contoh penerapan

Contoh berikut menetapkan beberapa parameter mode izin ke denied secara default. Setelah pengguna menunjukkan pilihan izinnya, parameter yang relevan akan diperbarui menjadi granted.

gtag.js

Urutan kode di sini sangat penting. Jika kode izin Anda dipanggil secara tidak berurutan, setelan default izin tidak akan berfungsi. Bergantung pada persyaratan bisnis, detail khususnya dapat bervariasi, tetapi secara umum, kode akan berjalan dalam urutan berikut:

  1. Muat tag Google. Ini adalah kode cuplikan default Anda. Cuplikan default harus diperbarui (lihat di bawah) untuk menyertakan panggilan ke gtag('consent', 'default', ...).

  2. Muat solusi izin Anda. Jika solusi izin Anda dimuat secara asinkron, lihat artikel Mengintegrasikan dengan platform pengelolaan izin asinkron untuk mengetahui cara memastikan proses ini terjadi dalam urutan yang benar.

  3. Jika tidak ditangani oleh solusi izin Anda, panggil gtag('consent', 'update', ...) setelah pengguna memberikan izin.

<script>
// Define dataLayer and the gtag function.
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}

// Set default consent to 'denied' as a placeholder
// Determine actual values based on your own requirements
gtag('consent', 'default', {
  'ad_storage': 'denied',
  'ad_user_data': 'denied',
  'ad_personalization': 'denied',
  'analytics_storage': 'denied'
});
</script>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=TAG_ID">
</script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}

  gtag('js', new Date());
  gtag('config', 'TAG_ID');
</script>

<!-- Create one update function for each consent parameter -->
<script>
  function consentGrantedAdStorage() {
    gtag('consent', 'update', {
      'ad_storage': 'granted'
    });
  }
</script>
<!-- Invoke your consent functions when a user interacts with your banner -->
<body>
  ...
  <button onclick="consentGrantedAdStorage">Yes</button>
  ...
</body>

Tag Manager

Untuk situs yang menggunakan Tag Manager, sebaiknya gunakan CMP dalam menangani pembaruan pilihan izin pengunjung. CMP menyediakan template di Galeri Template Komunitas untuk membuat tag guna mengelola mode izin.

Jika tidak dapat menggunakan template, Anda dapat memperbarui kode di halaman sebagai berikut. Urutan kode di sini sangat penting. Jika kode izin Anda dipanggil secara tidak berurutan, setelan default izin tidak akan berfungsi.

<script>
  // Define dataLayer and the gtag function.
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}

  // Set default consent to 'denied' as a placeholder
  // Determine actual values based on your own requirements
  gtag('consent', 'default', {
    'ad_storage': 'denied',
    'ad_user_data': 'denied',
    'ad_personalization': 'denied',
    'analytics_storage': 'denied'
  });
</script>

<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXXX');</script>
<!-- End Google Tag Manager -->

<!-- Create one update function for each consent parameter -->
<script>
  function consentGrantedAdStorage() {
    gtag('consent', 'update', {
      'ad_storage': 'granted'
    });
  }
</script>
<!-- Invoke your consent functions when a user interacts with your banner -->
<body>
  ...
  <button onclick="consentGrantedAdStorage()">Yes</button>
  ...
</body>

Sebagai bagian dari komitmen berkelanjutan Google terhadap ekosistem periklanan digital yang mengutamakan privasi, kami akan memperketat pemberlakuan Kebijakan izin pengguna Uni Eropa kami. Pengguna mode izin harus mengirim dua parameter baru selain ad_storage dan analytics_storage:

Nama Kolom Nilai yang Diizinkan Deskripsi
ad_user_data 'granted' | 'denied' Menetapkan izin untuk mengirim data pengguna yang terkait dengan iklan ke Google.
ad_personalization 'granted' | 'denied' Menetapkan izin untuk iklan yang dipersonalisasi.

Fitur izin lanjutan mencakup kemampuan untuk:

  • Menetapkan perilaku untuk wilayah geografis.
  • Meneruskan informasi klik iklan, client ID, dan ID sesi di URL saat pengguna belum memberikan izin untuk cookie.
  • Menyamarkan (menghapus) sepenuhnya informasi iklan saat pengguna menolak izin cookie iklan.

Perilaku spesifik per wilayah

Untuk mengubah perilaku default tag Anda bagi pengguna dari wilayah tertentu, tentukan wilayah di perintah izin Anda. Dengan menyediakan nilai wilayah, Anda dapat menyesuaikan setelan default berdasarkan lokasi geografis pengguna. Lihat ID geografis untuk mengetahui informasi selengkapnya tentang cara mengidentifikasi wilayah.

gtag.js

Contoh berikut menetapkan analytics_storage ke denied untuk pengguna dari Spanyol dan Alaska, serta menetapkan ad_storage ke denied untuk semua pengguna.

  gtag('consent', 'default', {
    'analytics_storage': 'denied',
    'region': ['ES', 'US-AK']
  });

  gtag('consent', 'default', {
    'ad_storage': 'denied'
  });

Tag Manager

Jika Anda menggunakan template untuk membuat tag, template tersebut mungkin memiliki kontrol untuk menetapkan perilaku spesifik per wilayah. Jika Anda membuat tag template sendiri, lihat artikel Membuat template mode izin untuk mengetahui informasi selengkapnya tentang setelan perilaku spesifik per wilayah.

Parameter yang paling spesifik diutamakan

Jika dua perintah izin default muncul pada halaman yang sama dengan nilai untuk wilayah dan subwilayah, perintah dengan wilayah yang lebih spesifik akan diterapkan. Misalnya, jika Anda memiliki ad_storage yang ditetapkan ke granted untuk wilayah US dan ad_storage yang ditetapkan ke denied untuk wilayah US-CA, setelan US-CA akan diterapkan bagi pengunjung dari California karena lebih spesifik. Untuk contoh ini, artinya ad_storage akan ditetapkan ke denied bagi pengunjung dari US-CA.

Wilayah ad_storage Perilaku
US 'granted' Berlaku untuk pengguna di US (AS) yang tidak berada di CA (California)
US-CA 'denied' Berlaku untuk pengguna US-CA (AS-California)
Belum ditetapkan 'granted' Menggunakan nilai default 'granted'. Dalam contoh ini, berlaku untuk pengunjung yang tidak berada di US atau US-CA

Meneruskan informasi klik iklan, ID klien, dan ID sesi di URL

Saat pengguna membuka situs Anda setelah mengklik iklan, informasi tentang iklan tersebut dapat ditambahkan ke URL halaman landing sebagai parameter kueri. Untuk meningkatkan akurasi konversi, informasi ini biasanya disimpan dalam cookie pihak pertama di domain Anda.

Namun, jika ad_storage ditetapkan ke denied, informasi ini tidak akan disimpan secara lokal. Untuk meningkatkan kualitas pengukuran klik iklan saat ad_storage ditetapkan ke denied, Anda dapat memilih untuk meneruskan informasi tentang klik iklan melalui parameter URL di seluruh halaman menggunakan passthrough URL.

Demikian pula, jika analytics_storage ditetapkan ke denied, passthrough URL dapat digunakan untuk mengirim analisis berbasis sesi dan peristiwa (termasuk konversi) tanpa cookie di seluruh halaman.

Kondisi berikut harus dipenuhi agar dapat menggunakan passthrough URL:

  • Tag Google berbasis izin terdapat di halaman.
  • Pengiklan telah mengaktifkan fitur passthrough URL.
  • Mode izin diterapkan di halaman.
  • Link keluar merujuk ke domain yang sama dengan domain halaman saat ini.
  • GCLID atau DCLID ada di URL (tag Google Ads dan Floodlight saja)

gtag.js

Untuk mengaktifkan kemampuan ini, tetapkan parameter url_passthrough ke true:

gtag('set', 'url_passthrough', true);

Tag Manager

Jika Anda menggunakan template untuk membuat tag, template tersebut mungkin memiliki kontrol untuk menetapkan passthrough URL. Jika Anda membuat tag template sendiri, lihat artikel Membuat template mode izin untuk mengetahui informasi selengkapnya tentang cara menetapkan passthrough URL menggunakan API template kustom gtagSet.

Atau, Anda dapat menggunakan opsi berikut untuk menetapkannya di tag Conversion Linker dan/atau tag analisis.

Untuk tag Google Ads dan Floodlight:

Untuk mengaktifkan kemampuan ini, buat (atau gunakan) tag Conversion Linker yang ada dan pastikan opsi Aktifkan penautan di semua URL halaman dicentang. Lihat penyiapan dasar untuk mengetahui petunjuk cara membuat tag Conversion Linker.

Untuk tag Google Analytics:

  1. Di Tag Manager, buka Kolom untuk Ditetapkan:
  2. Saat bagian Kolom untuk Ditetapkan diluaskan, klik Tambahkan Baris.
  3. Untuk Nama Kolom, masukkan nilai yang benar:
    • Untuk tag Google Analytics: Konfigurasi GA4, masukkan url_passthrough.
    • Untuk tag Google Analytics: Universal Analytics yang menggunakan variabel setelan Google Analytics, masukkan urlPassthrough.
  4. Untuk Nilai, masukkan 'true'.
  5. Simpan tag dan publikasikan.

Atau, Anda dapat menetapkan parameter url_passthrough ke true di setiap halaman situs Anda sebelum cuplikan penginstalan GTM.

window.dataLayer = window.dataLayer || [];
function gtag(){window.dataLayer.push(arguments);}
gtag('set', 'url_passthrough', true);

Saat menggunakan passthrough URL, beberapa parameter kueri dapat ditambahkan ke link saat pengguna membuka halaman di situs Anda:

  • gclid
  • dclid
  • gclsrc
  • _gl
  • wbraid

Untuk hasil terbaik, pastikan:

  1. Pengalihan di situs Anda meneruskan semua parameter kueri di atas.
  2. Alat analisis Anda mengabaikan parameter ini di URL halaman.
  3. Parameter ini tidak mengganggu perilaku situs Anda.