ORTB
…
Chapter navigation

Publisher Restrictions

consent
On this page

Role & 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.

ValueEnum nameMeaning
0Purpose Flatly Not Allowed by PublisherPurpose Flatly Not Allowed by Publisher (regardless of Vendor declarations): the vendor must not process for this purpose, whether or not they declared it 'flexible'.
1Require ConsentRequire Consent (if Vendor has declared the Purpose ID's legal basis as Legitimate Interest and flexible): the vendor must switch to consent.
2Require Legitimate InterestRequire Legitimate Interest (if Vendor has declared the Purpose ID's legal basis as Consent and flexible): the vendor must switch to legitimate interest.

The three enum names (Purpose Flatly Not Allowed by Publisher / Require Consent / Require Legitimate Interest) and semantics are taken directly from the official Consent string formats v2.md (Final v2.2, May 2023) RestrictionType enum table; value 3 = UNDEFINED (not used).

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
This chapter's body is migrated from the legacy /protocol/gpp-tcf single page; the material matches the official specification.