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 Mode izin di situs dan aplikasi seluler.

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. Untuk informasi terkait, lihat:

Sebelum memulai

Pertimbangkan hal-hal berikut sebelum menerapkan mode izin:

  • Sebaiknya konfigurasi 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' 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. Solusi pengelolaan izin kustom 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.

gtag.js

Bagian berikut memberikan contoh penggunaan gtag.js untuk:

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.

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 ad_storage dan analytics_storage secara default, tentukan setelan dalam parameter consent:

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

Saat pengguna menentukan izin, atau mengubah pilihan izin mereka, perbarui perilaku pengukuran. 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, nilai tersebut akan tetap ditolak setelah panggilan ini. Anda harus memastikan 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'
});

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
})

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 ad_storage ke denied secara default. Setelah pengguna menunjukkan bahwa dia 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:

  1. Muat tag Google. 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.

  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);}

// Default ad_storage to 'denied' as a placeholder
// Determine actual values based on your own requirements
gtag('consent', 'default', {
  'ad_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>

<!-- 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, 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 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'
});
``` #### Most specific takes precedence

If two default consent commands occur on the same page with values for a
region and subregion, the one with a more specific region will take effect.
For example, if you have `ad_storage` set to `granted` for the region US and
`ad_storage` set to `denied` for the region US-CA, a visitor from California
will have the more specific US-CA setting take effect. For this example,
that would mean a visitor from US-CA would have `ad_storage` set to
`denied`.

<table>
<tr>
<th>Region</th>
<th><code>ad_storage</code></th>
<th>Behavior</th>
</tr>
<tr>
<td>US</td>
<td><code>'granted'</code></td>
<td>Applies to users in the US that are <em>not</em> in CA</td>
</tr>
<tr>
<td>US-CA</td>
<td><code>'denied'</code></td>
<td>Applies to users US-CA</td>
</tr>
<tr>
<td>Unspecified</td>
<td><code>'granted'</code></td>
<td>
  Uses the default value of <code>'granted'</code>. In the example, applies to visitors that aren't in the US or in US-CA
</td>
</tr>
</table>

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.

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, 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 memilih untuk menggunakan fitur passthrough URL.
  • 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 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 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:

1.  Redirects on your site pass all the above query parameters.
  1. Alat analisis Anda mengabaikan parameter ini di URL halaman.
  2. Parameter ini tidak mengganggu perilaku situs Anda.