Paano Basahin ang isang TCF Consent String: Field Guide para sa Developer
Ano Talaga ang TC String
Ang IAB Transparency & Consent Framework ay gumagawa ng isang compact na token — ang TC string — na lumalakbay kasama ng bawat ad request at sinasabi sa mga vendor nang eksakto kung ano ang sinang-ayunan at hindi sinang-ayunan ng user. Ito ay Base64-URL encoded at nakaimpake sa bit level, kaya mukhang walang kuwenta (CPxy...AAA) ngunit nag-eencode ng tumpak, ma-audit na record.
Ang mga Segment
Ang isang buong TC string ay ilang segment na pinaghihiwalay ng tuldok. Ang una ay ang core string; ang iba ay opsyonal:
- Core — CMP ID, bersyon ng CMP, ang mga timestamp ng pahintulot, ang bersyon ng patakaran, at mahalagang ang mga bitfield ng purpose consents at vendor consents.
- Disclosed vendors — kung aling mga vendor ang ipinakita sa user.
- Publisher TC — mga pahintulot na partikular sa iyo, ang publisher.
Ang mga bitfield ang puso nito: ang bit N na naka-set sa 1 ay nangangahulugang pahintulot para sa purpose N o vendor N. Ang Purpose 1 ay “mag-store/mag-access ng impormasyon sa isang device,” ang purpose 3 at 4 ay sumasaklaw sa mga personalized na ad, at iba pa.
Pag-decode ng Isa sa Praktika
Bihira mong i-decode ang mga bit nang manu-mano. Gamitin ang mga library na ibinibigay ng IAB o isang pampublikong decoder:
- Hatiin sa
.at Base64-URL-decode ang core segment. - Basahin ang mga fixed-width na header field (version, created, lastUpdated, cmpId, cmpVersion).
- Lakaran ang mga bitfield ng purpose at vendor para makita nang eksakto kung alin ang ipinagkaloob.
Sa JavaScript ang tawag na __tcfapi('getTCData', 2, cb) ay nagbabalik ng na-parse na object — ang tcData.purpose.consents at tcData.vendor.consents ay mga map ng id → boolean. Iyon ang iyong ground truth sa runtime.
Ang mga Error na Pumapatay sa Kita
Kapag tahimik na nawala ang personalized na demand, ang TC string ang kadalasang dahilan:
- Nawawalang string — ang ad request ay walang dalang
gdprApplies/TC string, kaya bumababa ang mga sumusunod na SSP sa non-personalized. - Vendor na hindi nagpahintulot — ang vendor ID bit ng iyong demand partner ay 0, kaya hindi sila makakapag-bid nang may personalization.
- Nag-expire o lumang string — ang lumang timestamp ay nagpapawalang-tiwala sa mga downstream na platform.
- Maling CMP ID — ang isang hindi-rehistrado o test CMP ID ay nagpapawalang-bisa sa buong string.
Isang Daloy ng Pag-debug
I-reproduce ang pahintulot ng user, kunin ang live na TC string mula sa __tcfapi o sa ad request, patakbuhin ito sa isang validator, at ihambing ang mga na-decode na purpose/vendor sa kinakailangan ng iyong mga partner. Siyam sa sampung beses ang puwang ay isang vendor bit o isang nawawalang purpose 1.
Kung Saan Pumapasok ang FlexyConsent
Gumagawa ang FlexyConsent ng spec-valid na TC string na may rehistradong CMP ID, pinapanatili itong sariwa, inilalantad ang na-decode na estado para sa pag-debug, at nag-uulat kung aling mga purpose at vendor ang aktwal na ipinagkakaloob sa iyong traffic — kaya makikita mo, hindi hulaan, kung saan tumatagas ang pahintulot (at kita).
Mga Pangunahing Punto
- Ang TC string ay isang bit-packed, ma-audit na record ng bawat pagpili sa pahintulot.
- Ang mga bitfield ng purpose at vendor ang nagdedesisyon kung maaaring maghatid ng personalized na ad ang mga partner.
- Karamihan sa pagbaba ng kita ay nakatutok sa isang nawawalang string, isang vendor na hindi nagpahintulot, o isang luma/invalid na CMP ID.
- I-decode ang live string gamit ang
__tcfapiat i-validate ito laban sa mga kinakailangan ng partner kapag nag-de-debug.