__tcfapi hodisa tinglovchilari: rozilikni hisobga oladigan skriptlar uchun dasturchi qoʻllanmasi

Nega skriptlaringiz soʻramasdan, tinglashi kerak

Rozilikka bogʻliq har qanday skript — reklama tegi, analitika yuklovchisi, header bidding oʻrovchisi — ikki narsani bilishi kerak: CMP-da hali qaror bor-yoʻqligini va bu qaror nima ekanini. Keng tarqalgan xato — sahifa yuklanganda cookie-ni oʻqish yoki biror narsa paydo boʻlguncha CMP-ni taymer bilan soʻrab turish. Ikkala yondashuv ham oldindan aytib boʻladigan tarzda buziladi: cookie formati CMP-ning ichki ishi va oʻzgarishi mumkin, soʻrash esa yo juda erta ishga tushadi, yo kutishga vaqt sarflaydi.

IAB TCF aynan shu ish uchun standart JavaScript interfeysini belgilaydi: __tcfapi funksiyasi. Ushbu qoʻllanma sizga haqiqatan kerak boʻladigan buyruqlarni, oladigan hodisalaringizni va ishlab chiqarishda eng koʻp uchraydigan xatolarni bosqichma-bosqich koʻrsatadi.

Stub va navbat

TCF CMP-dan toʻliq CMP skripti yuklanishidan oldin sahifaga imkon qadar erta kichik stub joylashtirishi kutiladi. Stub window.__tcfapi funksiyasini aniqlaydi va CMP tayyor boʻlmasdan oldin qilingan chaqiruvlarni navbatga qoʻyadi. CMP yuklanib boʻlgach, navbatni qayta ishlaydi va har bir chaqiruvga javob beradi.

Aynan shu boshqa skriptlarga __tcfapi-ni darhol chaqirishni xavfsiz qiladi: stub ulardan oldin sahifada boʻlsa, chaqiruvlar yoʻqolmaydi. Agar skript __tcfapi aniqlanmagani uchun xato bersa, stub yo yoʻq, yo juda kech yuklanmoqda — qayta urinishlar qoʻshish oʻrniga yuklash tartibini tuzating.

Muhim buyruqlar

ping

__tcfapi('ping', 2, callback) foydalanuvchi qarorini kutmasdan asosiy holatni qaytaradi. Javobda cmpLoaded, stub, loading, loaded yoki error kabi cmpStatus va visible, hidden yoki disabled qiymatlaridan biri boʻlgan displayStatus bor. U shuningdek, maʼlum boʻlganda gdprApplies-ni bildiradi. Undan diagnostika uchun va TCF ushbu tashrif buyuruvchi uchun umuman dolzarbmi-yoʻqmi, shuni hal qilish uchun foydalaning.

addEventListener

__tcfapi('addEventListener', 2, callback) — aksariyat integratsiyalar foydalanishi kerak boʻlgan buyruq. Callback tcData obyekti va muvaffaqiyat bayrogʻini oladi va rozilik holati har safar oʻzgarganda yana chaqiriladi. TCF v2.2 dan beri rozilik maʼlumotlarini olishning tavsiya etilgan usuli shu; eskirgan getTCData buyrugʻi bekor qilingan.

removeEventListener

Har bir tcData obyekti listenerId-ni olib yuradi. Skriptingizga endi yangilanishlar kerak boʻlmaganda — masalan, qarorini allaqachon qabul qilgan bir martalik yuklovchi — uni __tcfapi('removeEventListener', 2, callback, listenerId) ga uzating.

eventStatus-ni oʻqish

tcData-dagi asosiy maydon — eventStatus. Uchta qiymat bor:

Odatiy yuklovchi tcloaded yoki useractioncomplete dan birini kutadi, soʻng kerakli maqsadlar va sotuvchilarni tekshiradi. U cmpuishown-ni, ehtimol banner paydo boʻlganini qayd etishdan tashqari, eʼtiborsiz qoldiradi.

Maqsadlar va sotuvchilarni tekshirish

tcData ichida rozilik va qonuniy manfaat ID boʻyicha kalitlangan obyektlar sifatida taqdim etiladi:

Ham maqsadni, ham sotuvchini tekshiring. Sotuvchi roziligisiz maqsad roziligi yoki aksincha, aksariyat sotuvchilarning maʼlumotlarni qayta ishlashi uchun yetarli emas.

Iframe-lar va freymlararo chaqiruvlar

Reklamalar va vidjetlar koʻpincha ota sahifaning __tcfapi-sini koʻra olmaydigan iframe-lar ichida ishlaydi. TCF buni postMessage protokoli bilan hal qiladi: CMP yuqori sahifaga __tcfapiLocator nomli freym qoʻshadi va iframe ichidagi kod uni topishi, __tcfapiCall xabarini yuborishi va __tcfapiReturn javobini olishi mumkin. Aksariyat reklama SDK-lari buni allaqachon qiladi. Agar oʻz iframe kodingizni yozsangiz, freymlar oraliq cookie-larni oʻqish oʻrniga xuddi shu andozani amalga oshiring.

Keng tarqalgan xatolar va ularni qanday aniqlash

  1. cmpuishown asosida harakat qilish. Har qanday callback ishga tushishi bilanoq yuklanadigan skriptlar foydalanuvchi qaror qilishidan oldin ishlaydi. eventStatus boʻyicha filtrlang.
  2. Tinglovchini juda erta olib tashlash. Agar uni birinchi callback-dan keyin olib tashlasangiz, keyingi useractioncomplete-ni oʻtkazib yuborasiz va hech qachon yuklanmaysiz.
  3. Rozilikni qaytarib olishni eʼtiborsiz qoldirish. Doimiy skriptlar tinglashni davom ettirishi va rozilik qaytarib olinganda toʻxtashi yoki oʻzini qayta sozlashi kerak.
  4. gdprApplies-ni eʼtiborsiz qoldirish. TCF hududlaridan tashqarida maqsad obyektlari boʻsh boʻlishi mumkin; buni “rozilik yoʻq” deb hisoblash olishingizga ruxsat etilgan daromadni oʻchirib qoʻyishi mumkin.
  5. Muvaffaqiyat bayrogʻini tekshirmaslik. success false boʻlsa, buni qayd eting; bu odatda buzilgan CMP sozlamasidan dalolat beradi.

Integratsiyangizni sinash

Brauzer konsolida CMP mavjudligini tasdiqlash uchun __tcfapi('ping', 2, console.log) ni chaqiring, soʻng callback sifatida console.log bilan tinglovchini roʻyxatdan oʻtkazing va banner orqali oʻting. Birinchi tashrifda cmpuishown va undan keyin useractioncomplete, qayta yuklashda esa tcloaded koʻrishingiz kerak. Hammasini qabul qilish, hammasini rad etish va maxsus tanlov bilan takrorlang va skriptingiz har bir holatda toʻgʻri harakat qilishini tasdiqlang.

Asosiy xulosalar

← Blog Hammasini o'qish →