diff --git a/src/_data/sidenav/main.yml b/src/_data/sidenav/main.yml index 43d04ab97e..319fb119cc 100644 --- a/src/_data/sidenav/main.yml +++ b/src/_data/sidenav/main.yml @@ -615,6 +615,8 @@ sections: title: Consent Stored on the Profile - path: /privacy/consent-management/consent-in-retl title: Consent in Reverse ETL + - path: /privacy/consent-management/consent-in-engage + title: Consent in Engage Audiences - path: /privacy/consent-management/consent-faq title: Consent FAQs - path: /privacy/data-retention-policy diff --git a/src/privacy/consent-management/consent-in-engage.md b/src/privacy/consent-management/consent-in-engage.md new file mode 100644 index 0000000000..a206bd8c98 --- /dev/null +++ b/src/privacy/consent-management/consent-in-engage.md @@ -0,0 +1,72 @@ +--- +title: Consent in Engage Audiences +plan: consent-management +--- + +Once an end user's consent preferences are [stored on their Profile](/docs/privacy/consent-management/consent-in-unify#segment-consent-preference-updated-event), you can create Engage Audiences that respect end user consent preferences to better comply with privacy regulations. + +> info "Consent in Engage Profiles Audiences is in public beta" +> Consent in Engage Audiences is in public beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. +> +> Consent in Engage Audiences does **not** support Engage Accounts Audiences, Linked Audiences, Predictions, Computed Traits, and Journeys. + +## Enforce consent preferences in your Audiences + +Before enforcing consent preferences in your Profiles Audiences, you must complete the following prerequisites: +- Set up [Consent in Segment Connections](/docs/privacy/consent-management/configure-consent-management) or [Consent in Reverse ETL](/docs/privacy/consent-management/consent-in-retl) and have events stamped with the [consent object](/docs/privacy/consent-management/consent-in-segment-connections#consent-object) streaming from your source or available in your data warehouse. +- Map your Engage Destinations to consent categories. Segment assumes all Engage Destinations not mapped to a consent category do not require consent and will recieve all events containing a consent object. +- Verify that your Profiles have consent preferences by creating an Audience with a consent trait condition. If the majority of Profiles have consent preferences on them, you're ready to enable consent enforcement in your Unify space. + +### Step 1: Enable consent in your Unify space + +You can enable Consent Management in each Unify space that you'd like Segment to automatically enforce consent preferences. If you've chosen not to enable Consent Management for a Unify space but have set up Consent Management for Reverse ETL or Segment Connections, Segment continues to stamp consent preferences on your Profiles. + +> info "" +> To enable Consent Management in your Unify space, you must have a [Workspace Owner role](/docs/segment-app/iam/roles/). + +To enable Consent Management in your Unify space: +1. Navigate to **Privacy > Consent Management** and select the Settings tab. +2. Enable the toggle under the Status column to turn on Consent Management for your Unify space. +3. On the **Enable consent enforcement for [Space Name]?** popup, enter the name of your Unify space and click **Enable enforcement**. + +### Step 2: Create your Audience + +You can create a Profiles Audiences as you normally would and Segment automatically enforces consent in your downstream destinations. If you don't want Segment to automatically enforce consent, disable consent enforcement in your Unify space and manually add the consent trait Audience condition when building your Audiences. + +> warning "Consent enforcement doesn't automatically apply to Audiences that existed prior to the enablement of Consent Management in your Unify space" +> Audiences that existed before you enabled Consent Management in a Unify space only enforce consent preferences for new Profiles that enter the Audience after you enabled Consent Management. If you want to ensure each of your Audiences only includes consenting Profiles, request a resync. All Audiences created after you enable Consent Management for a space automatically enforce consent preferences when sharing their data with mapped destination(s). + +Destinations mapped to a consent category only receive the Profiles of users who have given consent to that category. Destinations not mapped to a consent category receive all Profiles in an Audience, regardless of the Profile's consent preferences. + +If you opt to send your Audience to multiple destinations belonging to multiple categories, then each destination receives data for the Profiles that have consent to the destination’s mapped category. For example, if you have an audience mapped to Google Ads (mapped to the Advertising consent category) and Snowflake (mapped to the Analytics consent category), then: +* Google Ads receives all profiles that have consented to Advertising consent category, independent of users' who consented to Analytics +* Snowflake receives all profiles that have consented to Analytics, independent of their Advertising preferences. + +> info "Consent preferences can affect Audience sync size" +> The number of profiles that sync to your Engage destination(s) depends on the number of end users that consented to their data being shared with the destinations connected to your Audience. To see the impact of consent on your Audience, add consent traits to the Audience builder. + +If you have Profiles with consent preferences for some, but not all consent categories, Segment adds all available categories to the `categoryPreferences` object on all Identify and/or Track calls and considers missing consent categories to be `false`. If you have Profiles with no consent preferences, Segment automatically adds an empty `categoryPreferences` object and prevents those Profiles from flowing downstream to your destination. + +## Verify that your Audiences respect consent preferences + +After you enable consent management in your Unify space, Segment automatically filters out end users that have not consented to the category that you mapped to your connected destination. + +However, if you'd like to confirm that this behavior is working as intended, you can either [compare an end user Profile against your mapped categories](#compare-an-end-user-profile-to-your-mapped-categories) or verify that [Delivery Overview](#use-delivery-overview) contains a `FILTERED_BY_END_USER_CONSENT` event. + +> warning "Consent enforcement does not automatically apply to Audiences that existed prior to the enablement of Consent Management in your Unify space" +> Audiences that existed before you enabled Consent Management in a Unify space only enforce consent preferences for new Profiles that enter the Audience after you enabled Consent Management. If you want to ensure each of your Audiences only includes consenting Profiles, request a resync. All Audiences created after you enable Consent Management for a space automatically enforce consent preferences when sharing their data with mapped destination(s). + +### Compare an end user Profile to your mapped categories + +You can verify that your Audiences are respecting consent preferences by selecting a user Profile, identifying one category they consented to, and confirming that the user's Profile appears in one of the destinations mapped to that category. + +### Use Delivery Overview + +You can use [Delivery Overview](/docs/connections/delivery-overview/) to verify that your destination is enforcing your user's consent preferences by checking for the presence of a `FILTERED_BY_END_USER_CONSENT` discard reason. + +To verify that your events are being filtered by end user consent: +1. Select the destination connected to your Engage Audience. +2. On the Delivery Overview page, select **Filtered at destination**. +3. Search through the table of discarded events until you find an event with a discard reason of `FILTERED_BY_END_USER_CONSENT`. + +If the discard reason `FILTERED_BY_END_USER_CONSENT` is present in the point where your destination discards events, your destination is enforcing your end users' consent preferences appropriately. \ No newline at end of file diff --git a/src/privacy/consent-management/consent-in-unify.md b/src/privacy/consent-management/consent-in-unify.md index 5ed25b9b31..dde6d3a570 100644 --- a/src/privacy/consent-management/consent-in-unify.md +++ b/src/privacy/consent-management/consent-in-unify.md @@ -4,7 +4,7 @@ plan: consent-management redirect_from: "/privacy/consent-in-unify" --- -Segment uses the [consent object](#consent-object) on Segment events, including the [Segment Consent Preference Updated](#segment-consent-preference-updated-event) Track event, to evaluate and store consent preferences on the Profile. Consent on the Profiles serves as the source of truth of an end user’s consent preference when enforcing consent in Twilio Engage or Linked Audiences. +Segment uses the [consent object](#consent-object) on Segment events, including the [Segment Consent Preference Updated](#segment-consent-preference-updated-event) Track event, to evaluate and store consent preferences on the Profile. Consent on the Profiles serves as the source of truth of an end user’s consent preference when enforcing consent in Twilio Engage. ## Consent object @@ -77,22 +77,27 @@ If you use Protocols, the Segment app automatically adds the Segment Consent Pre > > See the [Semantic Events](/docs/connections/spec/semantic/) docs for more details. -### Sharing consent with Actions destinations +### Share consent with Actions destinations In addition to enforcing consent in Connections, you may want these preferences to flow to each destination so your destinations can be aware when an end-user revokes their consent. You can use the [Destination Actions framework](/docs/connections/destinations/actions) to edit the destination's mapping and copy the consent preferences from the Segment Consent Preference Updated event to a destination-specified consent field. If you use Destination Actions to send consent information to your destinations, the Segment Consent Preference Updated event should **only** include information about a user's consent preferences because this event is sent regardless of an end-user's consent preferences. > info "Sharing consent with Classic Destinations isn't available" -> Segment only supports sharing consent with Actions Destinations. +> Segment only supports sharing consent with Actions Destinations. -## Storing consent preferences on the Profile -Segment stamps consent preference on every Segment event from streaming and Reverse ETL sources to store them on the Profile. +## Store consent preferences on the Profile +Segment stamps consent preferences on every Segment event from streaming and Reverse ETL sources as a trait to store them on the Profile. + +> info "Storing consent on the Profile is in public beta" +> Storing consent preferences on a Unify Profile is in public beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. If you're using Consent Management and Profiles, you shouldn't give your customers a Custom Trait value that matches one of the consent categories that you set up in the Segment app, as this can lead to unexpected Audience behavior. For example, if your end user consented to the "Marketing" destination category, you shouldn't give them a custom trait of `segment_consent_preference.categories.marketing.`, as this can lead your user to unexpectedly enter or leave an Audience. -> warning "Storing consent on the Profile is in private beta" -> Reach out to your sales contact or [request a demo](https://segment.com/contact/demo){:target="_blank"} to participate in the private beta. +## Consent preference conflicts + +When collecting end user consent, you can occasionally capture multiple consent preferences linked to the same user, for example, from a user's cell phone browser and the web browser on their laptop (called a [device-level conflict](#device-level-conflict)) or when two distinct Unify profiles are merged together (called a [profile-level conflict](#profile-level-conflict)). + ### Device-level conflicts A device-level conflict occurs when conflicting consent preferences linked to one user ID are collected from two distinct devices. @@ -130,7 +135,7 @@ To avoid Profile-level conflicts, Segment recommends that you take the following > Profile conflicts only impact Profiles used in Engage spaces. ## Enforcing consent in Twilio Engage -Segment stores consent preferences as traits on the Profile, which you can use to [build Audiences](/docs/engage/audiences/#building-an-audience). +Segment stores consent preferences as traits on the Profile, which you can use to [build Audiences](/docs/privacy/consent-management/consent-in-engage). ## Validating consent preferences stored on a Profile You can validate consent is present on the Profile by looking for the consent trait provided for a Profile on the consent tab. diff --git a/src/privacy/consent-management/index.md b/src/privacy/consent-management/index.md index 197744eb8d..6c4fd8ea4d 100644 --- a/src/privacy/consent-management/index.md +++ b/src/privacy/consent-management/index.md @@ -24,4 +24,6 @@ The events, stamped with the consent object, are then sent downstream to any des For more information about consent in Segment Connections, see the [Consent in Segment Connections](/docs/privacy/consent-management/consent-in-segment-connections) documentation. -If you are a Unify user, you can also see the [Consent in Unify](/docs/privacy/consent-management/consent-in-unify) for more information about the Segment Consent Preference Updated event, which Segment uses to add consent preference to the Profile. \ No newline at end of file +If you're a Unify user, you can also see [Consent in Unify](/docs/privacy/consent-management/consent-in-unify) for more information about the Segment Consent Preference Updated event, which Segment uses to add consent preference to the Profile. + +Twilio Engage users can learn more about creating Audiences that respect end-user consent preferences in the [Consent in Twilio Engage](/docs/privacy/consent-management/consent-in-engage) documentation.