Consent Management

 

NOTE: This documentation references many concepts addressed in the glossary of terms. Please visit this page before you continue.

Many data protection and privacy regulations require you and your company to obtain consent from users before collecting data about them, and to honor users' requests for how you use their data. The Salesforce DMP provides multiple methods for you to record and manage consent from your consumer. Based on consent signals that you provide, DMP functionality is restricted to only the users who provided consent.

Setting Consent

There are five methods available to pass consent into the DMP:

  1. API
  2. JavaScript Consent Tag
  3. SDK
  4. Inside the DMP
  5. File

Plan to pass a consent signal for every user you see for every consent flag that exists. Otherwise, product functionality may be unnecessarily gated.

API

We recommend this method for passing consent signals to the DMP. Please reference the technical documentation for technical details on using the API.

JavaScript Consent Tag

The JavaScript Consent Tag allows you to pass consent calls asynchronously without a browser refresh. The JavaScript Consent Tag can be called after the page is loaded to send any consumer consent information that should be tracked. Please reference the technical documentation for further details.

Note: The JavaScript Consent Tag requires the Salesforce DMP JavaScript Control Tag to be deployed on the page. The JavaScript Consent Tag must be used as is: any edit or modification of the tag will not be supported by Salesforce DMP and may result in compliance failure. Please consult with your legal team accordingly.

The JavaScript Consent Tag snippet can be retrieved by navigating to Manage>> Sites in the Salesforce DMP UI and clicking the </> (Actions) button on the right.

Below is an example of the JavaScrip Consent Tag format.

Krux('ns:NAMESPACE', 'consent:ROUTE', parameters, callback)

SDK

Instructions on how to pass consent via the SDK are available in the iOS and Android SDK Implementation Guides.

Inside the DMP

You can use DMP controls to define consent for a user. We recommended this option only for one-off cases when managing consumer objections and change requests.

Follow these steps to set consent for a user.

  1. Navigate to the Consumer Rights Management tile in Consent Management
  2. Click Raise a new request and select Update consent request
  3. Choose a user identification type
  4. Specify bridge key or device type
  5. Enter the applicable user identifiers
    1. Enter an ID for each user
    2. Enter IDs for multiple users one at a time
  6. Enter your consent settings values
    1. Select the value for each consent flag
    2. Specify a policy regime
  7. Click Submit

GDPRConsent3.png

GDPRConsent4.png

 

File

If you choose not to integrate via other supported methods, you can pass consent signals via file. All consent collected through files process daily, so the system will not register the request until after daily jobs have processed. Please reach out to your Solutions representative via the Help Portal to request setup.

Important: If you are passing through consent for devices that are included in a corresponding first party import file, you must drop the consent file one day prior to dropping the first party import file on S3.  This way we can guarantee that the consent for the devices will be ingested prior to ingesting records from the import file, and that we can correctly gate data collection and other data activities accordingly. 

Location

Please upload files to the following location.

s3://krux-partners/client-{NAME}/uploads/consent-data/YYYY-MM-DD/

Format

Device Format:
idt^dt^idv^ACTION^PR^{FLAGS}^TS

Bridge Key Format:
idt^bk^idv^ACTION^PR^{FLAGS}^TS

Note: Policy regime (pr) and timestamp (ts) are optional. Flags are required if the action is set. For more detail on the consent flags format, please refer to Consent Flags section of the DMP Consumer Rights Management Concepts and Glossary document.

Examples of valid records:


device^kxcookie^abcdef123^set^global^dc=1&tg=1&al=1&cd=1&sh=0&re=1^1515471711277000

device^idfa^6D92078A-8246-4BA4-AE5B-76104861E7DC^set^gdpr^dc=1&tg=0&al=0&cd=1&sh=0&re=0^1515471711277000

bk^email_sha256^f660ab912ec121d1b1e928a0bb4bc61b15f5ad44d5efdc4e1c92a25e99b8e44a^set^global^dc=0&tg=1&al=0&cd=1&sh=0&re=1^1515471711277000

bk^email_sha256^f660ab912ec121d1b1e928a0bb4bc61b15f5ad44d5efdc4e1c92a25e99b8e44a^remove^^^

bk^email_sha256^f660ab912ec121d1b1e928a0bb4bc61b15f5ad44d5efdc4e1c92a25e99b8e44a^portability^^^


Regardless of whether or not you submit data for the optional timestamp or policy regime, include all of the delimiters. Data will not process without all delimiters.

Compression

The DMP supports gzip and lzo compression types, but recommends lzo with an lzo index file. If you choose to use gzip, the maximum supported size is 1GB per file submitted. Alternatively, the DMP does support plain text files.

Consent Resolution

After you have started providing consent information to the DMP, it is important to understand how the DMP processes this information and assigns all devices in the account with a set of consent values.

As noted in the glossary, there are many different sources of consent. Additionally, it is important to recognize that not every device seen in an organization will have provided consent directly. Some devices may provide indirect consent or some combination of multiple types of consent. Finally, consent is not static. It can change over time, and this must be reflected for each user.

Given this complexity, the DMP resolves consent for each device based on the most recent signal based on the prioritization below:

  1. Direct consent (first-party)
  2. Indirect consent (second-party)
  3. Indirect third-party data provider consent (third-party)
  4. DMP Default Consent

For example, if Device 1 provides consent on your website on day 1 and is exposed to an ad impression on day 3, the consent signal from the most recent direct consent event is still respected. This setting remains the same even though the most recent consent event was an ad impression. On day 5, the consumer provides consent again through a direct source, such as API or file. We respect the settings from day 5, as they are the most recent.

Industry Opt-Out

In addition to consent signals provided by you, the DMP has obligations to other regulatory bodies such as the NAI and DAA. As part of these obligations, the DMP respects generic opt-out from the NAI, DAA, and the DMP opt-out page across ALL organizations.

Checking Consent

You can get information on the most recent consent signal for a given ID Value (device or bridge key). The DMP supports five methods to check consent.

API

In addition to passing consent, the same API supports your request for the latest consent signals. For more information on this API, review the API technical documentation.

Consent Audit Logs and Dissent Lists

Consent audit logs are available at the locations listed below. Dissent lists are available and part of the regular data feeds going forward.

Audit Logs Location

S3://krux-partners/client-{CLIENTNAME}/krux-data/exports/consent-audit-logs/YYYY-MM-DD/set
S3://krux-partners/client-{CLIENTNAME}/krux-data/exports/consent-audit-logs/YYYY-MM-DD/portability
S3://krux-partners/client-{CLIENTNAME}/krux-data/exports/consent-audit-logs/YYYY-MM-DD/rtbf

Audit Logs Format

Device:
-^-^kuid^orgUuid^consentSource^TS^{FLAGS}^ACTION^PR^PRSRC^IP^REQID

Note: if the request comes in at the device level such as a cookie or MAID, then the first two fields will be '-' as no bridge key lookup is required.

Bridge Key:
bkname^bkvalue^kuid^orgUuid^consentSource^TS^{FLAGS}^ACTION^PR^PRSRC^IP^REQID

Examples

Portability

-^-^akuidstr^akuidstr^45e0a0b2-7f30-456c-875c-1cfa507d72b6^api^1515476195538000^^portability^^^127.0.0.1^WDZa5kQF4gJNmv5RGh
-^-^1234-568-2222232^1234-568-2222232^45e0a0b2-7f30-456c-875c-1cfa507d72b6^api^1515476041270000^^portability^^^127.0.0.1^WDZaT5UGcPpnQHdadM

Delete


-^-^akuidstr^45e0a0b2-7f30-456c-875c-1cfa507d72b6^api^1515476230697000^^remove^^^127.0.0.1^WDZbCIsqeUvESYa8R

Set:


-^-^BaC67850^e9eaedd3-c1da-4334-82f0-d7e3ff883c87^api^1515471630097000^cg=63&dc=1&cd=1&re=1&tg=1&al=1&sh=1^set^gdpr^req^127.0.0.1^WDZJe6wGyuwGSIw0B
-^-^Lrq8sEA6^e9eaedd3-c1da-4334-82f0-d7e3ff883c87^api^1515471775728000^cg=63&dc=1&cd=1&re=1&tg=1&al=1&sh=1^set^global^ip^127.0.0.1^WDZKCfUJe6wGyuJ
-^-^Lrq8sEA6^e9eaedd3-c1da-4334-82f0-d7e3ff883c87^api^1515471711279000^cg=63&dc=1&cd=1&re=1&tg=1&al=1&sh=1^set^gdpr^req^127.0.0.1^WDZJyvgGig9GAhHliK
-^-^2569153A051D1B24-4000010360003FE3^2569153A051D1B24-4000010360003FE3^e9eaedd3-c1da-4334-82f0-d7e3ff883c87^api^1515471711276000^cg=63&dc=1&cd=1&re=1&tg=1&al=1&sh=1^set^gdpr^req^127.0.0.1^WDZJyvgGig9GAhHliK
email_sha256^2579D5F3051D3556-40000106C00D7D39^KpcNiz2N^e9eaedd3-c1da-4334-82f0-d7e3ff883c87^api^1515471711277000^cg=63&dc=1&cd=1&re=1&tg=1&al=1&sh=1^set^gdpr^req^127.0.0.1^WDZJyvgGig9GAhHliK
email_sha256^2579D5F3051D3556-40000106C00D7D39^LDDDwze_^e9eaedd3-c1da-4334-82f0-d7e3ff883c87^api^1515471711277000^cg=63&dc=1&cd=1&re=1&tg=1&al=1&sh=1^set^gdpr^req^127.0.0.1^WDZJyvgGig9GAhHliK
-^-^BaC67850^45e0a0b2-7f30-456c-875c-1cfa507d72b6^api^1515476157361000^cg=63&dc=1&cd=1&re=1&tg=1&al=1&sh=1^set^gdpr^req^127.0.0.1^WDZawPYDAKMCvkR6f_

Dissent List Location

S3://krux-partners/client-{CLIENTNAME}/krux-data/exports/dissent-data/YYYY-MM-DD/dc
S3://krux-partners/client-{CLIENTNAME}/krux-data/exports/dissent-data/YYYY-MM-DD/al
S3://krux-partners/client-{CLIENTNAME}/krux-data/exports/dissent-data/YYYY-MM-DD/tg
S3://krux-partners/client-{CLIENTNAME}/krux-data/exports/dissent-data/YYYY-MM-DD/cd
S3://krux-partners/client-{CLIENTNAME}/krux-data/exports/dissent-data/YYYY-MM-DD/sh
S3://krux-partners/client-{CLIENTNAME}/krux-data/exports/dissent-data/YYYY-MM-DD/re

Dissent List Format

Device:
idv^orgUuid^{FLAG}^timestamp

Example:
akuidstr^45e0a0b2-7f30-456c-875c-1cfa507d72b6^dc^1521228961501


Note that the Flag will match the folder name.

Aggregate Consent Report

Within the admin console in the DMP UI, you can check the population sizes for each consent flag. For more information, visit documentation on the UI configuration settings.

Respecting Consent

All consent provided for the organization, or set of linked organizations (depending on the configuration), is respected based on the most recent signal for a device. For example, a user provided content to targeting on Monday but changed to non-consent on Tuesday. In this case, the DMP removes that user from all outbound segments until that user provides consent again. The DMP Customer is expected to properly define and record consent so that the DMP may respect those consent signals.

Data Collection

DMP restricts data collection based on this consent signal. If the DMP observes a device that doesn't include consent for data collection, the DMP does not fire the following data collection tags.

  1. pixel.gif
  2. event.gif
  3. transaction.gif
  4. usermatch.gif

Additionally, the DMP will not fire any tags via SuperTag that have a data collection designation.

Please note, this only applies to events where the Salesforce DMP Control Tag is loaded on the page. We do not restrict collection for all file based data collection methods and any beacon (e.g. heartbeat.gif) that is not managed directly through the control tag. In these cases, the DMP Customer is expected to ensure consent exists to fire this infrastructure or send personal data via file.

Managing Data Collection Tags In Supertag

All tags that fire via SuperTag include a data collection designation. This simply denotes whether or not a tag collect data. All tags that are designated as data collection tags are restricted when a user does not consent to data collection via the Consent Management Framework. This designation allows you to use SuperTag to fire tags that do not collect data, but simply render content on your page.

To update the data collection designation for a tag, perform these steps.

  1. Navigate to SuperTag within the DMP UI
  2. Edit Tag
  3. Set the “Data Collection Tag” checkbox as desired
  4. Click Save

SuperTag.png

 

Targeting

The DMP removes all users that have provided negative consent for targeting from segments sent to any third-party system. Because targeting requires analytical jobs via segment processing to run, consent for analytics is a pre-requisite for targeting.

Analytics

DMP removes all users that have provided negative consent for analytics from analytical jobs that run within the DMP. This is inclusive of but not limited to reports like Journey Insights, Einstein Segmentation, Marketing Performance, and Lookalikes.

Additionally, all segments that are processed only include users that have provided consent for analytics. Within the segment builder the rule populations reflect analytics consented populations based on when the segment was last processed. The total segment size number also reflects all users who meet the segment criteria that have consented to analytics. This number is updated daily regardless of segment processing schedules.

Cross-device

DMP removes all users that provide negative consent for cross-device from all predictive and declared user match tables for the organization in question.

Data Sharing

All segments that are shared through Data Studio or through DMP Partner Management via a Shared Partner configuration will be filtered based on data sharing consent.

DMP removes all users that have not provided consent for data sharing from any segments or events being shared via Data Studio. After filtering users based on the source organization, the consent restrictions on usage of that data are based on the receiving organization.

For example, Device 1 is in a the “sports lovers” segment shared from Organization 1 to Organization 2. In Organization 1, the user consented to data sharing and targeting. However, the user did not consent to targeting in Organization 2. In this case, the user would not be targetable in Organization 2.

In Partner Management, DMP customers may now distinguish between their own account or a sharable account for each activation partner. Sharable accounts should be used to send data to endpoints not owned or operated by the customer, and segments sent to sharable accounts will be filtered based on data sharing consent. When requesting new activation partners, customers are responsible for indicating if a sharable account is required for each unique account setup.  Customers may have multiple accounts to the same partner.  For example, they may set up one account to DBM using their own ClientID, and segments sent to that ClientID will be filtered on targeting.  Then they may set up a second account to DBM Sharable using a 3P ClientID, and then segments sent to that accocunt will be filtered on both targeting and data sharing.

Reidentification

DMP removes all users that provided negative consent for re-identification from segments sent to Email Studio or any other internal reidentification platform.

Consent Backfilling

One challenging aspect of introducing consent requirements for all devices is what to do with historical devices and the data associated with them. You may not start collecting consent until May, which could mean that you have many devices for which you have not received consent. Similarly, you may have data associated with devices that have churned and can never be seen again, making consent collection impossible.In either of these cases, the result may be that you have a lack of consent for many devices in your account, potentially leading to segment population declines.

To address this day zero implementation issue, we have introduced a one time use feature which will enable you to backfill consent for all historical devices. This allows you to define the consent you have with each user per your contracts, and have that associated with all devices in your account. This consent will be applied to all devices in your account just before May 25th, and can never again be set. Ultimately, it allows you to slowly ramp up your consent management collection without enduring through population declines.

For more information on how to set your backfill defaults, please click here.

 

 

 

 

Have more questions? Submit a request

0 Comments

Article is closed for comments.