Jak czytać ciąg zgody TCF: praktyczny przewodnik dla programistów
Czym właściwie jest TC string
IAB Transparency & Consent Framework tworzy pojedynczy zwarty token — TC string — który podróżuje z każdym żądaniem reklamowym i mówi dostawcom dokładnie, na co użytkownik wyraził, a na co nie wyraził zgody. Jest zakodowany w Base64-URL i upakowany na poziomie bitów, więc wygląda jak bełkot (CPxy...AAA), ale koduje precyzyjny, audytowalny zapis.
Segmenty
Pełny TC string składa się z kilku segmentów oddzielonych kropkami. Pierwszy to ciąg podstawowy (core string); pozostałe są opcjonalne:
- Core — CMP ID, wersja CMP, znaczniki czasu zgody, wersja polityki oraz, co kluczowe, pola bitowe zgód na cele i zgód na dostawców.
- Disclosed vendors — którzy dostawcy zostali pokazani użytkownikowi.
- Publisher TC — zgody specyficzne dla Ciebie, wydawcy.
Pola bitowe są sednem: bit N ustawiony na 1 oznacza zgodę na cel N lub dostawcę N. Cel 1 to “przechowywanie/dostęp do informacji na urządzeniu”, cele 3 i 4 obejmują reklamy spersonalizowane i tak dalej.
Dekodowanie w praktyce
Rzadko dekodujesz bity ręcznie. Użyj bibliotek dostarczanych przez IAB lub publicznego dekodera:
- Podziel po
.i zdekoduj Base64-URL segment core. - Odczytaj pola nagłówka o stałej szerokości (version, created, lastUpdated, cmpId, cmpVersion).
- Przejdź przez pola bitowe celów i dostawców, aby zobaczyć dokładnie, które zostały udzielone.
W JavaScript wywołanie __tcfapi('getTCData', 2, cb) zwraca już sparsowany obiekt — tcData.purpose.consents i tcData.vendor.consents to mapy id → wartość logiczna. To Twoja prawda u podstaw w czasie wykonywania.
Błędy, które zabijają przychody
Gdy spersonalizowany popyt po cichu znika, zwykle przyczyną jest TC string:
- Brakujący ciąg — żądanie reklamowe nie zawiera
gdprApplies/TC string, więc zgodne SSP spadają do niespersonalizowanych. - Dostawca bez zgody — bit ID dostawcy Twojego partnera popytu wynosi 0, więc nie może licytować z personalizacją.
- Wygasły lub nieaktualny ciąg — stary znacznik czasu sprawia, że platformy poniżej w łańcuchu mu nie ufają.
- Błędny CMP ID — niezarejestrowany lub testowy CMP ID unieważnia cały ciąg.
Proces debugowania
Odtwórz zgodę użytkownika, pobierz aktualny TC string z __tcfapi lub żądania reklamowego, przepuść go przez walidator i porównaj zdekodowane cele/dostawców z tym, czego wymagają Twoi partnerzy. Dziewięć razy na dziesięć luką jest pojedynczy bit dostawcy lub brakujący cel 1.
Gdzie pasuje FlexyConsent
FlexyConsent generuje zgodne ze specyfikacją TC stringi z zarejestrowanym CMP ID, utrzymuje je świeże, udostępnia zdekodowany stan do debugowania i raportuje, które cele i dostawcy są faktycznie udzielani w całym Twoim ruchu — dzięki czemu możesz zobaczyć, a nie zgadywać, gdzie wycieka zgoda (i przychody).
Kluczowe wnioski
- TC string to upakowany bitowo, audytowalny zapis każdego wyboru zgody.
- Pola bitowe celów i dostawców decydują, czy partnerzy mogą serwować reklamy spersonalizowane.
- Większość spadków przychodów wynika z brakującego ciągu, dostawcy bez zgody lub nieaktualnego/nieprawidłowego CMP ID.
- Dekoduj aktualny ciąg za pomocą
__tcfapii waliduj go względem wymagań partnerów podczas debugowania.