Hur man läser en TCF-samtyckessträng: en fältguide för utvecklare
Vad TC-strängen faktiskt är
IAB Transparency & Consent Framework producerar en enda kompakt token — TC-strängen — som följer med varje annonsbegäran och berättar för leverantörer exakt vad en användare har och inte har samtyckt till. Den är Base64-URL-kodad och packad på bitnivå, så den ser ut som rappakalja (CPxy...AAA) men kodar en exakt, granskningsbar post.
Segmenten
En fullständig TC-sträng är flera punktseparerade segment. Det första är kärnsträngen; de andra är valfria:
- Kärna — CMP-ID, CMP-version, samtyckets tidsstämplar, policyversionen och framför allt bitfälten för ändamålssamtycken och leverantörssamtycken.
- Avslöjade leverantörer — vilka leverantörer som visades för användaren.
- Publisher-TC — samtycken specifika för dig, publishern.
Bitfälten är kärnan i det: bit N satt till 1 betyder samtycke för ändamål N eller leverantör N. Ändamål 1 är “lagra/få åtkomst till information på en enhet,” ändamål 3 och 4 täcker personaliserade annonser, och så vidare.
Att avkoda en i praktiken
Du avkodar sällan bitar för hand. Använd de IAB-tillhandahållna biblioteken eller en offentlig avkodare:
- Dela på
.och Base64-URL-avkoda kärnsegmentet. - Läs huvudfälten med fast bredd (version, created, lastUpdated, cmpId, cmpVersion).
- Gå igenom ändamåls- och leverantörsbitfälten för att se exakt vilka som är beviljade.
I JavaScript returnerar anropet __tcfapi('getTCData', 2, cb) det redan tolkade objektet — tcData.purpose.consents och tcData.vendor.consents är kartor över id → boolean. Det är din grundsanning vid körning.
Felen som dödar intäkter
När personaliserad efterfrågan tyst försvinner är TC-strängen vanligtvis orsaken:
- Saknad sträng — annonsbegäran bär ingen
gdprApplies/TC-sträng, så efterlevande SSP:er sjunker till icke-personaliserat. - Leverantör utan samtycke — din efterfrågepartners leverantörs-ID-bit är 0, så de kan inte buda med personalisering.
- Utgången eller föråldrad sträng — en gammal tidsstämpel får nedströmsplattformar att misstro den.
- Fel CMP-ID — ett oregistrerat eller test-CMP-ID ogiltigförklarar hela strängen.
Ett felsökningsflöde
Återskapa användarens samtycke, fånga den live TC-strängen från __tcfapi eller annonsbegäran, kör den genom en validerare och jämför de avkodade ändamålen/leverantörerna med vad dina partner kräver. Nio gånger av tio är luckan en enda leverantörsbit eller ett saknat ändamål 1.
Var FlexyConsent passar in
FlexyConsent genererar specifikationsgiltiga TC-strängar med ett registrerat CMP-ID, håller dem färska, exponerar det avkodade tillståndet för felsökning och rapporterar vilka ändamål och leverantörer som faktiskt beviljas över din trafik — så att du kan se, inte gissa, var samtycke (och intäkter) läcker.
Viktiga slutsatser
- TC-strängen är en bitpackad, granskningsbar post över varje samtyckesval.
- Ändamåls- och leverantörsbitfälten avgör om partner kan visa personaliserade annonser.
- De flesta intäktsfall spåras till en saknad sträng, en leverantör utan samtycke eller ett föråldrat/ogiltigt CMP-ID.
- Avkoda den live strängen med
__tcfapioch validera den mot partnerkrav vid felsökning.