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.
gtag.js
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
});
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
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
.
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 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>
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>
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.
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:
- 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.
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.
gtag.js
Untuk lebih menyamarkan data iklan jika ad_storage
adalah denied
, 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.
Tag Manager
Jika Anda menggunakan template untuk membuat tag, template tersebut mungkin memiliki kontrol untuk lebih menyamarkan data iklan. Jika Anda membuat tag template sendiri, lihat artikel Membuat template mode izin untuk mengetahui informasi selengkapnya tentang cara menyamarkan data iklan.
Fitur konfigurasi izin Google 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.
Memverifikasi setelan izin
Untuk memverifikasi dan men-debug konfigurasi mode izin Anda, sebaiknya gunakan Tag Assistant. Tag Assistant memungkinkan Anda melihat apakah dan bagaimana status izin ditetapkan dan diperbarui. Tag Assistant mendukung hal berikut:
- Perintah izin gtag
- Tag yang dibuat dari template Mode Izin Tag Manager
- Transparency and Consent Framework (TCF)
Pelajari lebih lanjut proses debug mode izin Tag Assistant.
Jika Anda tidak menggunakan template mode izin, Anda dapat menganalisis setelan izin dengan alat developer di browser.
Untuk menganalisis setelan izin Anda:
Pada tab Elemen, ketik
dataLayer
di kotak penelusuran. Pastikan bahwa:- Perintah
default
ditempatkan sebelum semua peristiwa Google lainnya. - Status izin ditetapkan sesuai dengan interaksi pengguna menggunakan perintah
update
. - Tag hanya diaktifkan jika setelan izin yang diperlukan terpenuhi.
ads_data_redaction
danurl_passthrough
ditetapkan sesuai dengan setelan yang disediakan pengguna.
- Pada tab Jaringan:
- Periksa parameter
gcs=
di URL untuk menemukan status izin. Parametergcs
memiliki format berikut:gcs=G1 [ad_storage][analytics_storage]
. - Periksa nilai parameter
gcs=
yang benar berdasarkan izin yang diberikan. Nilai untukad_storage
dananalytics_storage
akan berupa salah satu dari yang berikut:
Nilai Arti G100 Izin ditolak untuk ad_storage
dananalytics_storage
.G110 Izin diberikan untuk ad_storage
dan ditolak untukanalytics_storage
.G101 Izin ditolak untuk ad_storage
dan diberikan untukanalytics_storage
.G111 Izin untuk ad_storage
dananalytics_storage
diberikan.G1-- Situs tidak memerlukan izin untuk ad_storage
atauanalytics_storage
.- Pastikan domain tanpa cookie (misalnya, googlesyndication.com) digunakan saat
ads_data_redaction
ditetapkan ketrue
. - Pastikan
gclid
/dclid
ditambahkan ke URL keluar saaturl_passthrough
ditetapkan ketrue
dan terdapat parameter penaut_gl
(misalnya,https://www.example.com/?_gl=1*abcde5*
).
- Perintah
Kontrol tag lama
Jika menggunakan tag 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: