Men-debug String IAB GPP di Konsol Browser: Tutorial Langkah demi Langkah
Mengapa Masalah GPP Sulit Dikenali
Ketika pengunjung AS memilih keluar dari penjualan atau pembagian datanya, pilihan itu harus sampai ke setiap mitra iklan di halaman. Dengan IAB Global Privacy Platform (GPP), pilihan itu dikirim sebagai string ringkas dan daftar ID bagian. Jika salah satunya keliru — hilang, usang, atau membawa bagian yang salah — tidak ada yang tampak rusak. Iklan tetap dimuat, banner tetap terlihat baik, dan masalahnya baru muncul belakangan ketika mitra mengabaikan opt-out atau menawar lebih rendah untuk inventaris Anda.
Kabar baiknya, hampir semuanya dapat diperiksa dari konsol browser. Tutorial ini membahas pemeriksaan sesuai urutan yang akan kami jalankan pada halaman live.
Langkah 1: Pastikan API Ada dan Siap
CMP yang kompatibel dengan GPP menyediakan fungsi global __gpp. Buka DevTools pada halaman Anda dan jalankan perintah ping:
__gpp('ping', function (data) { console.log(data); });
Objek yang dikembalikan memberi banyak informasi sekilas:
- gppVersion — seharusnya bernilai 1.1 untuk implementasi terkini.
- cmpStatus — apakah CMP sudah dimuat atau mengalami error.
- cmpDisplayStatus — apakah banner terlihat, tersembunyi, atau dinonaktifkan untuk pengunjung ini.
- signalStatus — “ready” setelah CMP menetapkan status persetujuan, “not ready” selagi masih memutuskan.
- supportedAPIs — bagian yang dapat dihasilkan CMP.
- applicableSections — ID bagian yang berlaku untuk pengunjung ini saat ini.
- gppString — string terenkode itu sendiri.
Jika __gpp tidak terdefinisi, stub CMP hilang atau dimuat terlalu lambat. Stub harus sudah ada sebelum skrip iklan apa pun yang mengharapkannya, jika tidak skrip tersebut tidak akan melihat CMP dan akan menunggu atau melanjutkan tanpa sinyal.
Langkah 2: Periksa Bagian yang Berlaku
Setiap kerangka privasi dalam GPP memiliki ID bagian numerik. Yang paling sering ditemui penerbit adalah 2 (EU TCF v2), 5 (TCF Kanada), 7 (US National, “usnat”), dan 8 ke atas untuk bagian negara bagian seperti California, Virginia, Colorado, Utah, dan Connecticut. Pengunjung dari negara bagian AS biasanya akan melihat bagian nasional atau bagian negara bagian yang relevan di applicableSections, bukan bagian UE.
Uji dari beberapa lokasi. Bug yang umum adalah CMP yang mendeteksi geografi dengan benar untuk banner tetapi menulis bagian default ke dalam string apa pun kondisinya, atau sebaliknya. Dengan VPN atau alat pratinjau CMP Anda, bandingkan apa yang ditampilkan banner dengan yang dilaporkan applicableSections.
Langkah 3: Baca Data Bagian
Alih-alih memecahkan kode string secara manual, minta CMP memberikan bagian yang sudah diurai:
__gpp('getSection', function (data, success) { console.log(data, success); }, 'usnat');
Pada bagian US National, kolom opt-out memakai konvensi sederhana: 0 berarti tidak berlaku, 1 berarti pengguna memilih keluar, dan 2 berarti pengguna tidak memilih keluar. Fokuskan dulu pada kolom berikut:
- SaleOptOut dan SharingOptOut
- TargetedAdvertisingOptOut
- Kolom notice yang bersesuaian, yang mencatat apakah pengunjung telah diberi pemberitahuan tentang setiap praktik
Sekarang lakukan opt-out di halaman — klik tautan “Do Not Sell or Share” Anda atau ubah pengaturan di pusat preferensi — lalu jalankan getSection lagi. Kolom opt-out seharusnya berubah dari 2 menjadi 1. Jika tidak, UI dan sinyal tidak sinkron.
Langkah 4: Uji Jalur Global Privacy Control
Beberapa undang-undang negara bagian mewajibkan bisnis memperlakukan sinyal Global Privacy Control sebagai opt-out. Aktifkan GPC di browser atau ekstensi yang mendukungnya, pastikan navigator.globalPrivacyControl mengembalikan true di konsol, lalu muat halaman dalam sesi baru. Kolom opt-out yang relevan seharusnya sudah bernilai 1 tanpa pengunjung menyentuh banner. Beberapa bagian juga menyertakan kolom yang menunjukkan bahwa pilihan berasal dari sinyal GPC.
Langkah 5: Pantau Event, Bukan Sekadar Snapshot
Skrip iklan tidak boleh membaca string sekali saat halaman dimuat lalu melupakannya. Daftarkan listener untuk melihat apa yang dilihat mitra:
__gpp('addEventListener', function (evt) { console.log(evt.eventName, evt.pingData); });
Anda seharusnya mengamati event seperti listenerRegistered, signalStatus, dan sectionChange. Ketika pengunjung mengubah pilihan, event sectionChange dengan string yang diperbarui seharusnya menyusul. Jika wrapper header bidding atau integrasi ad server Anda hanya membaca string sebelum signalStatus menjadi “ready”, ia mungkin mengirim nilai kosong atau usang.
Langkah 6: Ikuti String ke Dalam Permintaan Iklan
Terakhir, buka tab Network dan filter permintaan iklan Anda. Banyak endpoint iklan menerima parameter gpp dan gpp_sid (string dan ID bagian yang berlaku). Periksa bahwa:
- kedua parameter ada pada permintaan dari pengunjung AS;
- string cocok dengan yang dikembalikan ping pada saat permintaan;
- setelah opt-out, permintaan berikutnya membawa string baru, bukan yang tersimpan di cache.
Jika Anda memakai Prebid.js, pastikan modul consent management-nya dikonfigurasi untuk GPP, dan periksa permintaan bid yang keluar dari wrapper serta panggilan ad server terakhir.
Pola Kegagalan Umum
- Stub dimuat setelah tag iklan — mitra sama sekali tidak melihat CMP.
- Bagian salah untuk wilayah — bagian UE dikirim untuk lalu lintas AS, atau tidak ada bagian sama sekali.
- UI dan sinyal tidak sinkron — toggle berubah, string tidak.
- GPC diabaikan — sinyal browser tidak pernah menjadi opt-out.
- String usang dalam permintaan — wrapper menyimpan cache nilai pertama yang dilihatnya.
Poin Penting
- Mulailah dengan ping: versi, status, bagian yang berlaku, dan string menceritakan sebagian besar ceritanya.
- Gunakan getSection untuk membaca kolom opt-out; 1 berarti sudah opt-out, 2 berarti belum opt-out.
- Uji tautan opt-out dan GPC secara terpisah dan pastikan keduanya mengubah sinyal.
- Dengarkan event dan tunggu sinyal “ready” sebelum permintaan iklan membaca string.
- Verifikasi gpp dan gpp_sid pada permintaan jaringan yang nyata, sebelum dan sesudah opt-out.