|
| 1 | +--- |
| 2 | +layout: page_v2 |
| 3 | +page_type: module |
| 4 | +title: GPP Control - US States |
| 5 | +description: If your CMP populates sections 8-12 of the Global Privacy Platform, this module complements the `consentManagementGpp` module to control Prebid.js accordingly. |
| 6 | +module_code : gppControl_usstates |
| 7 | +display_name : GPP Control - US States |
| 8 | +enable_download : true |
| 9 | +recommended: true |
| 10 | +min_js_version: 8.10.0 |
| 11 | +sidebarType : 1 |
| 12 | +--- |
| 13 | + |
| 14 | +# GPP Control Module - US state strings |
| 15 | +{: .no_toc } |
| 16 | + |
| 17 | +- TOC |
| 18 | +{: toc } |
| 19 | + |
| 20 | +{% capture legalNotice %} |
| 21 | +This resource should not be construed as legal advice and Prebid.org makes no guarantees about compliance with any law or regulation. Please note that because every company and its collection, use, and storage of personal data is different, you should seek independent legal advice relating to obligations under European and/or US regulations, including the GDPR, the ePrivacy Directive, CCPA, other state privacy laws, etc, and how you implement the tools outlined in this document. Only your lawyer can provide you with legal advice specifically tailored to your situation. Nothing in this guide is intended to provide you with, or should be used as a substitute for, legal advice tailored to your business. |
| 22 | +{% endcapture %} |
| 23 | + |
| 24 | +{% include /alerts/alert_important.html content=legalNotice %} |
| 25 | + |
| 26 | +## Overview |
| 27 | + |
| 28 | +This consent management control module is designed to support the [Global Privacy Platform](https://iabtechlab.com/gpp/) US state strings, [GPP sections](https://github.com/InteractiveAdvertisingBureau/Global-Privacy-Platform/blob/main/Sections/Section%20Information.md) 8 through 12. |
| 29 | +It works by translating them into an equivalent US national string as detailed in [Interpreting USNat strings](/features/mspa-usnat.html#interpreting-usnat-strings), and using it to apply the same [activity restricitons](/features/mspa-usnat.html#usnat-activity-restrictions). |
| 30 | + |
| 31 | +{: .alert.alert-warning :} |
| 32 | +Prebid functionality created to address regulatory requirements does not replace each party's responsibility to determine its own legal obligations and comply with all applicable laws. **We recommend consulting with your legal counsel before determining how to utilize these features in support of your overall privacy approach. This module is not intended to replace other consent modules; it supplements them.** |
| 33 | + |
| 34 | +## Page Integration |
| 35 | + |
| 36 | +By default, including this module enables activity restrictions for GPP sections from ID 8 to 12, as long as the [consentManagementGpp](/dev-docs/modules/consentManagementGpp.html) module is also included and configured. |
| 37 | +Optional configuration options are: |
| 38 | + |
| 39 | +{: .table .table-bordered .table-striped } |
| 40 | +| Param | Type | Description | Example | |
| 41 | +| --- | --- | --- | --- | |
| 42 | +| gpp.mspa | `Object` | | | |
| 43 | +| gpp.mspa.sids | `Array` | GPP SIDs that should be covered by activity restrictions. Defaults to all US state SIDs (`[8, 9, 10, 11, 12]`). This is the only value needed for normal operation. Other options are for special cases and future-proofing. | `[8, 9]` | |
| 44 | +| gpp.mspa.sections | `Object` | Map from section ID to per-section configuration options | `{8: {name: 'usca'}}` | |
| 45 | +| gpp.mspa.sections.name | `String` | GPP API name to use for the section. Defaults to the names given listed under [section information -> section IDs](https://github.com/InteractiveAdvertisingBureau/Global-Privacy-Platform/blob/main/Sections/Section%20Information.md#section-ids). This option would only be used if your CMP has named their sections in a non-standard way. | `uscav3` | |
| 46 | +| gpp.mspa.sections.normalizeAs | `integer` | Normalize the flags for this section as if it were the number provided. See [example](#normalize-example). Each section defaults to its own ID. | `8` | |
| 47 | + |
| 48 | +### Examples |
| 49 | + |
| 50 | +#### Enable activity controls for certain sections only |
| 51 | + |
| 52 | +```javascript |
| 53 | +pbjs.setConfig({ |
| 54 | + consentManagement: { |
| 55 | + gpp: { |
| 56 | + mspa: { |
| 57 | + sids: [8, 9] // enable only for CA and VA |
| 58 | + } |
| 59 | + } |
| 60 | + } |
| 61 | +}) |
| 62 | +``` |
| 63 | + |
| 64 | +#### Non-standard GPP API names |
| 65 | + |
| 66 | +If the CMP has a non-standard label for a given section, the `name` parameter may be used: |
| 67 | + |
| 68 | +```javascript |
| 69 | +pbjs.setConfig({ |
| 70 | + consentManagement: { |
| 71 | + gpp: { |
| 72 | + mspa: { |
| 73 | + sections: { |
| 74 | + 8: { |
| 75 | + name: 'uspcav1' // Use 'uspcav1' instead of 'usca' to retrieve section 8 from the CMP |
| 76 | + } |
| 77 | + } |
| 78 | + } |
| 79 | + } |
| 80 | + } |
| 81 | +}) |
| 82 | +``` |
| 83 | + |
| 84 | +#### Select normalization rule |
| 85 | + |
| 86 | +<a id="normalize-example"></a> |
| 87 | + |
| 88 | +This module provides a [normalization algorithm](/features/mspa-usnat.html#interpreting-usnat-strings) for each section from 8 to 12, which it uses to translate each section's data into its equivalent section 7 (usnat) representation. |
| 89 | +It is possible to re-use them for other sections; this can be useful if new GPP sections are released and they happen to follow the same format as an exising one. For example, if a new US GPP SID 51 comes along that should be read from the CMP as 'uss51' and normalized the same as California's string, here's the config: |
| 90 | + |
| 91 | +```javascript |
| 92 | +pbjs.setConfig({ |
| 93 | + consentManagement: { |
| 94 | + gpp: { |
| 95 | + mspa: { |
| 96 | + sids: [51], // SID for the 51st state |
| 97 | + sections: { |
| 98 | + 51: { |
| 99 | + // expect the CMP to provide section 51, with API name 'uss51', and the same format as section 8 (CA) |
| 100 | + name: 'uss51', |
| 101 | + normalizeAs: 8 |
| 102 | + } |
| 103 | + } |
| 104 | + } |
| 105 | + } |
| 106 | + } |
| 107 | +}) |
| 108 | +``` |
| 109 | + |
| 110 | +## Build the Package |
| 111 | + |
| 112 | +Follow the basic build instructions in the GitHub Prebid.js repo's main [README](https://github.com/prebid/Prebid.js/blob/master/README.md). To include the consent management module and the GPP Control - US states module, an additional option must be added to the **gulp build** command: |
| 113 | + |
| 114 | +```bash |
| 115 | +gulp build --modules=consentManagementGpp,gppContol_usstates,bidAdapter1,bidAdapter2 |
| 116 | +``` |
| 117 | + |
| 118 | +You can also use the [Prebid.js Download](/download.html) page. |
| 119 | + |
| 120 | +## Further Reading |
| 121 | + |
| 122 | +- [IAB Global Privacy Platform Full Specification Repository](https://github.com/InteractiveAdvertisingBureau/Global-Privacy-Platform) |
| 123 | +- [IAB Global Privacy Platform CMP API Specification](https://github.com/InteractiveAdvertisingBureau/Global-Privacy-Platform/blob/main/Core/CMP%20API%20Specification.md) |
| 124 | +- [IAB Global Privacy Platform USNat string Specification](https://github.com/InteractiveAdvertisingBureau/Global-Privacy-Platform/blob/main/Sections/US-National/IAB%20Privacy%E2%80%99s%20National%20Privacy%20Technical%20Specification.md) |
| 125 | +- [Prebid MSPA Support](/features/mspa-usnat.html) |
| 126 | +- [Prebid Activity Controls](/dev-docs/dev-docs/activity-controls.html) |
| 127 | +- [Prebid Consent Management - US Privacy Module](/dev-docs/modules/consentManagementUsp.html) |
| 128 | +- [Prebid Consent Management - GPP Module](/dev-docs/modules/consentManagementGpp.html) |
| 129 | +- [Prebid Consent Management - GPP Control - USNat module](/dev-docs/modules/gppControl_usnat.html) |
| 130 | +- [Prebid Activity Controls -- GPP control module - USNat](/dev-docs/modules/gppControl_usnat.html) |
| 131 | +- [CMP Best Practices](https://docs.prebid.org/dev-docs/cmp-best-practices.html) |
0 commit comments