You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: dev-docs/modules/tcfControl.md
+30-20Lines changed: 30 additions & 20 deletions
Original file line number
Diff line number
Diff line change
@@ -10,9 +10,12 @@ recommended: true
10
10
sidebarType : 1
11
11
---
12
12
13
-
# GDPR Enforcement Module
13
+
# TCF Control Module
14
14
{: .no_toc }
15
15
16
+
{: .alert.alert-info :}
17
+
Until Prebid.js 9.0 this was known as the "GDPR Enforcement" module.
18
+
16
19
* TOC
17
20
{: toc }
18
21
@@ -31,8 +34,8 @@ The [base consent module](/dev-docs/modules/consentManagementTcf.html) performs
31
34
32
35
The TCF Control Module adds the following:
33
36
34
-
1. Allows the page to define which activities should be enforced at the Prebid.js level.
35
-
2. Actively enforces those activities based on user consent data.
37
+
1. Allows the page to define which activities should be restricted at the Prebid.js level.
38
+
2. Actively restricts those activities based on user consent data.
36
39
37
40
The following table details the Prebid.js activities that fall under the [Transparency and Consent Framework (TCF)](https://iabeurope.eu/iab-europe-transparency-consent-framework-policies/) scope:
38
41
@@ -50,34 +53,34 @@ The following table details the Prebid.js activities that fall under the [Transp
50
53
51
54
## Page Integration
52
55
53
-
A page needs to define configuration rules about how Prebid.js should enforce each in-scope activity.
56
+
A page needs to define configuration rules about how Prebid.js should restricts each in-scope activity.
54
57
55
58
{: .alert.alert-warning :}
56
59
**Important Legal Note:** Prebid.org cannot provide legal advice about GDPR or any other governmental regulation. Our aim is to provide a toolkit of functionality that will let publishers configure header bidding as defined by their legal counsel. We will consider feature suggestions, and review any code offered by the community.
57
60
58
61
{: .alert.alert-info :}
59
-
To turn on Prebid.js enforcement you must:
62
+
To turn on Prebid.js restrictions you must:
60
63
61
64
(1) Include the tcfControl module in the Prebid.js build
62
65
and (2) setConfig `consentManagement.gdpr.cmpApi` to either 'iab' or 'static'
63
66
64
-
The following fields related to GDPR enforcement are supported in the [`consentManagement`](/dev-docs/modules/consentManagementTcf.html) object:
67
+
The following fields related to anonymizing aspects of the auction are supported in the [`consentManagement`](/dev-docs/modules/consentManagementTcf.html) object:
65
68
66
69
{: .table .table-bordered .table-striped }
67
70
| Param | Type | Description | Example |
68
71
| --- | --- | --- | --- |
69
72
| gdpr.rules |`Array of Objects`| Lets the publisher override the default behavior. ||
| gdpr.rules[].enforcePurpose |`Boolean`| Determines whether to enforce the purpose consent. The default in Prebid.js 3.x is not to enforce purposes. Prebid.js 4.0 enforces legal basis for Purposes 1 and 2 by default. | true |
72
-
| gdpr.rules[].enforceVendor |`Boolean`| Determines whether to enforce vendor signals for this purpose. The default in Prebid.js 3.x is not to enforce vendor signals. Prebid.js 4.0 enforces legal basis for Purposes 1 and 2 by default. | true |
73
-
| gdpr.rules[].vendorExceptions |`Array of Strings`| Defines a list of biddercodes or module names that are exempt from the enforcement of this Purpose. |["bidderA", "userID-module-B"]|
74
-
| gdpr.rules[].softVendorExceptions |`Array of Strings`| Defines a list of biddercodes or module names that are exempt from the enforcement of vendor signals for this purpose. Unlike with `vendorExceptions`, Purpose consent is still enforced . |["bidderA", "userID-module-B"]|
74
+
| gdpr.rules[].enforcePurpose |`Boolean`| Determines whether to enforce the purpose consent. The default in Prebid.js 3.x was not to enforce any purposes. Prebid.js 4.0 and later require legal basis for Purposes 1 and 2 by default. | true |
75
+
| gdpr.rules[].enforceVendor |`Boolean`| Determines whether to check vendor signals for this purpose. The default in Prebid.js 3.x is not to check vendor signals. Prebid.js 4.0 and later require legal basis for Purposes 1 and 2 by default. | true |
76
+
| gdpr.rules[].vendorExceptions |`Array of Strings`| Defines a list of biddercodes or module names that are exempt from determining legal basis for this Purpose. |["bidderA", "userID-module-B"]|
77
+
| gdpr.rules[].softVendorExceptions |`Array of Strings`| Defines a list of biddercodes or module names that are exempt from the checking vendor signals for this purpose. Unlike with `vendorExceptions`, Purpose consent is still checked. |["bidderA", "userID-module-B"]|
75
78
| gdpr.rules[].eidsRequireP4Consent |`Boolean`| Only relevant on the personalizedAds `purpose`. If true, user IDs and EIDs will not be shared without evidence of consent for TCF Purpose 4. If false, evidence of consent for any of Purposes 2-10 is sufficient for sharing user IDs and EIDs. Defaults to false. See [note](#note-transmitEids)| true |
76
79
| strictStorageEnforcement |`Boolean`| If false (the default), allows some use of storage regardless of purpose 1 consent - see [note](#strictStorageEnforcement) below | true |
77
80
78
81
Notes:
79
82
80
-
* <aid="strictStorageEnforcement"></a> By default, Prebid allows some limited use of storage even when purpose 1 consent was not given: this is limited to non-PII, such as [category translation mappings](/dev-docs/modules/categoryTranslation.html), or temporary test data used to probe the browser's storage features. If `strictStorageEnforcement` is true, purpose 1 consent will always be enforced for any access to storage.
83
+
* <aid="strictStorageEnforcement"></a> By default, Prebid allows some limited use of storage even when purpose 1 consent was not given: this is limited to non-PII, such as [category translation mappings](/dev-docs/modules/categoryTranslation.html), or temporary test data used to probe the browser's storage features. If `strictStorageEnforcement` is true, Purpose 1 consent will always be enforced for any access to storage.
81
84
* To accomodate Prebid.js modules and adapters that don't have GVL IDs, the vendorExceptions list is based on Prebid.js biddercodes instead of Global Vendor List (GVL) IDs (i.e. "bidderA" instead of "12345").
82
85
* An alternate way of establishing a GVL mapping is to define a 'gvlMapping' object:
83
86
@@ -101,7 +104,7 @@ configuration of different business rules.
101
104
pbjs.setConfig({
102
105
consentManagement: {
103
106
gdpr: {
104
-
cmpApi:'iab', // activates the enforcement module
107
+
cmpApi:'iab', // activates the control module
105
108
defaultGdprScope:true,
106
109
rules: [{ // these are the default values
107
110
purpose:"storage",
@@ -111,10 +114,17 @@ configuration of different business rules.
111
114
purpose:"basicAds",
112
115
enforcePurpose:true,
113
116
enforceVendor:true
117
+
},{
118
+
purpose:"personalizedAds",
119
+
enforcePurpose:true,
120
+
enforceVendor:true
114
121
},{
115
122
purpose:"measurement",
116
123
enforcePurpose:true,
117
124
enforceVendor:true
125
+
},{
126
+
purpose:"transmitPreciseGeo",
127
+
enforcePurpose:true
118
128
}]
119
129
}
120
130
}
@@ -172,12 +182,12 @@ configuration of different business rules.
172
182
}]
173
183
```
174
184
175
-
## Basic Enforcement
185
+
## Basic Legal Basis
176
186
177
187
Prebid.js does not have access to the Global Vendor List (GVL), so it implements
178
188
a "basic" form ofTCF'legal basis' validation using the supplied consent string.
179
189
180
-
A goal of'basic enforcement' is to confirm that there's enough evidence of consent to pass data on to vendors who do have access to the GVL and can fully parse and enforce.
190
+
A goal of'basic legal basis' is to confirm that there's enough evidence of consent to pass data on to vendors who do have access to the GVL and can fully parse and take any necessary action.
181
191
182
192
Evidence of consent for a particular purpose or vendor means that:
183
193
@@ -186,17 +196,17 @@ Evidence of consent for a particular purpose or vendor means that:
186
196
187
197
Before allowing an activity tied to a TCF-protected Purpose for a given vendor, one of these scenarios must be true:
188
198
189
-
* Configuration rules enforce both consent and vendor signals and:
199
+
* Configuration rules check both consent and vendor signals and:
190
200
* we have evidence of consent for both, or
191
201
* we have evidence of consent for the purpose, and the vendor is excepted through `softVendorException`, or
192
202
* the vendor is excepted through `vendorExceptions`;
193
-
* Configuration rules enforce only purpose consent and either:
203
+
* Configuration rules check only purpose consent and either:
194
204
* we have evidence of consent for the purpose, or
195
205
* the vendor is excepted through `vendorExceptions`;
196
-
* Configuration rules enforce only vendor signals and either:
206
+
* Configuration rules check only vendor signals and either:
197
207
* we have evidence of consent for the vendor, or
198
208
* the vendor is excepted through either `softVendorExceptions` or `vendorExceptions`;
199
-
* Configuration rules enforce neither purpose consent nor vendor signal.
209
+
* Configuration rules check neither purpose consent nor vendor signal.
200
210
201
211
See the [IABTCF Consent String Format](https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework/blob/master/TCFv2/IAB%20Tech%20Lab%20-%20Consent%20string%20and%20vendor%20list%20formats%20v2.md) for details.
202
212
@@ -213,7 +223,7 @@ By default, sending user IDs and EIDs to bid adapters or RTD modules (the `trans
213
223
* We have evidence of consent for any purpose between 2 and 10, and the vendor is excepted through `softVendorException`in at least one of:`basicAds`, `personalizedAds`, or `measurement`;
214
224
* The vendor is excepted through `vendorExceptions`in at least one of`basicAds`, `personalizedAds`, or `measurement`.
215
225
216
-
This behavior can be changed to the same "basic enforcement" algorithm described above, tied to TCF Purpose 4, by setting `eidsRequireP4Consent: true` on a `personalizedAds` rule:
226
+
This behavior can be changed to the same "basic legal basis" algorithm described above, tied to TCF Purpose 4, by setting `eidsRequireP4Consent: true` on a `personalizedAds` rule:
217
227
218
228
```javascript
219
229
...
@@ -225,7 +235,7 @@ This behavior can be changed to the same "basic enforcement" algorithm described
225
235
226
236
## Build the Package
227
237
228
-
Follow the basic build instructions in the GitHub Prebid.js repo's main [README](https://github.com/prebid/Prebid.js/blob/master/README.md). Include the base consent management module and this enforcement module as additional options on the **gulp build** command:
238
+
Follow the basic build instructions in the GitHub Prebid.js repo's main [README](https://github.com/prebid/Prebid.js/blob/master/README.md). Include the base consent management module and this control module as additional options on the **gulp build** command:
Copy file name to clipboardExpand all lines: prebid-server/endpoints/openrtb2/pbs-endpoint-auction.md
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -660,7 +660,7 @@ It will become impossible to fetch bids from AppNexus within that Request.
660
660
661
661
##### Bidder Alias GVL IDs
662
662
663
-
For environments that have turned on [GDPR enforcement](/prebid-server/features/pbs-privacy.html#gdpr), it can be important to define the Global Vendor List (GVL) ID with an alias.
663
+
For publishers that use Prebid Server as part of their [GDPR/TCF](/prebid-server/features/pbs-privacy.html#gdpr) strategy, it can be important to define the Global Vendor List (GVL) ID with an alias.
664
664
665
665
To do this, just set `ext.prebid.aliasgvlids` alongside ext.prebid.aliases:
Copy file name to clipboardExpand all lines: prebid-server/features/pbs-privacy.md
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -36,8 +36,8 @@ The enforcement strategy changed significantly between TCF 1.1 and TCF 2.0. [TCF
36
36
more nuanced and stricter policy.
37
37
38
38
{: .alert.alert-info :}
39
-
If a Prebid Server host company wants to support GDPR, they must currently [register for the IAB Global Vendor List](https://register.consensu.org/).
40
-
The user must provide legal basis for the host company to read/write cookies or `/cookie_sync` will return an empty response with no syncs and `/setuid` will fail.
39
+
If a Prebid Server host company wants to support GDPR, they should [register for the IAB Global Vendor List](https://register.consensu.org/). This is because
40
+
end users must provide legal basis for the host company to read/write cookies or `/cookie_sync` will return an empty response with no syncs and `/setuid` will fail.
Copy file name to clipboardExpand all lines: prebid/prebidjsReleases.md
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -56,7 +56,7 @@ The table below is a summary of feature changes and important bug fixes in core
56
56
| 4.4 | DFP Video Module supports VAST 4 |
57
57
| 4.3 | DFP Video Module bug fixed |
58
58
| 4.1.1 | Release of the [GPT Pre-Auction Module](https://docs.prebid.org/dev-docs/modules/gpt-pre-auction.html). Price Floors: new signals (location: noData + floorProvider) |
59
-
| 4.0 | TCF Purpose 1 and Purpose 2 enforced by default when GDPR enforcement module turned on. Removed Digitrust userId module. Removed audienceNetworkBidAdapter. |
59
+
| 4.0 | TCF Purpose 1 and Purpose 2 enforced by default when GDPR enforcement (now TCF Control) module turned on. Removed Digitrust userId module. Removed audienceNetworkBidAdapter. |
60
60
| 3.27.1 | DFP Video Module bug fixed |
61
61
| 3.27 | An important bug in the DFP Video Module was introduced with this release and fixed in 4.3 and 3.27.1. The dfpVideoModule only looked in adunit.sizes but adunit.sizes was stripped. Unfortunately there's not a workaround - if you use that video module, you shouldn't use Prebid.js 3.27 through 4.2 inclusive. |
0 commit comments