Як читати рядок згоди 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-рядки зі своїм сертифікованим ідентифікатором CMP 317 і видає їх через __tcfapi, тож ви можете декодувати чинний рядок; у звітах рішення показано за джерелом і регіоном.
Ключові висновки
- TC string — це упакований у біти, придатний для аудиту запис кожного вибору згоди.
- Бітові поля цілей і постачальників вирішують, чи можуть партнери показувати персоналізовану рекламу.
- Більшість падінь доходу зводяться до відсутнього рядка, постачальника без згоди або застарілого/недійсного CMP ID.
- Декодуйте живий рядок за допомогою
__tcfapiі перевіряйте його щодо вимог партнерів під час налагодження.