Chapter navigation
CMP registration & specification (TCF side)
consentOn this page
Role & 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
The UI and API contract a CMP must implement is governed by two separate documents: (1) the technical layer (CMP JS API Specification) defines the __tcfapi() command set and return-body structure — see the cmp-api chapter; (2) the policy layer (IAB Europe TCF Policies) defines first-screen disclosures (vendor count, purpose list), second-screen granular controls, the reject path, and the consent-withdrawal entry. The CMP Guidelines' step-by-step UI requirements and the TCF Policies are complementary; this page does not reproduce the policy document in full.
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)