What is the TC Decoder?
With our TC Decoder you can paste a TC string (and optional AC string) and instantly see what it contains. It runs locally in your browser, showing purposes, vendors, and restrictions in a clear format. Use it to debug, verify, or better understand how your CMP encodes user consent.
How to use TC Decoder:
1. Paste & Decode
Paste your TC string into “TC String” (optionally your AC string, like
2~7.9.10
).Click Decode now.
Review the output sections: Purposes, Vendors, Publisher Restrictions, AC.
Use Copy decoded JSON to share a structured snapshot with colleagues/tools.
Tip: If you don’t know your TC string yet, install our TC Detector on a page on your website where your CMP is active.
2. Reading the results
Purposes: Shows P1–P10 with human-readable names (e.g., P1: Store and/or access information on a device).
Legitimate Interests: Same purpose labels, but showing LI instead of consent.
Special Features: Lists opted-in features (e.g., precise geolocation, device scan).
Vendors: Lists vendor IDs with consent and LI flags (counts included).
Publisher Restrictions: Shows any restrictions by purpose (Require Consent, Require LI, etc.).
AC (Additional Consent): Shows AC version and any Google Ad Tech Providers (GACPs) listed.
3. Troubleshooting
“Decode error”
The string might be truncated, contain non-base64url characters, or have extra spaces/line breaks.
Make sure it’s a TCF v2.x string (v1 strings won’t parse).
If it includes multiple segments, ensure you pasted the full string (including dots).
“Looks empty / missing sections”
Not all TC strings include Publisher TC or OOB segments—absence can be normal.
Some CMP setups produce minimal strings until a choice is made. Try re-generating the TC (open consent dialog → save).
AC doesn’t show vendors
The AC field uses the
version~id.id.id
format. If your CMP doesn’t set AC, the section can be empty—this is fine.
Still unsure if the string is valid?
Click Use sample TC and decode it. If the sample decodes but yours doesn’t, the issue is with the pasted string, not the tool.