Hoe lees je een TCF-toestemmingsstring: een veldgids voor ontwikkelaars
Wat de TC string werkelijk is
Het IAB Transparency & Consent Framework produceert één compacte token — de TC string — die met elke advertentieaanvraag meereist en leveranciers precies vertelt waarmee een gebruiker wel en niet heeft ingestemd. Hij is Base64-URL-gecodeerd en op bitniveau verpakt, dus hij ziet eruit als wartaal (CPxy...AAA) maar codeert een precies, controleerbaar record.
De segmenten
Een volledige TC string bestaat uit meerdere door punten gescheiden segmenten. Het eerste is de core string; de andere zijn optioneel:
- Core — CMP-ID, CMP-versie, de toestemmingstijdstempels, de policy-versie en cruciaal de bitvelden voor doeltoestemmingen en leverancierstoestemmingen.
- Disclosed vendors — welke leveranciers aan de gebruiker zijn getoond.
- Publisher TC — toestemmingen specifiek voor jou, de uitgever.
De bitvelden zijn de kern ervan: bit N ingesteld op 1 betekent toestemming voor doel N of leverancier N. Doel 1 is “informatie opslaan/openen op een apparaat,” doel 3 en 4 dekken gepersonaliseerde advertenties, enzovoort.
Er een decoderen in de praktijk
Je decodeert zelden bits met de hand. Gebruik de door IAB geleverde bibliotheken of een openbare decoder:
- Splits op
.en Base64-URL-decodeer het core-segment. - Lees de header-velden met vaste breedte (version, created, lastUpdated, cmpId, cmpVersion).
- Loop door de doel- en leveranciersbitvelden om precies te zien welke zijn verleend.
In JavaScript geeft de aanroep __tcfapi('getTCData', 2, cb) het reeds geparseerde object terug — tcData.purpose.consents en tcData.vendor.consents zijn maps van id → boolean. Dat is je grondwaarheid tijdens runtime.
De fouten die inkomsten doden
Wanneer gepersonaliseerde demand stilletjes verdwijnt, is de TC string meestal de reden:
- Ontbrekende string — de advertentieaanvraag draagt geen
gdprApplies/TC string, dus compliant SSP's vallen terug naar niet-gepersonaliseerd. - Leverancier niet toegestemd — de leverancier-ID-bit van je demand-partner is 0, dus ze kunnen niet bieden met personalisatie.
- Verlopen of verouderde string — een oude tijdstempel zorgt dat downstream-platforms hem wantrouwen.
- Verkeerde CMP-ID — een niet-geregistreerde of test-CMP-ID maakt de hele string ongeldig.
Een debugging-workflow
Reproduceer de toestemming van de gebruiker, pak de live TC string uit __tcfapi of de advertentieaanvraag, haal hem door een validator en vergelijk de gedecodeerde doelen/leveranciers met wat je partners vereisen. Negen van de tien keer is de kloof één enkele leveranciersbit of een ontbrekend doel 1.
Waar FlexyConsent past
FlexyConsent genereert spec-geldige TC strings met een geregistreerde CMP-ID, houdt ze vers, stelt de gedecodeerde status beschikbaar voor debugging en rapporteert welke doelen en leveranciers daadwerkelijk worden verleend over je verkeer — zodat je kunt zien, niet gokken, waar toestemming (en inkomsten) lekt.
Belangrijkste punten
- De TC string is een bit-verpakt, controleerbaar record van elke toestemmingskeuze.
- Doel- en leveranciersbitvelden bepalen of partners gepersonaliseerde advertenties kunnen serveren.
- De meeste inkomstendalingen herleiden tot een ontbrekende string, een niet-toegestemde leverancier of een verouderde/ongeldige CMP-ID.
- Decodeer de live string met
__tcfapien valideer hem tegen partnervereisten bij het debuggen.