Skip to content

Commit 2e775d6

Browse files
authored
re-labeling tcf control module (prebid#5529)
1 parent 29371b5 commit 2e775d6

File tree

4 files changed

+35
-25
lines changed

4 files changed

+35
-25
lines changed

dev-docs/modules/tcfControl.md

Lines changed: 30 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,12 @@ recommended: true
1010
sidebarType : 1
1111
---
1212

13-
# GDPR Enforcement Module
13+
# TCF Control Module
1414
{: .no_toc }
1515

16+
{: .alert.alert-info :}
17+
Until Prebid.js 9.0 this was known as the "GDPR Enforcement" module.
18+
1619
* TOC
1720
{: toc }
1821

@@ -31,8 +34,8 @@ The [base consent module](/dev-docs/modules/consentManagementTcf.html) performs
3134

3235
The TCF Control Module adds the following:
3336

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.
3639

3740
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:
3841

@@ -50,34 +53,34 @@ The following table details the Prebid.js activities that fall under the [Transp
5053

5154
## Page Integration
5255

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.
5457

5558
{: .alert.alert-warning :}
5659
**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.
5760

5861
{: .alert.alert-info :}
59-
To turn on Prebid.js enforcement you must:
62+
To turn on Prebid.js restrictions you must:
6063

6164
(1) Include the tcfControl module in the Prebid.js build
6265
and (2) setConfig `consentManagement.gdpr.cmpApi` to either 'iab' or 'static'
6366

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:
6568

6669
{: .table .table-bordered .table-striped }
6770
| Param | Type | Description | Example |
6871
| --- | --- | --- | --- |
6972
| gdpr.rules | `Array of Objects` | Lets the publisher override the default behavior. | |
7073
| gdpr.rules[].purpose | `String` | Supported values: "storage" (Purpose 1), "basicAds" (Purpose 2), "personalizedAds" (purpose 4), "measurement" (Purpose 7), "transmitPreciseGeo" (Special Feature 1) | "storage" |
71-
| 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"] |
7578
| 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 |
7679
| strictStorageEnforcement | `Boolean` | If false (the default), allows some use of storage regardless of purpose 1 consent - see [note](#strictStorageEnforcement) below | true |
7780

7881
Notes:
7982

80-
* <a id="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+
* <a id="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.
8184
* 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").
8285
* An alternate way of establishing a GVL mapping is to define a 'gvlMapping' object:
8386

@@ -101,7 +104,7 @@ configuration of different business rules.
101104
pbjs.setConfig({
102105
consentManagement: {
103106
gdpr: {
104-
cmpApi: 'iab', // activates the enforcement module
107+
cmpApi: 'iab', // activates the control module
105108
defaultGdprScope: true,
106109
rules: [{ // these are the default values
107110
purpose: "storage",
@@ -111,10 +114,17 @@ configuration of different business rules.
111114
purpose: "basicAds",
112115
enforcePurpose: true,
113116
enforceVendor: true
117+
},{
118+
purpose: "personalizedAds",
119+
enforcePurpose: true,
120+
enforceVendor: true
114121
},{
115122
purpose: "measurement",
116123
enforcePurpose: true,
117124
enforceVendor: true
125+
},{
126+
purpose: "transmitPreciseGeo",
127+
enforcePurpose: true
118128
}]
119129
}
120130
}
@@ -172,12 +182,12 @@ configuration of different business rules.
172182
}]
173183
```
174184

175-
## Basic Enforcement
185+
## Basic Legal Basis
176186

177187
Prebid.js does not have access to the Global Vendor List (GVL), so it implements
178188
a "basic" form of TCF 'legal basis' validation using the supplied consent string.
179189

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.
181191
182192
Evidence of consent for a particular purpose or vendor means that:
183193
@@ -186,17 +196,17 @@ Evidence of consent for a particular purpose or vendor means that:
186196

187197
Before allowing an activity tied to a TCF-protected Purpose for a given vendor, one of these scenarios must be true:
188198

189-
* Configuration rules enforce both consent and vendor signals and:
199+
* Configuration rules check both consent and vendor signals and:
190200
* we have evidence of consent for both, or
191201
* we have evidence of consent for the purpose, and the vendor is excepted through `softVendorException`, or
192202
* the vendor is excepted through `vendorExceptions`;
193-
* Configuration rules enforce only purpose consent and either:
203+
* Configuration rules check only purpose consent and either:
194204
* we have evidence of consent for the purpose, or
195205
* the vendor is excepted through `vendorExceptions`;
196-
* Configuration rules enforce only vendor signals and either:
206+
* Configuration rules check only vendor signals and either:
197207
* we have evidence of consent for the vendor, or
198208
* 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.
200210

201211
See the [IAB TCF 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.
202212

@@ -213,7 +223,7 @@ By default, sending user IDs and EIDs to bid adapters or RTD modules (the `trans
213223
* 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`;
214224
* The vendor is excepted through `vendorExceptions` in at least one of `basicAds`, `personalizedAds`, or `measurement`.
215225

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:
217227

218228
```javascript
219229
...
@@ -225,7 +235,7 @@ This behavior can be changed to the same "basic enforcement" algorithm described
225235

226236
## Build the Package
227237

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:
229239
230240
```bash
231241
gulp build --modules=consentManagement,tcfControl,bidAdapter1,bidAdapter2

prebid-server/endpoints/openrtb2/pbs-endpoint-auction.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -660,7 +660,7 @@ It will become impossible to fetch bids from AppNexus within that Request.
660660

661661
##### Bidder Alias GVL IDs
662662

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.
664664

665665
To do this, just set `ext.prebid.aliasgvlids` alongside ext.prebid.aliases:
666666

prebid-server/features/pbs-privacy.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ The enforcement strategy changed significantly between TCF 1.1 and TCF 2.0. [TCF
3636
more nuanced and stricter policy.
3737

3838
{: .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.
4141

4242
### TCF 2.0 and 2.2
4343

prebid/prebidjsReleases.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ The table below is a summary of feature changes and important bug fixes in core
5656
| 4.4 | DFP Video Module supports VAST 4 |
5757
| 4.3 | DFP Video Module bug fixed |
5858
| 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. |
6060
| 3.27.1 | DFP Video Module bug fixed |
6161
| 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. |
6262
| 3.24 | PBS Bid Adapter allows setting site params |
@@ -66,7 +66,7 @@ The table below is a summary of feature changes and important bug fixes in core
6666
| 3.17 | UserID module also exports IDs as eids |
6767
| 3.16 | isSafariBrowser fixed for Chrome and Firefox on iOS |
6868
| 3.15 | Advanced Size Mapping module support adunits of the same name |
69-
| 3.14 | New [GDPR enforcement module](/dev-docs/modules/tcfControl.html) supports enforcing Purpose 1 - DeviceAccess |
69+
| 3.14 | New [GDPR enforcement module](/dev-docs/modules/tcfControl.html) (now TCF Control) supports enforcing Purpose 1 - DeviceAccess |
7070
| 3.13 | GDPR module supports defaultGdprScope option |
7171
| 3.12 | Initial support for TCF2 - reading and passing consent strings, added [DeviceAccess](/dev-docs/publisher-api-reference/setConfig.html#setConfig-deviceAccess) configuration setting |
7272
| 3.11 | [Advanced Size Mapping module](/dev-docs/modules/sizeMappingV2.html) |

0 commit comments

Comments
 (0)