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 pelacakan
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.
Bagian berikut memberikan contoh penggunaan gtag.js untuk:
- Menetapkan setelan default izin
- Memperbarui status izin
- Mengintegrasikan dengan platform pengelolaan izin asinkron
Menetapkan setelan default izin
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'
});
Memperbarui status izin
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
});
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
danupdateConsentState
. APIgtagSet
dapat digunakan untuk secara opsional menetapkan setelanads_data_redaction
dan passthrough URL yang sesuai.Metode
gtag('consent','update',...)
tidak boleh digunakan sebagai penggantiupdateConsentState
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
.
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 Google. Ini adalah kode cuplikan default Anda. Cuplikan default harus diperbarui (lihat di bawah) untuk menyertakan panggilan ke
gtag('consent', 'default', ...)
.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.
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>
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>
Mengupgrade ke mode izin v2
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
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.
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'
});
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)
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:
- 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 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:
- 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.