Как да четем TCF низ за съгласие: практическо ръководство за разработчици
Какво всъщност представлява TC string
Рамката за прозрачност и съгласие на IAB (Transparency & Consent Framework) произвежда един компактен токен — TC string — който пътува с всяка рекламна заявка и казва на доставчиците точно с какво е и с какво не е съгласен потребителят. Той е Base64-URL кодиран и опакован на ниво битове, така че изглежда като безсмислица (CPxy...AAA), но кодира точен, подлежащ на одит запис.
Сегментите
Пълният TC string е няколко сегмента, разделени с точки. Първият е основният низ (core string); останалите са по избор:
- Core — CMP ID, версия на CMP, времевите печати на съгласието, версията на политиката и от ключово значение битовите полета за съгласия за цели и съгласия за доставчици.
- Disclosed vendors — кои доставчици са били показани на потребителя.
- Publisher TC — съгласия, специфични за вас, издателя.
Битовите полета са сърцето на това: бит N, зададен на 1, означава съгласие за цел N или доставчик N. Цел 1 е “съхраняване/достъп до информация на устройство”, цели 3 и 4 покриват персонализирани реклами и така нататък.
Декодиране на практика
Рядко декодирате битове на ръка. Използвайте предоставените от IAB библиотеки или публичен декодер:
- Разделете по
.и Base64-URL-декодирайте основния сегмент. - Прочетете полетата на хедъра с фиксирана ширина (version, created, lastUpdated, cmpId, cmpVersion).
- Преминете през битовите полета за цели и доставчици, за да видите кои точно са предоставени.
В JavaScript извикването __tcfapi('getTCData', 2, cb) връща вече разбрания обект — tcData.purpose.consents и tcData.vendor.consents са карти от id → boolean. Това е вашата абсолютна истина по време на изпълнение.
Грешките, които убиват приходите
Когато персонализираното търсене тихо изчезне, TC string обикновено е причината:
- Липсващ низ — рекламната заявка не носи
gdprApplies/TC string, така че съответстващите SSP-та падат до неперсонализирани. - Доставчик без съгласие — битът за ID на доставчика на вашия партньор по търсенето е 0, така че той не може да наддава с персонализация.
- Изтекъл или остарял низ — стар времеви печат кара платформите надолу по веригата да не му се доверяват.
- Грешен CMP ID — нерегистриран или тестов CMP ID обезсилва целия низ.
Работен процес за дебъгване
Възпроизведете съгласието на потребителя, вземете живия TC string от __tcfapi или рекламната заявка, прекарайте го през валидатор и сравнете декодираните цели/доставчици с това, което вашите партньори изискват. Девет от десет пъти празнината е един бит на доставчик или липсваща цел 1.
Къде се вписва FlexyConsent
FlexyConsent генерира TC string-ове, валидни според спецификацията, с регистриран CMP ID, поддържа ги свежи, излага декодираното състояние за дебъгване и отчита кои цели и доставчици действително се предоставят в целия ви трафик — така че можете да видите, а не да гадаете, къде изтича съгласието (и приходите).
Основни изводи
- TC string е битово опакован, подлежащ на одит запис на всеки избор за съгласие.
- Битовите полета за цели и доставчици решават дали партньорите могат да обслужват персонализирани реклами.
- Повечето спадове на приходите се проследяват до липсващ низ, доставчик без съгласие или остарял/невалиден CMP ID.
- Декодирайте живия низ с
__tcfapiи го валидирайте спрямо изискванията на партньорите при дебъгване.