Using GPP MSPA US National in Usercentrics CMP
In Usercentrics CMP, under the US State templates, you can use the GPP MSPA US National. This allows you to send consent signals to third-party vendors, similar to how it works in other frameworks like IAB Europe’s Transparency and Consent Framework.
Available only for Usercentrics CMP V3 script
GPP MSPA US National works only if you are using the Usercentrics V3 script. If you are using the Usercentrics V2 script, you need to update it first. Check our how to migrate guide for more details.
How to configure in the Admin UI?
1. Enable GPP MSPA US National:
- By enabling the toggle for GPP MSPA US National, the CMP will start sending consent signals according to this documentation.
2. Multi-State Privacy Agreement (MSPA):
- When declaring your company as a signatory to the Multi-State Privacy Agreement (MSPA), the use of MSPA US National is regulated by the MSPA, available at iabprivacy.com.
- When declaring your company as a signatory, this is reflected in the consent signal, so vendors can see it. Also, as a signatory, you can choose either Opt Out Option Mode or Service Provider Mode.
3. Multi-State Privacy Agreement (MSPA) Serving Mode:
If Opt Out Option Mode is not used, the consent signal will indicate that no notice was provided for selling or sharing data, no opt-out or consent can be collected for the MSPA US National consent signal, and Opt Out Option Mode is typically required by vendors in the digital advertising ecosystem.
When using Service Provider Mode, an opt-out will not be recorded through the MSPA consent signal when a user selects “Do Not Sell My Data,” because all opt-out and notice signals must be set to “not applicable.” The CMP still records the user’s opt-out choice, but no MSPA signal is transmitted. By enabling this mode, you are declaring under MSPA requirements that you are not performing any processing that requires providing an opt-out notice, and therefore no opt-out signal is sent.
How to implement MSPA US National?
When you enable GPP MSPA US National toggle, you can find the right script on the Admin interface on the implementation page, and that script includes the gpp stub.
Available only for Usercentrics V3 script
GPP MSPA US National works only if you are using the Usercentrics V3 script. If you are using the Usercentrics V2 script, you need to update it first. Check our how to migrate guide for more details.
Useful Functions:
For a more deep understanding of the GPP functions, we recommend checking the official documentation.
The following functions are available:
pingaddEventListenerremoveEventListenerhasSectiongetSectiongetField
Currently we support MSPA US National (usnat) and US Florida (usfl). US Florida is automatically used if the user is in Florida, once you deployed MSPA US National.
a) ping
The ping command can be used to determine the state of the CMP.
window.__gpp('ping', (data, success) => {
console.log('ping', data, success);
});b) addEventListener
The addEventListener command can be used to define a callback function that can be used to detect changes in the CMP. The callback shall be called with an EventListener object immediately. The GPP script will then call the callback function and return a new EventListener object every time the CMP detects a change. A value of false will be passed as the argument to the success parameter if the CMP fails to process this command.
window.__gpp('addEventListener', (data, success) => {
console.log('addEventListener', data, success);
});the addEventListener call will return the EventListener object on the data property from the callback.
EventListener = {
eventName : String, // for possible values see events below
listenerId : Number, // Registered ID of the listener
data: mixed, // data supplied by the underlying API.
pingData : object // see PingReturn
}The listenerId can be helpful in the case you need to call the removeEventListener function.
c) removeEventListener
The removeEventListener command can be used to remove an existing listener. The callback shall be called with false as the argument for the data parameter if the listener could not be removed (e.g the CMP cannot find a registered listener corresponding to listenerId). A value of false will be passed as the argument to the success parameter if the CMP fails to process the command.
window.__gpp('removeEventListener', (data, success) => {
console.log('removeEventListener', data, success);
}, 1000 // The listenerId that you want to remove
);d) hasSection
The hasSection command can be used to detect if the CMP has generated a section of a certain specification. The callback shall be called with true as the argument for the data parameter if the CMP has generated a section for the requested API prefix string. The data parameter may be null when the CMP is not yet loaded. A value of false will be pressed as the argument to the success parameter if the CMP fails to process this command.
window.__gpp('hasSection', (data, success) => {
console.log('hasSection', data, success);
}, 'uspv1' // Or 'tcfeuv2' for TCF
);e) getSection
The getSection command can be used to receive the (parsed) representation of a section of a certain specification. The callback shall be called with the (parsed) representation as the argument for the data parameter. The (parsed) representation of a section is an array of objects, where each object represents one sub-section of this section in the order that is given by the section specification.
window.__gpp('getSection', (data, success) => {
console.log('getSection', data, success);
}, 'uspv1' // Or 'tcfeuv2' for TCF
);f) getField
The getField command can be used to receive a specific field out of a certain section
window.__gpp('getField', (data, success) => {
console.log('getField', data, success);
}, 'uspv1.Version' // Or the specific field
);