TCF 2.2 Foundation Setup

Enable IAB TCF foundation mode, TC strings, and cmp.js parity — honest non-certified CMP guidance.

CookieShift includes an IAB TCF 2.2 foundation layer for EU/UK publishers: TC string encode/decode, proxied Global Vendor List (GVL), partial __tcfapi, and preference-center disclosure in cmp.js and banner.js preview.

Implementation → TCF foundation — enable foundation mode, CMP ID, and vendor selection

Important: not a certified CMP

CookieShift is not an IAB-listed or certified TCF 2.2 CMP today. We provide a technical foundation (encode/decode, GVL proxy, consent logging) suitable for teams working with legal counsel on a manual compliance path — not a replacement for Cookiebot, CookieYes, or Usercentrics certification out of the box.

Honest positioning:

ClaimStatus
TC string (euconsent-v2) generationSupported when foundation mode enabled
GVL-backed vendor/purpose UI in cmp.jsSupported (Sprint 2 parity with preview)
Full IAB CMP API (getVendorList, restrictions UI, etc.)Partial — getVendorList + displayConsentUi added; not certification-ready
IAB Global CMP List registrationNot included — separate program

Overview

When TCF foundation is enabled on a property, visitors with GDPR-classified traffic can see Purposes, Stacks, and Vendors (with legitimate-interest badges) in the preference center. Choices sync to window.__cookieshiftTcf and encode to a TC string on save via POST /api/public/tcf/encode.

Production WordPress and blocking-heavy installs typically load cmp.js. Dashboard preview uses banner.js — both now share the same TCF disclosure sections when foundation mode is on.

Why it matters

EU ad-tech stacks often expect a valid TC string and optional Google Additional Consent Mode string. Without foundation mode, CookieShift still manages cookie categories and Consent Mode, but partners requiring TCF signals need the foundation path configured honestly.

Setup

  1. Open Implementation → IAB TCF 2.2 for the active property.
  2. Enable TCF foundation mode and enter your registered CMP ID (from IAB or your legal vendor — CookieShift does not register CMP IDs for you).
  3. Use the GVL vendor picker to build an optional allow-list (or leave empty for all vendors).
  4. Map cookie categories to IAB purposes and configure legitimate interest defaults with legal review.
  5. Set publisher restrictions per vendor when you need consent-only or LI-blocked vendors.
  6. Choose GDPR applies (auto, true, or false) for __tcfapi TCData.
  7. Save configuration and publish the banner.
  8. Review TCF engineering readiness on the same page (checklist only — not certification).
  9. Verify on a live site using cmp.js: open Customize → TCF sections (Purposes, Stacks, Vendors, LI).
  10. Pair with Google Additional Consent Mode when running Google Ads ATP vendors.
CheckWhy
tcf.enabled + foundationMode: foundation + cmpId > 0Required for encode and __tcfapi
Same property in header as live embedConfig loads by siteId
cmp.js on production sitePreview uses banner.js — both should match after parity work

Entitlements and limits

  • TCF foundation is a compliance configuration feature, not a separate paid toggle in all plans — confirm your workspace can save Implementation settings.
  • Publisher restrictions, purpose LI editors, and GVL pickers are available under Implementation → IAB TCF 2.2.
  • Legitimate interest purpose toggles appear in cmp.js for LI-eligible purposes (2, 7–11) plus publisher defaults in config. Work with legal counsel for LI legal basis.

Examples

ScenarioSteps
Minimal EU publisherEnable foundation + CMP ID → accept/reject banner → confirm euconsent-v2 cookie
Limit vendor listImplementation → GVL vendor picker → select vendors → Save
Debug TC stringConsent logs → TC string column → Decode → review purpose/vendor maps
Check engineering readinessImplementation → TCF engineering readiness panel
Google Ads EEATCF foundation + ACM vendor IDs → marketing consent

Troubleshooting

SymptomLikely causeFix
No TCF panel in preference centerFoundation off, missing CMP ID, or showVendorUi: falseRe-check Implementation → TCF foundation
Preview shows TCF but live site does notLive site missing cmp.js or wrong siteIdConfirm embed from Modules; hard refresh
Empty TC string in logsVisitor not in GDPR mode or foundation disabled at decision timeTest from EU VPN; verify config version on log row
Decode failsTruncated string or wrong CMP ID at encode timeCopy full tcString; verify CMP ID matches encode
Vendor missing from listNot in selectedVendorIds filterAdd ID or clear filter to show full GVL set
__tcfapi returns falseUnsupported commandSupported: ping, getTCData, getVendorList, displayConsentUi, listeners
Is CookieShift IAB-certified?

No. CookieShift provides a foundation implementation with nonCertifiedNotice in TC data when enabled. Certification requires the IAB CMP program, full API surface, and conformance testing — planned as a Phase 3 enterprise track, not this foundation release.

Where is the TC string stored?

In the euconsent-v2 cookie on the visitor browser, in consent logs (tcString field), and temporarily in cmp runtime state after encode.

Best practices

  • Never tell EU customers CookieShift is a certified CMP without IAB list registration.
  • Test live cmp.js after every TCF config change — preview alone is necessary but not sufficient.
  • Store CMP ID and vendor selection changes in change-management records for audits.
  • Use consent log Decode for support tickets involving TC string disputes.