Chapter navigation
gpp_sid semantics & multi-section use
container protocolRole & classification
gpp_sid declares which Global Privacy Platform (GPP) Section IDs are in force for this transaction; it is an integer[] in OpenRTB and a string in URL macros (${GPP_SID}), and never includes §3 / §4. When several sections coexist each is parsed independently.
- Carriage
- regs.gpp_sid (integer[]) · ${GPP_SID} (string)
- Status
- OpenRTB 2.6-202211+
- GPP section
- excl. §3 / §4
Semantics & exclusions
gpp_sid declares which GPP Section IDs are actually in force for this transaction. The GPP Header already lists which sections the string contains; gpp_sid further indicates which of them apply to the current transaction context — usually a single ID, occasionally several.
Never appears in gpp_sid
- §3 (the GPP Header itself)
- §4 (GPP Signal Integrity, reserved)
gpp_sid lists only payload sections, never the Header (§3) or the reserved Signal Integrity (§4) — neither is an enforceable privacy payload.
gpp_sid may carry several section IDs. Each section payload is parsed independently per its own specification with no cross-section parsing dependency; the carriage point determines gpp_sid's physical type (array or string) while the semantics stay the same.
Carriage & access
| Carriage point | Field / macro | Type | Note |
|---|---|---|---|
| OpenRTB | regs.gpp_sid | integer[] | An integer array paired with regs.gpp (the string); since OpenRTB 2.6-202211. |
| URL macro | ${GPP_SID} | string | A string; normally a single ID, rarely two comma-separated. |
The same semantics carry different types at the two carriage points: an integer[] on the OpenRTB side, a string on the URL-macro side. The parsing entry point must first normalise both into one ID set before deciding which sections are in force.
Common multi-section combinations
- §2 + §6—EU consent payload plus US USPrivacy (cross-region legacy traffic)
- §7 + §8—US national signal plus California (national + state)
Invalid forms
- gpp_sid contains §3 or §4 (the Header / Signal Integrity are not enforceable payload sections)
- A section ID listed in gpp_sid is not declared in the GPP String's Header (the string carries no such section)
- OpenRTB regs.gpp_sid passed as a string rather than integer[], or the URL-macro side missing comma separation for multiple values