Date | Comments |
Sept 28, 2022 | Published final public version |
June, 2023 | Fixed Canada api name |
Each section represents a unique privacy signal, usually a unique jurisdiction. Below are the supported discrete sections.
Section ID | Client-side API Prefix | Description |
1 |
tcfeuv1 | EU TCF v1 section (deprecated) |
2 |
tcfeuv2 | EU TCF v2 section (see note below) |
3 |
GPP Header section (REQUIRED, see note below) | |
4 |
-- | GPP signal integrity section |
5 |
tcfcav1 | Canadian TCF section |
6 |
uspv1 | USPrivacy String (Unencoded Format) |
7 |
usnat | US - national section |
8 |
usca | US - California section |
9 |
usva | US - Virginia section |
10 |
usco | US - Colorado section |
11 |
usut | US - Utah section |
12 |
usct | US - Connecticut section |
13 |
usfl | US - Florida section |
14 |
usmt | US - Montana section |
15 |
usor | US - Oregon section |
16 |
ustx | US - Texas section |
17 |
usde | US - Delaware section |
18 |
usia | US - Iowa section |
19 |
usne | US - Nebraska section |
20 |
usnh | US - New Hampshire section |
21 |
usnj | US - New Jersey section |
22 |
ustn | US - Tennessee section |
Note: In order to make it simple to distinguish a GPP string from the existing IAB Europe TCF v2 TC String the first space in the header should be the version. This would allow current implementations to more easily understand and adapt to a GPP string. If the reader of a string finds “C” as the first character this indicates the string is IAB Europe’s TCF v2.0 ("2" in bits corresponds to letter "C" in base64). If the reader of a string finds a “D” as the first character this indicates the string is GPP ("3" in bits corresponds to letter "D" in base64).
New privacy framework signals may start as reusable sub-sections in the GPP. Over time as they become more widely adopted, they may become sections with their own ID and reference in the Header. Reusable sub-sections may be added to any section using the delimiter “.” (dot) to separate the sub-sections from each other. Details on a reusable sub-section, including whether it is available, required, or optional, for a specific section are included in each specific section’s documentation.
In order to be included as a supported reusable sub-section, the signal must meet the following criteria:
- Be openly designed
- Be widely understood and adopted
- Have a clear interface for machines
Below is a list of supported reusable sub-sections.
GPC is signaled in user agent headers (Sec-GPC)
and a simple javascript API (globalPrivacyControl)
. Entities creating GPP strings may check for whether GPC is set and pass along the value they find (from the headers or javascript API) in the GPC sub-section for all sections where it is available. Potential values in the user agent API are boolean (0/1 for header and true/false for javascript API). At the time of publication, true is an opt out of sale under CCPA (“Do not sell my personal information”).