Як читати рядок згоди TCF: практичний посібник для розробників
Що насправді таке TC String
IAB Transparency & Consent Framework створює єдиний компактний токен — TC string — який подорожує з кожним рекламним запитом і точно повідомляє постачальникам, на що користувач погодився, а на що ні. Він закодований у Base64-URL і упакований на рівні бітів, тож виглядає як нісенітниця (CPxy...AAA), але кодує точний запис, придатний для аудиту.
Сегменти
Повний TC string — це кілька розділених крапками сегментів. Перший — це core string; інші необов'язкові:
- Core — CMP ID, версія CMP, часові мітки згоди, версія політики і, що критично, бітові поля згод на цілі та згод на постачальників.
- Розкриті постачальники — яких постачальників показано користувачеві.
- Publisher TC — згоди, специфічні для вас, видавця.
Бітові поля — це його серце: біт N, встановлений на 1, означає згоду на ціль N або постачальника N. Ціль 1 — це “зберігати/отримувати доступ до інформації на пристрої,” цілі 3 і 4 охоплюють персоналізовану рекламу тощо.
Декодування одного на практиці
Ви рідко декодуєте біти вручну. Використовуйте надані IAB бібліотеки або публічний декодер:
- Розділіть за
.і декодуйте core-сегмент через 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і перевіряйте його щодо вимог партнерів під час налагодження.