Di Mana Menyimpan Persetujuan: Perbandingan Cookie, localStorage, dan Catatan Sisi Server
Dua Pekerjaan yang Berbeda
Ketika pengunjung membuat pilihan persetujuan, dua hal terpisah perlu terjadi. Pertama, browser harus mengingat pilihan itu agar banner tidak muncul lagi di setiap halaman dan tag tahu apa yang boleh dilakukannya. Kedua, Anda mungkin perlu membuktikan kemudian bahwa pilihan itu dibuat, apa yang ditampilkan kepada pengunjung, dan kapan. Kedua pekerjaan ini sering ditangani mekanisme penyimpanan yang berbeda, dan mencampuradukkannya menimbulkan masalah nyata: banner yang terus muncul kembali, pilihan yang hilang di sebagian browser, atau tidak ada catatan untuk ditunjukkan ketika ada yang bertanya.
Perbandingan ini membahas tiga opsi umum — cookie first-party, penyimpanan browser seperti localStorage, dan catatan persetujuan sisi server — serta di mana masing-masing cocok.
Opsi 1: Cookie First-Party
Cookie adalah rumah tradisional bagi status persetujuan. CMP TCF umumnya menyimpan string persetujuan dalam cookie first-party, dan banyak CMP menyimpan data preferensinya sendiri di dalamnya juga.
Kelebihan
- Dapat dibaca server. Cookie dikirim bersama setiap permintaan, sehingga kode sisi server, logika edge, dan server-side tagging dapat membaca pilihan tanpa menunggu JavaScript.
- Dapat dibagikan antar subdomain. Cookie yang disetel pada domain terdaftar Anda dapat mencakup subdomain www, blog, dan shop.
- Banyak diharapkan. Banyak integrasi ad tech mencari persetujuan di cookie.
Kekurangan
- Batas ukuran. Browser membatasi ukuran cookie sekitar 4 KB, dan string TCF dengan banyak vendor ditambah nilai lain dapat mendekatinya.
- Beban permintaan. Setiap permintaan ke domain Anda membawa cookie, termasuk permintaan gambar dan skrip.
- Batas masa hidup di sebagian browser. Intelligent Tracking Prevention milik Safari membatasi cookie yang dibuat lewat JavaScript hingga masa hidup maksimum tujuh hari. Cookie yang disetel oleh server Anda sendiri dalam respons HTTP umumnya diperlakukan lebih longgar, meski ada pengecualian.
Opsi 2: localStorage dan Penyimpanan Browser Lain
Sebagian CMP menyimpan preferensi rinci di localStorage, kadang bersama cookie yang lebih kecil.
Kelebihan
- Ruang lebih besar. Beberapa megabita per origin, cukup untuk pilihan rinci tingkat vendor.
- Tanpa beban permintaan. Tidak ada yang dikirim ke server secara otomatis.
Kekurangan
- Tidak terlihat oleh server. Kode sisi server dan logika edge tidak dapat membacanya, sehingga setiap keputusan sisi server harus menunggu browser.
- Terikat pada satu origin. Penyimpanan di www.example.com tidak tersedia di shop.example.com, sehingga pengunjung mungkin melihat banner lagi di setiap subdomain.
- Dapat dihapus. Safari dapat menghapus penyimpanan yang dapat ditulis skrip, termasuk localStorage, untuk situs yang tidak berinteraksi dengan pengguna selama tujuh hari penggunaan browser, dan mode penjelajahan pribadi biasanya menghapusnya saat sesi berakhir.
Opsi 3: Catatan Persetujuan Sisi Server
Catatan sisi server adalah entri yang disimpan oleh Anda atau penyedia CMP Anda setiap kali pilihan dibuat. Biasanya berisi pengenal pseudonim, stempel waktu, pilihan, versi banner atau kebijakan yang ditampilkan, dan konteks seperti wilayah.
Kelebihan
- Bukti yang tahan lama. Bertahan meski cookie dihapus dan ada pembatasan browser, sehingga menjadi alat yang tepat untuk menunjukkan bahwa persetujuan diperoleh.
- Dapat diaudit. Anda dapat melaporkan pilihan dari waktu ke waktu dan menjawab pertanyaan tentang peristiwa tertentu.
- Potensi lintas perangkat. Bagi pembaca yang login, catatan server dapat menyinkronkan pilihan antar perangkat, jika Anda menjelaskannya kepada mereka.
Kekurangan
- Bukan pengganti status lokal. Tag di browser tetap membutuhkan sinyal lokal yang cepat; memanggil server pada setiap tampilan halaman untuk mencari persetujuan menambah latensi.
- Itu sendiri adalah data pribadi. Catatan memerlukan masa retensi, kontrol akses, dan tempat dalam pemberitahuan privasi Anda.
- Ketergantungan pada pengenal. Pengunjung anonim hanya dapat dicocokkan dengan catatan melalui pengenal yang disimpan di perangkat mereka, yang membawa Anda kembali ke penyimpanan lokal.
Ringkasan Berdampingan
- Terbaik untuk mengingat pilihan di web: cookie first-party, idealnya disetel oleh server Anda dengan masa hidup yang stabil.
- Terbaik untuk data preferensi rinci di browser: localStorage, dipasangkan dengan cookie yang dapat dibaca server.
- Terbaik untuk membuktikan pilihan: catatan sisi server.
- Pilihan tunggal terburuk: hanya mengandalkan localStorage, yang membuat server buta dan pilihan rapuh di sebagian browser.
Pendekatan Gabungan yang Praktis
- Simpan sinyal lokal otoritatif — misalnya string TCF dan catatan preferensi ringkas — dalam cookie first-party dengan cakupan domain terdaftar Anda.
- Gunakan localStorage hanya untuk data tambahan yang tidak perlu sampai ke server.
- Tulis catatan sisi server untuk setiap pilihan, termasuk versi banner dan kebijakan yang ditampilkan.
- Jika pilihan tersimpan hilang, tampilkan banner lagi alih-alih mengasumsikan jawaban sebelumnya.
- Tetapkan periode permintaan ulang untuk pilihan tersimpan dan catat dalam kebijakan Anda.
Menyimpan pilihan persetujuan pengunjung itu sendiri umumnya dianggap perlu untuk menyediakan layanan yang diminta pengunjung — mengingat keputusan mereka — tetapi periksa panduan yang berlaku di pasar utama Anda.
Poin Penting
- Mengingat pilihan dan membuktikan pilihan adalah dua pekerjaan berbeda yang membutuhkan penyimpanan berbeda.
- Cookie dapat dibaca server dan dibagikan antar subdomain tetapi terbatas ukurannya dan, di Safari, masa hidupnya bila disetel oleh skrip.
- localStorage menawarkan ruang tetapi tidak terlihat oleh server dan dapat dihapus oleh browser.
- Catatan sisi server adalah lapisan bukti, bukan pengganti sinyal lokal.
- Gabungkan cookie first-party yang disetel server, penyimpanan browser opsional, dan catatan server.