Chapter navigation
CMP registration & specification (TCF side)
consentRole & classification
The Consent Management Platform (CMP) registration process on the Transparency & Consent Framework (TCF) side, the semantics of the CmpId / CmpVersion fields, and the UI / API contract a CMP must implement. Division of labour with the cmp-api chapter: this one covers "who may become a CMP", cmp-api covers "how the browser reads it".
- GPP section
- §2 (Core: CmpId/CmpVersion/ConsentScreen)
String & field layout
| Field | Bits | Description |
|---|---|---|
| CmpId | Int(12) | the ID of the CMP that last updated this TC String (assigned by the TCF registry); must not be 0 in a production string (0 is only for stub/loading). |
| CmpVersion | Int(12) | the version of that CMP. |
| ConsentScreen | Int(6) | the CMP UI screen number where the user gave consent. |
A TC String may only be created by a CMP registered with the Interactive Advertising Bureau (IAB) Europe TCF, using its assigned CMP ID; vendors or other third parties must not create or modify a TC String themselves. Where there is no registration requirement, string creators use CMP ID = 1.
Carriage & access
A CMP declares the Global Vendor List (GVL) version it uses in the Core segment's VendorListVersion field; CMP registration and the GVL are two independent registries on the TCF side.
UI & API contract (pending)
The official step-by-step requirements for the UI layer a CMP must implement (first screen / second screen / reject path / consent-withdrawal entry) and the API-layer contract await verbatim verification against the CMP Guidelines; this page does not speculate on the specific UI spec for now.
Invalid forms
- A TC String created by an unregistered CMP (no valid CmpId)
- CmpId=0 in a production string (0 is only for stub/loading)
- A vendor creating or tampering with a TC String itself (forbidden by policy)
Gaps pending verification (draft)
- The official step-by-step CMP registration requirements and the UI-layer spec (first screen / second screen / reject path / withdrawal entry) await verbatim verification against IAB Europe's CMP Guidelines (GitHub raw currently unreachable)