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.