Note: As of July 1st, 2023, the MSPS will be available to implement on your properties alongside the U.S. Privacy String (USPS) with the intention that the MSPS will eventually supplant USPS later in the year.
The IAB Tech Lab's Global Privacy Platform's (GPP) Multi-State Privacy String (MSPS) is a signal that notifies downstream partners that participating publishers have provided end-users with specific notice and choice over data processing activities on their properties. In this article, we will cover how to enable the MSPS on your web property that is also utilizing the U.S. Privacy String.
Note: Currently, Sourcepoint only supports MSPS on web properties that utilize Soucepoint's unified script in its implementation.
GPP library
Below is the current size of the GPP MSPS library:
Library | Size |
IAB GPP library | 165kb (uncompressed)/~21kb (compressed) |
Add GPP stub file
To enable the MSPS signal on your web property that is currently utilizing the U.S. Privacy String, your organization will need to add the GPP stub file in addition to the U.S. Privacy - CCPA stub file on your property with the following:
//Example only. Please use stub file generated in Sourcepoint portal as it may have changed
<script>
window.__gpp_addFrame=function(e){if(!window.frames[e])if(document.body){var t=document.createElement("iframe");t.style.cssText="display:none",t.name=e,document.body.appendChild(t)}else window.setTimeout(window.__gpp_addFrame,10,e)},window.__gpp_stub=function(){var e=arguments;if(__gpp.queue=__gpp.queue||[],__gpp.events=__gpp.events||[],!e.length||1==e.length&&"queue"==e[0])return __gpp.queue;if(1==e.length&&"events"==e[0])return __gpp.events;var t=e[0],p=e.length>1?e[1]:null,s=e.length>2?e[2]:null;if("ping"===t)p({gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["2:tcfeuv2","5:tcfcav1","6:uspv1","7:usnat","8:usca","9:usva","10:usco","11:usut","12:usct"],cmpId:0,sectionList:[],applicableSections:[],gppString:"",parsedSections:{}},!0);else if("addEventListener"===t){"lastId"in __gpp||(__gpp.lastId=0),__gpp.lastId++;var n=__gpp.lastId;__gpp.events.push({id:n,callback:p,parameter:s}),p({eventName:"listenerRegistered",listenerId:n,data:!0,pingData:{gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["2:tcfeuv2","5:tcfcav1","6:uspv1","7:usnat","8:usca","9:usva","10:usco","11:usut","12:usct"],cmpId:0,sectionList:[],applicableSections:[],gppString:"",parsedSections:{}}},!0)}else if("removeEventListener"===t){for(var a=!1,i=0;i<__gpp.events.length;i++)if(__gpp.events[i].id==s){__gpp.events.splice(i,1),a=!0;break}p({eventName:"listenerRemoved",listenerId:s,data:a,pingData:{gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["2:tcfeuv2","5:tcfcav1","6:uspv1","7:usnat","8:usca","9:usva","10:usco","11:usut","12:usct"],cmpId:0,sectionList:[],applicableSections:[],gppString:"",parsedSections:{}}},!0)}else"hasSection"===t?p(!1,!0):"getSection"===t||"getField"===t?p(null,!0):__gpp.queue.push([].slice.apply(e))},window.__gpp_msghandler=function(e){var t="string"==typeof e.data;try{var p=t?JSON.parse(e.data):e.data}catch(e){p=null}if("object"==typeof p&&null!==p&&"__gppCall"in p){var s=p.__gppCall;window.__gpp(s.command,(function(p,n){var a={__gppReturn:{returnValue:p,success:n,callId:s.callId}};e.source.postMessage(t?JSON.stringify(a):a,"*")}),"parameter"in s?s.parameter:null,"version"in s?s.version:"1.1")}},"__gpp"in window&&"function"==typeof window.__gpp||(window.__gpp=window.__gpp_stub,window.addEventListener("message",window.__gpp_msghandler,!1),window.__gpp_addFrame("__gppLocator"));
</script>
Add GPP parameter(s)
In addition to updating the stub file, your organization will also need to add the includeGppApi
parameter to the ccpa
object in your client configration and set one of the following flag(s) depending on your organization's use case. See below for more information:
Note: The default setting is for organizations who have not signed the Multi-State Privacy Agreement (MSPA). You will still be able to set and receive the MSPS however, the MSPA, as a contractual framework, does not cover your transactions.
Click here for more information on MSPA covered transactions and the different modes signatories can use.
In order to set the default settings on the MSPS, set the includeGppApi
parameter to true
. When utilizing the default method, the following fields in the MSPS will be set accordingly:
Field | Value in MSPS | Description |
MspaCoveredTransaction |
2 |
Publisher or Advertiser, as applicable, is a signatory to the IAB Multistate Service Provider Agreement (MSPA), as may be amended from time to time, and declares that the transaction is a “Covered Transaction” as defined in the MSPA.
|
MspaOptOutOptionMode |
0 |
Publisher or Advertiser, as applicable, has enabled “Opt-Out Option Mode” for the “Covered Transaction,” as such terms are defined in the MSPA.
|
MspaServiceProviderMode |
0 |
Publisher or Advertiser, as applicable, has enabled “Service Provider Mode” for the “Covered Transaction,” as such terms are defined in the MSPA.
|
//Example
window._sp_queue = [];
window._sp_ = {
config: {
accountId: 1584,
baseEndpoint: 'https://cdn.privacy-mgmt.com',
ccpa: {
includeGppApi: true
},
propertyHref: 'https://www.testdemo.com',
For transactions covered by the MSPA, signatories can choose to operate in Opt-Out Option Mode or Service Provider Mode. In order to set the appropriate fields in the MSPS, your organization will need to set the following flags in the includeGppApi
object:
MspaCoveredTransaction
MspaOptOutOptionMode
MspaServiceProviderMode
Reference the table below for possible values for each field:
Field | Possible values | Description |
MspaCoveredTransaction |
|
Publisher or Advertiser, as applicable, is a signatory to the IAB Multistate Service Provider Agreement (MSPA), as may be amended from time to time, and declares that the transaction is a “Covered Transaction” as defined in the MSPA. The configured value for the flag will translate to the following in the MSPS:
|
MspaOptOutOptionMode |
|
Publisher or Advertiser, as applicable, has enabled “Opt-Out Option Mode” for the “Covered Transaction,” as such terms are defined in the MSPA. The configured value for the flag will translate to the following in the MSPS:
|
MspaServiceProviderMode |
|
Publisher or Advertiser, as applicable, has enabled “Service Provider Mode” for the “Covered Transaction,” as such terms are defined in the MSPA. The configured value for the flag will translate to the following in the MSPS:
|
//Example
window._sp_queue = [];
window._sp_ = {
config: {
accountId: 1584,
baseEndpoint: 'https://cdn.privacy-mgmt.com',
ccpa: {
includeGppApi: {
"MspaCoveredTransaction": "yes",
"MspaOptOutOptionMode": "yes",
"MspaServiceProviderMode": "no"
}
},
propertyHref: 'https://www.testdemo.com',
Comments
0 comments