Chapter navigation
Publisher Restrictions
consentRole & classification
The variable-length restriction entries at the tail of the Transparency & Consent Framework (TCF) Core segment: NumPubRestrictions Int(12) + per entry (PurposeId 6 bits + RestrictionType 2 bits + vendor range). The three RestrictionType values: 0 = purpose disallowed / 1 = require consent / 2 = require legitimate interest.
- GPP section
- §2 (Core tail)
- Carriage
- NumPubRestrictions Int(12) + entries
String & field layout
At the tail of the Core segment: read NumPubRestrictions Int(12) first; each restriction entry then consists of PurposeId Int(6) + RestrictionType Int(2) + a vendor Range (encoded like the range in the VendorConsents section). The entries are variable-length; the bit width is determined by the entry count.
| Value | Enum name (pending official) | Meaning |
|---|---|---|
| 0 | PurposeFlatlyNotAllowedByPublisher | The publisher flatly disallows this purpose: the vendor must not process for it, whether or not it declared the purpose 'flexible'. |
| 1 | RequireConsent | Require consent: a vendor that declared the purpose flexible with a default of legitimate interest must switch to consent. |
| 2 | RequireLegitimateInterest | Require legitimate interest: a vendor that declared the purpose flexible with a default of consent must switch to legitimate interest. |
The semantics of the three values (purpose disallowed / require consent / require legitimate interest) are cross-verified against the TCF policy wording ('restrictions come in two kinds: purpose and legal basis') and several industry implementations; the official enum names and verbatim definitions await Consent string formats v2.md.
Carriage & access
Restrictions only narrow, never widen, a vendor's operable scope as registered in the Global Vendor List (GVL): a vendor must always obey a restriction signal; for a purpose declared 'flexible', the restriction decides whether consent or legitimate interest finally applies; a purpose not declared flexible keeps its registered default legal basis, which a restriction may not change.
Invalid forms
- PurposeId outside the 1–24 range
- RestrictionType taking a reserved value (greater than 2)
- Overlapping or conflicting vendor ranges across multiple restrictions for the same purpose
Gaps pending verification (draft)
- The official enum names and verbatim definitions of RestrictionType 0/1/2 await Consent string formats v2.md (GitHub raw currently unreachable); the enum names here follow common industry usage and are flagged as pending