Global Privacy Platform (GPP) Multi‐State Privacy (MSPS) - SourcePointUSA/android-cmp-app GitHub Wiki

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.

Your organization will need to configure the following attributes as part of the GPP config:

Attribute Possible values Description
MspaCoveredTransaction SpGppOptionBinary.YES
SpGppOptionBinary.NO
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:
YES = 1
NO = 2
MspaOptOutOptionMode SpGppOptionTernary.NOT_APPLICABLE
SpGppOptionTernary.YES
SpGppOptionTernary.NO
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:
NOT_APPLICABLE = 0
YES = 1
NO = 2
MspaServiceProviderMode SpGppOptionTernary.NOT_APPLICABLE
SpGppOptionTernary.YES
SpGppOptionTernary.NO
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:
NOT_APPLICABLE = 0
YES = 1
NO = 2

Depending on whether your organization is a signatory of the Multi-State Privacy Agreement (MSPA), your organization will configure the attributes in the following ways:

Non-signatory of the MSPA

For organizations who have not signed the MSPA and only want to listen for the MSPS. When setting the attributes thusly, the MSPA, as a contractual framework, does not cover your transactions.

Note: This is the default settings for these attributes. Non-signatories of the MSPA can also just include a ccpa campaign in their config and these attributes will default to this configuration.

Kotlin

private val sourcePointGppConfig = SpGppConfig()

// OR

private val sourcePointGppConfig = SpGppConfig(
    coveredTransaction = SpGppOptionBinary.NO, // optional
    optOutOptionMode = SpGppOptionTernary.NOT_APPLICABLE, // optional
    serviceProviderMode = SpGppOptionTernary.NOT_APPLICABLE, // optional
)

Java

private SpGppConfig sourcePointGppConfig = new SpGppConfig();

// OR

private SpGppConfig sourcePointGppConfig = new SpGppConfig(
    SpGppOptionBinary.NO,
    SpGppOptionTernary.NOT_APPLICABLE,
    SpGppOptionTernary.NOT_APPLICABLE
);

Signatory of the MSPA

For transactions covered by the MSPA, signatories can choose to operate in Opt-Out Option Mode or Service Provider Mode.

Kotlin

private val sourcePointGppConfig = SpGppConfig(
    coveredTransaction = SpGppOptionBinary.YES,
    optOutOptionMode = SpGppOptionTernary.NO, // dependent on which mode you use
    serviceProviderMode = SpGppOptionTernary.YES, // dependent on which mode you use
)

Java

private SpGppConfig sourcePointGppConfig = new SpGppConfig(
    SpGppOptionBinary.YES,
    SpGppOptionTernary.NO, // dependent on which mode you use
    SpGppOptionTernary.YES // dependent on which mode you use
);
⚠️ **GitHub.com Fallback** ⚠️