Cum să citești un șir de consimțământ TCF: un ghid practic pentru dezvoltatori
Ce este de fapt TC string
IAB Transparency & Consent Framework produce un singur token compact — TC string — care călătorește cu fiecare cerere publicitară și le spune furnizorilor exact cu ce a fost de acord un utilizator și cu ce nu. Este codificat în Base64-URL și împachetat la nivel de bit, așa că arată ca o aiureală (CPxy...AAA), dar codifică o înregistrare precisă și auditabilă.
Segmentele
Un TC string complet este format din mai multe segmente separate prin puncte. Primul este core string; celelalte sunt opționale:
- Core — CMP ID, versiunea CMP, marcajele de timp ale consimțământului, versiunea politicii și, crucial, câmpurile de biți ale consimțămintelor de scop și consimțămintelor de furnizor.
- Furnizori dezvăluiți — care furnizori au fost arătați utilizatorului.
- Publisher TC — consimțăminte specifice ție, editorul.
Câmpurile de biți sunt inima problemei: bitul N setat la 1 înseamnă consimțământ pentru scopul N sau furnizorul N. Scopul 1 este “stocarea/accesarea informațiilor pe un dispozitiv,” scopurile 3 și 4 acoperă anunțurile personalizate, și așa mai departe.
Decodarea unuia în practică
Rareori decodezi biți manual. Folosește bibliotecile furnizate de IAB sau un decodor public:
- Împarte după
.și decodează în Base64-URL segmentul core. - Citește câmpurile de antet cu lățime fixă (versiune, created, lastUpdated, cmpId, cmpVersion).
- Parcurge câmpurile de biți de scop și furnizor pentru a vedea exact care sunt acordate.
În JavaScript apelul __tcfapi('getTCData', 2, cb) returnează obiectul deja analizat — tcData.purpose.consents și tcData.vendor.consents sunt hărți de id → boolean. Acesta este adevărul tău de bază la runtime.
Erorile care ucid veniturile
Când cererea personalizată dispare în tăcere, TC string este de obicei motivul:
- Șir lipsă — cererea publicitară nu poartă
gdprApplies/TC string, deci SSP-urile conforme scad la nepersonalizat. - Furnizor neconsimțit — bitul ID-ului de furnizor al partenerului tău de cerere este 0, deci nu pot licita cu personalizare.
- Șir expirat sau învechit — un marcaj de timp vechi face platformele din aval să nu aibă încredere în el.
- CMP ID greșit — un CMP ID neînregistrat sau de test invalidează întregul șir.
Un flux de lucru de depanare
Reprodu consimțământul utilizatorului, capturează TC string-ul live din __tcfapi sau din cererea publicitară, trece-l printr-un validator și compară scopurile/furnizorii decodați cu ceea ce cer partenerii tăi. De nouă ori din zece lacuna este un singur bit de furnizor sau un scop 1 lipsă.
Unde se potrivește FlexyConsent
FlexyConsent generează TC string-uri valide conform specificației cu un CMP ID înregistrat, le păstrează proaspete, expune starea decodată pentru depanare și raportează care scopuri și furnizori sunt acordați efectiv pe traficul tău — astfel încât să poți vedea, nu să ghicești, unde se scurge consimțământul (și veniturile).
Concluzii cheie
- TC string este o înregistrare împachetată la nivel de bit, auditabilă, a fiecărei alegeri de consimțământ.
- Câmpurile de biți de scop și furnizor decid dacă partenerii pot servi anunțuri personalizate.
- Majoritatea scăderilor de venit se datorează unui șir lipsă, unui furnizor neconsimțit sau unui CMP ID învechit/invalid.
- Decodează șirul live cu
__tcfapiși validează-l față de cerințele partenerilor când depanezi.