Cara mengaktifkan dan menggunakan Mode Izin akan bergantung pada penerapan untuk mendapatkan izin dan platform pemberian tag (Google Tag Manager (GTM) atau gtag.js) yang Anda gunakan:
- Platform Pengelolaan Konten (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.
- 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. Untuk informasi terkait, lihat:
- Ringkasan Mode Izin
- API Izin Tag Manager
- API izin tag situs global
- Mengonfigurasi izin di template Tag Manager
- Galeri Template Komunitas
- Konfigurasi izin tag
- Proses Debug Mode Izin Tag Assistant
Sebelum memulai
Pertimbangkan hal-hal berikut sebelum menerapkan Mode Izin:
Sebaiknya konfigurasikan agar setelan izin berlaku untuk wilayah tertentu, dan bukan untuk semua pengunjung. Langkah ini akan membantu menghindari kehilangan pengukuran pengguna dari wilayah yang tidak mewajibkan banner izin, jika mode izin default Anda ditetapkan ke 'denied' (ditolak). Lihat Perilaku spesifik per wilayah.
Jika Anda menggunakan CMP, perintah pembaruan izin harus dikonfigurasi untuk menargetkan 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' (ditolak) 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 pelacakan
Status izin default harus langsung ditetapkan saat halaman dimuat berdasarkan setelan default yang diwajibkan organisasi Anda. Solusi pengelolaan izin atau CMP 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.
Metode gtag('consent','update',...) sebaiknya tidak 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 artikel Cara informasi lapisan data diproses.
Bagian berikut memberikan contoh API gtag.js dan Tag Manager untuk:
- Menetapkan setelan default izin
- Memperbarui status izin
- Mengintegrasikan dengan platform pengelolaan izin asinkron
Menetapkan setelan default izin
Nilai default untuk status izin adalah granted
jika tidak ditetapkan secara eksplisit. Sebaiknya tetapkan nilai default untuk setiap jenis penyimpanan 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.
gtag.js
Untuk menyesuaikan kemampuan pengukuran default, panggil perintah gtag('consent',
'default', ...)
di setiap halaman situs Anda sebelum perintah apa pun yang mengirim data pengukuran (seperti konfigurasi atau peristiwa). Misalnya, untuk menolak ad_storage
dan analytics_storage
secara default, tentukan setelan dalam parameter consent
:
gtag('consent', 'default', {
'ad_storage': 'denied',
'analytics_storage': 'denied'
});
Tag Manager
Sebaiknya gunakan template Mode Izin dari Galeri Template Komunitas untuk mengelola izin. Lihat Mengonfigurasi izin di template Tag Manager untuk mendapatkan informasi tentang cara membuat izin Anda sendiri dengan API Tag Manager. Contoh berikut menunjukkan cara menggunakan API Tag Manager agar dapat menetapkan status izin default untuk semua jenis izin.
const setDefaultConsentState = require('setDefaultConsentState');
setDefaultConsentState({
'ad_storage': 'denied',
'analytics_storage': 'granted'
});
Memperbarui status izin
Saat pengguna menentukan izin, atau mengubah pilihan izin mereka, perbarui perilaku pengukuran.
gtag.js
Status izin hanya akan diubah untuk kolom yang disediakan ke panggilan update
. Dalam contoh di bawah, hanya nilai ad_storage
yang diubah. Jika
analytics_storage
ditetapkan ke denied
, maka akan tetap ditolak setelah panggilan ini. Anda harus memastikan bahwa nilai yang benar telah ditetapkan untuk semua jenis izin. Untuk detail selengkapnya tentang jenis yang didukung, lihat izin dalam referensi API.
Teruskan pembaruan sesegera mungkin di setiap halaman. Setelah pengguna memberikan izin, pertahankan pilihan mereka dan panggil perintah pembaruan yang sesuai di halaman berikutnya. 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.
Contoh ini menggunakan nilai hardcode 'granted'/'denied', tetapi dalam praktiknya, nilai tersebut harus ditentukan pada saat waktu proses menggunakan izin aktual pengguna yang dikumpulkan oleh solusi pengelolaan izin. Kode berikut memberikan izin saat pengguna setuju untuk mengizinkan cookie iklan:
gtag('consent', 'update', {
'ad_storage': 'granted'
});
Tag Manager
Contoh berikut menunjukkan panggilan updateConsentState
untuk pengunjung yang
menunjukkan bahwa mereka mengizinkan semua jenis penyimpanan. Contoh ini menggunakan
nilai hardcode untuk 'granted', tetapi dalam praktiknya, nilai tersebut harus
ditentukan pada saat waktu proses dari izin yang dikumpulkan oleh solusi
pengelolaan izin.
const updateConsentState = require('updateConsentState');
updateConsentState({
'ad_storage': 'granted',
'analytics_storage': 'granted'
});
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 untuk 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
})
Contoh penerapan
Contoh berikut menetapkan ad_storage
ke denied
secara default. Setelah pengguna menunjukkan bahwa mereka mengizinkan fitur di belakang ad_storage
, status izin 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:
Muat tag situs global. Ini adalah kode cuplikan default Anda. Cuplikan default harus diperbarui (lihat di bawah) untuk menyertakan panggilan ke
gtag('consent', 'default', ...)
. Jika Anda tidak menetapkan setelan default apa pun, semua fungsi pemberian tag akan diaktifkan.Muat solusi izin Anda. Jika solusi izin Anda dimuat secara asinkron, lihat Mengintegrasikan dengan platform pengelolaan izin asinkron untuk mengetahui cara memastikan proses ini terjadi dalam urutan yang benar.
Jika tidak ditangani oleh solusi izin Anda, panggil
gtag('consent', 'update', ...)
setelah pengguna menunjukkan pemberian izin.
<script>
// Define dataLayer and the gtag function.
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
// Default ad_storage to 'denied' as a placeholder
// Determine actual values based on your own requirements
gtag('consent', 'default', {
'ad_storage': 'denied'
});
</script>
<!-- Global site tag (gtag.js) - Google Ads: CONVERSION_ID -->
<script async src="https://www.googletagmanager.com/gtag/js?id=AW-YYYYYY">
</script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'AW-YYYYYY');
</script>
<!-- Update this section based on your business requirements. -->
<script>
function consentGranted() {
gtag('consent', 'update', {
'ad_storage': 'granted'
});
}
</script>
<body>
...
<button onclick="consentGranted">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 yang disediakan, Anda dapat membuat template sendiri untuk mengintegrasikan solusi 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);}
// Default ad_storage to 'denied'.
gtag('consent', 'default', {
'ad_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 -->
<!-- Update this section based on your business requirements -->
<script>
function consentGranted() {
gtag('consent', 'update', {
'ad_storage': 'granted'
});
}
</script>
<body>
...
<button onclick="consentGranted">Yes</button>
...
</body>
```
Fitur izin lanjutan
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 mengidentifikasi wilayah.
Contoh berikut menetapkan analytics_storage
ke denied
untuk pengguna dari Spanyol dan Alaska, serta menetapkan ad_storage
ke denied
untuk semua pengguna.
gtag.js
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 seperti yang direkomendasikan di atas, template ini kemungkinan memiliki kontrol untuk menetapkan setelan default spesifik per wilayah. Jika Anda membuat tag template sendiri, kode berikut menunjukkan contoh setelan default status izin spesifik per wilayah.
const setDefaultConsentState = require('setDefaultConsentState');
setDefaultConsentState({
'analytics_storage': 'denied',
'region': ['ES', 'US-AK']
});
setDefaultConsentState({
'ad_storage': 'denied'
});
Wilayah 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, pengunjung dari California akan memiliki setelan US-CA yang diterapkan karena lebih spesifik. Untuk contoh ini, itu berarti pengunjung dari US-CA akan memiliki ad_storage yang ditetapkan ke 'denied'.
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, client ID, 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, tag Google biasanya menyimpan informasi ini dalam cookie pihak pertama di domain Anda.
Namun, jika ad_storage
ditetapkan ke denied
, tag Google tidak akan menyimpan informasi ini secara lokal. Untuk meningkatkan kualitas pengukuran klik iklan saat ad_storage
adalah denied
, Anda dapat memilih untuk meneruskan informasi klik iklan melalui parameter URL di seluruh halaman menggunakan passthrough URL.
Demikian pula, jika analytics_storage
ditetapkan ke denied
, URL passthrough 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 ada di halaman.
- Pengiklan telah memilih untuk menggunakan fitur URL passthrough.
- Mode Izin diterapkan di halaman.
- Link keluar merujuk ke domain yang sama dengan domain halaman saat ini.
gclid/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 tag template yang menetapkan status izin, tag tersebut mungkin memiliki opsi untuk 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 Aktifkan penautan di semua URL halaman dicentang. Lihat penyiapan dasar untuk petunjuk cara membuat tag Conversion Linker.
Untuk tag Google Analytics:
- Di Tag Manager, buka Kolom untuk Ditetapkan:
- Untuk tag Google Analytics: Konfigurasi GA4, pilih Konfigurasi Tag > Kolom untuk Ditetapkan.
- Untuk tag Google Analytics: Universal Analytics, gunakan variabel setelan Google Analytics lalu pilih Konfigurasi Variabel > Setelan Lainnya > Kolom untuk Ditetapkan.
- Saat bagian Kolom untuk Ditetapkan diluaskan, klik Tambahkan Baris.
- 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
.
- Untuk tag Google Analytics: Konfigurasi GA4, masukkan
- Untuk Nilai, masukkan 'true'.
- 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 URL passthrough, beberapa parameter kueri dapat ditambahkan ke link saat pengguna membuka halaman di situs Anda:
gclid
dclid
gclsrc
_gl
wbraid
Untuk hasil terbaik, pastikan:
- Pengalihan di situs Anda meneruskan semua parameter kueri di atas.
- Alat analisis Anda mengabaikan parameter ini di URL halaman.
- Parameter ini tidak mengganggu perilaku situs Anda.
Menyamarkan data iklan
Jika ad_storage
adalah denied
, cookie baru tidak akan ditetapkan untuk tujuan
iklan. Selain itu, cookie pihak ketiga yang sebelumnya ditetapkan di google.com dan doubleclick.net tidak akan digunakan, kecuali untuk tujuan spam dan penipuan. Data yang dikirim ke Google akan tetap menyertakan URL halaman lengkap, termasuk informasi klik iklan apa pun di parameter URL.
Untuk menyamarkan data iklan lebih lanjut saat ad_storage
adalah denied
, jika Anda menggunakan gtag
, tetapkan ads_data_redaction
ke true
.
gtag('set', 'ads_data_redaction', true);
Jika ads_data_redaction
adalah true
dan ad_storage
adalah denied
, ID klik
iklan yang dikirim dalam permintaan jaringan oleh tag Google Ads dan Floodlight akan disamarkan. Permintaan jaringan juga akan dikirim melalui domain tanpa cookie.
Fitur konfigurasi izin Tag Manager
Tag Manager dilengkapi beberapa fitur yang berfungsi bersama untuk membantu Anda mengelola perilaku tag dalam merespons setelan izin. Tag Manager memiliki pemicu inisialisasi izin, setelan tag untuk pengelolaan izin, dan halaman Ringkasan Izin. Beberapa penyedia pengelolaan izin pihak ketiga telah menerapkan integrasi dengan Mode Izin ke produk mereka. Pelajari fitur izin Tag Manager lebih lanjut.
Setelan verifikasi izin
Untuk mengetahui informasi selengkapnya tentang cara memverifikasi dan men-debug konfigurasi Mode Izin, lihat Proses Debug Mode Izin Tag Assistant.
Kontrol tag lama
Jika menggunakan tag Google lama, seperti ga.js, analytics.js, atau conversion.js, Anda harus memperbarui ke gtag.js atau Google Tag Manager.
Untuk mempelajari lebih lanjut kontrol privasi tag lama lainnya, lihat dokumentasi berikut: