diff --git a/src/_data/catalog/destination_categories.yml b/src/_data/catalog/destination_categories.yml index d4f365dbd1..cabafc2f57 100644 --- a/src/_data/catalog/destination_categories.yml +++ b/src/_data/catalog/destination_categories.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# destination categories last updated 2024-10-29 +# destination categories last updated 2024-10-31 items: - display_name: A/B Testing slug: a-b-testing diff --git a/src/_data/catalog/destinations.yml b/src/_data/catalog/destinations.yml index 8bfaa0cb43..7f3f116e5e 100644 --- a/src/_data/catalog/destinations.yml +++ b/src/_data/catalog/destinations.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# destination data last updated 2024-10-29 +# destination data last updated 2024-10-31 items: - id: 637e8d185e2dec264895ea89 display_name: 1Flow @@ -105316,7 +105316,7 @@ items: mark: url: https://cdn.filepicker.io/api/file/ID6Qu6cBSmivatPUnoMY methods: - track: false + track: true identify: true group: true alias: false diff --git a/src/_data/catalog/destinations_private.yml b/src/_data/catalog/destinations_private.yml index 9b3c3fcf77..c4dadc6229 100644 --- a/src/_data/catalog/destinations_private.yml +++ b/src/_data/catalog/destinations_private.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# destination data last updated 2024-10-29 +# destination data last updated 2024-10-31 items: - id: 54521fd925e721e32a72eee1 display_name: Pardot @@ -799,3 +799,544 @@ items: '@path': $.traits enable_batching: true trigger: type = "track" or type = "identify" + - id: 6683e1d5e37fd84efcf3bbef + display_name: First Party Dv360 + name: First Party Dv360 + slug: first-party-dv360 + previous_names: + - First Party Dv360 + url: connections/destinations/catalog/first-party-dv360 + website: http://www.segment.com + status: PRIVATE_BUILDING + logo: + url: >- + https://cdn-devcenter.segment.com/da053d87-a568-4bae-827f-857f7f4b2aba.svg + mark: + url: >- + https://cdn-devcenter.segment.com/31811060-3f10-46b0-94de-bf299beb94a4.svg + methods: + track: true + identify: false + group: false + alias: false + screen: false + page: false + platforms: + browser: true + mobile: false + server: true + warehouse: false + cloudAppObject: false + components: [] + browserUnbundlingSupported: false + browserUnbundlingPublic: false + replay: false + settings: [] + actions: + - id: pMRu4ozQwh3SzjYycCzDfn + name: Add to List + slug: addToList + description: Adds to list + platform: CLOUD + hidden: false + defaultTrigger: null + fields: [] + - id: kjEdc2dNCshXomx9VDnp9 + name: Remove Customer Match Members - Mobile Device Id List + slug: removeFromAudMobileDeviceId + description: >- + Remove customer match members in Google Display & Video 360 Mobile + Device Id List Audience. + platform: CLOUD + hidden: false + defaultTrigger: event = "Audience Entered" + fields: + - id: dRiii61cWqivpbMNjxGUKL + sortOrder: 0 + fieldKey: mobileDeviceIds + label: Mobile Device IDs + type: STRING + description: >- + A list of mobile device IDs defining Customer Match audience + members. The size of mobileDeviceIds mustn't be greater than + 500,000. + placeholder: '' + defaultValue: + '@path': $.context.traits.mobileDeviceIds + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: ppDfvVSHs3wpC3Ycoh2gUu + sortOrder: 1 + fieldKey: external_id + label: External ID + type: STRING + description: The ID of the DV360 Audience. + placeholder: '' + defaultValue: + '@path': $.context.personas.external_audience_id + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + hidden: true + - id: 6w8gbwpX2zANVtazbjtfMc + sortOrder: 2 + fieldKey: advertiser_id + label: Advertiser ID + type: STRING + description: The Advertiser ID associated with the DV360 Audience. + placeholder: '' + defaultValue: + '@path': $.context.personas.audience_settings.advertiserId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + hidden: true + - id: 81favwMqHXmAecMuLmXGo6 + sortOrder: 3 + fieldKey: enable_batching + label: Enable Batching + type: BOOLEAN + description: Enable batching of requests. + placeholder: '' + defaultValue: true + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + hidden: true + - id: tuBG56koj3PdEWoMt7j8Xv + sortOrder: 4 + fieldKey: batch_size + label: Batch Size + type: NUMBER + description: >- + Maximum number of events to include in each batch. Actual batch + sizes may be lower. + placeholder: '' + defaultValue: 500000 + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + hidden: true + - id: texVBBbJ5ZvG5eBR49wLoL + name: Edit Customer Match Members - Mobile Device Id List + slug: addToAudMobileDeviceId + description: >- + Add or update customer match members in Google Display & Video 360 + Mobile Device Id List Audience. + platform: CLOUD + hidden: false + defaultTrigger: event = "Audience Entered" + fields: + - id: 8hSAZXT5u7knkEUGKLpe8A + sortOrder: 0 + fieldKey: mobileDeviceIds + label: Mobile Device IDs + type: STRING + description: >- + A list of mobile device IDs defining Customer Match audience + members. The size of mobileDeviceIds mustn't be greater than + 500,000. + placeholder: '' + defaultValue: + '@path': $.context.traits.mobileDeviceIds + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 2KfCTSk2bzm1Br7DZ5d9jM + sortOrder: 1 + fieldKey: external_id + label: External ID + type: STRING + description: The ID of the DV360 Audience. + placeholder: '' + defaultValue: + '@path': $.context.personas.external_audience_id + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + hidden: true + - id: 9ecWScNV2vuWrFNgfoHf1 + sortOrder: 2 + fieldKey: advertiser_id + label: Advertiser ID + type: STRING + description: The Advertiser ID associated with the DV360 Audience. + placeholder: '' + defaultValue: + '@path': $.context.personas.audience_settings.advertiserId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + hidden: true + - id: gpaqTHscj6acVK5x12WsMV + sortOrder: 3 + fieldKey: enable_batching + label: Enable Batching + type: BOOLEAN + description: Enable batching of requests. + placeholder: '' + defaultValue: true + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + hidden: true + - id: 4p4wD9VF3j7GSp3TvBMLHB + sortOrder: 4 + fieldKey: batch_size + label: Batch Size + type: NUMBER + description: >- + Maximum number of events to include in each batch. Actual batch + sizes may be lower. + placeholder: '' + defaultValue: 500000 + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + hidden: true + - id: u4XdrL4XCgThQLiwKZKC7e + name: Edit Customer Match Members - Contact Info List + slug: addToAudContactInfo + description: >- + Add or update customer match members in Google Display & Video 360 + Contact Info List Audience. + platform: CLOUD + hidden: false + defaultTrigger: event = "Audience Entered" + fields: + - id: 8Ry596bd6tBhdH2ErcXZUS + sortOrder: 0 + fieldKey: emails + label: Emails + type: STRING + description: >- + A list of the user's emails. If not already hashed, the system + will hash them before use. + placeholder: '' + defaultValue: + '@path': $.context.traits.emails + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: zCC3pVDww1k3bwsYeU3ak + sortOrder: 1 + fieldKey: phoneNumbers + label: Phone Numbers + type: STRING + description: >- + A list of the user's phone numbers. If not already hashed, the + system will hash them before use. + placeholder: '' + defaultValue: + '@path': $.context.traits.phoneNumbers + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 9JQTx74mEBTAMwcUjfKo93 + sortOrder: 2 + fieldKey: zipCodes + label: ZIP Codes + type: STRING + description: A list of the user's zip codes. + placeholder: '' + defaultValue: + '@path': $.context.traits.zipCodes + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: qPeGF7HX6EhNJpQoRwNmnN + sortOrder: 3 + fieldKey: firstName + label: First Name + type: STRING + description: >- + The user's first name. If not already hashed, the system will hash + it before use. + placeholder: '' + defaultValue: + '@path': $.context.traits.firstName + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 2NGtbSMELmDoTmdQGWb8jH + sortOrder: 4 + fieldKey: lastName + label: Last Name + type: STRING + description: >- + The user's last name. If not already hashed, the system will hash + it before use. + placeholder: '' + defaultValue: + '@path': $.context.traits.lastName + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: w8BbkKZShNdnyc2uASpB4Z + sortOrder: 5 + fieldKey: countryCode + label: Country Code + type: STRING + description: The country code of the user. + placeholder: '' + defaultValue: + '@path': $.context.traits..countryCode + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: wA4Syt8pYqUASr9cAQEWvA + sortOrder: 6 + fieldKey: external_id + label: External ID + type: STRING + description: The ID of the DV360 Audience. + placeholder: '' + defaultValue: + '@path': $.context.personas.external_audience_id + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + hidden: true + - id: hqpDxsMA2C4r8TdNiyaGtM + sortOrder: 7 + fieldKey: advertiser_id + label: Advertiser ID + type: STRING + description: The Advertiser ID associated with the DV360 Audience. + placeholder: '' + defaultValue: + '@path': $.context.personas.audience_settings.advertiserId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + hidden: true + - id: v3qUWULxzJDrdjTUgSpigZ + sortOrder: 8 + fieldKey: enable_batching + label: Enable Batching + type: BOOLEAN + description: Enable batching of requests. + placeholder: '' + defaultValue: true + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + hidden: true + - id: ndYdVUnqzCJfyzoVPKay9F + sortOrder: 9 + fieldKey: batch_size + label: Batch Size + type: NUMBER + description: >- + Maximum number of events to include in each batch. Actual batch + sizes may be lower. + placeholder: '' + defaultValue: 500000 + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + hidden: true + - id: vykfWPGTjXpdHZiaaSUYRC + name: Remove Customer Match Members - Contact Info List + slug: removeFromAudContactInfo + description: >- + Remove customer match members in Google Display & Video 360 Contact + Info List Audience. + platform: CLOUD + hidden: false + defaultTrigger: event = "Audience Exited" + fields: + - id: eEkzo7KFjZZ5SY6MYsGNsa + sortOrder: 0 + fieldKey: emails + label: Emails + type: STRING + description: >- + A list of the user's emails. If not already hashed, the system + will hash them before use. + placeholder: '' + defaultValue: + '@path': $.context.traits.emails + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: umefzMMP12tpbD2oopGbPv + sortOrder: 1 + fieldKey: phoneNumbers + label: Phone Numbers + type: STRING + description: >- + A list of the user's phone numbers. If not already hashed, the + system will hash them before use. + placeholder: '' + defaultValue: + '@path': $.context.traits.phoneNumbers + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 3sx6yoo2rwgRPCB5WYDZCb + sortOrder: 2 + fieldKey: zipCodes + label: ZIP Codes + type: STRING + description: A list of the user's zip codes. + placeholder: '' + defaultValue: + '@path': $.context.traits.zipCodes + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: jeiJHUQawC7xqWmAnxJp3Z + sortOrder: 3 + fieldKey: firstName + label: First Name + type: STRING + description: >- + The user's first name. If not already hashed, the system will hash + it before use. + placeholder: '' + defaultValue: + '@path': $.context.traits.firstName + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 9KEVS8t6JhY8474QVZcKiF + sortOrder: 4 + fieldKey: lastName + label: Last Name + type: STRING + description: >- + The user's last name. If not already hashed, the system will hash + it before use. + placeholder: '' + defaultValue: + '@path': $.context.traits.lastName + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: kUE2RG2AqX2LGqcykzFbUU + sortOrder: 5 + fieldKey: countryCode + label: Country Code + type: STRING + description: The country code of the user. + placeholder: '' + defaultValue: + '@path': $.context.traits..countryCode + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: xfEU7m8dxHehcuUBoLj7SS + sortOrder: 6 + fieldKey: external_id + label: External ID + type: STRING + description: The ID of the DV360 Audience. + placeholder: '' + defaultValue: + '@path': $.context.personas.external_audience_id + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + hidden: true + - id: o4hCVmsRy2dkqCxAvYk2ZX + sortOrder: 7 + fieldKey: advertiser_id + label: Advertiser ID + type: STRING + description: The Advertiser ID associated with the DV360 Audience. + placeholder: '' + defaultValue: + '@path': $.context.personas.audience_settings.advertiserId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + hidden: true + - id: mYacAw9gXNbCxHdS5JioJF + sortOrder: 8 + fieldKey: enable_batching + label: Enable Batching + type: BOOLEAN + description: Enable batching of requests. + placeholder: '' + defaultValue: true + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + hidden: true + - id: 4yLRfKRg9qcv6JR87whu9H + sortOrder: 9 + fieldKey: batch_size + label: Batch Size + type: NUMBER + description: >- + Maximum number of events to include in each batch. Actual batch + sizes may be lower. + placeholder: '' + defaultValue: 500000 + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + hidden: true + presets: [] diff --git a/src/_data/catalog/source_categories.yml b/src/_data/catalog/source_categories.yml index afd777398f..abd13ad89e 100644 --- a/src/_data/catalog/source_categories.yml +++ b/src/_data/catalog/source_categories.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# source categories last updated 2024-10-29 +# source categories last updated 2024-10-31 items: - display_name: A/B Testing slug: a-b-testing diff --git a/src/_data/catalog/sources.yml b/src/_data/catalog/sources.yml index 3c05cfeba2..ddba4c0e6d 100644 --- a/src/_data/catalog/sources.yml +++ b/src/_data/catalog/sources.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# sources last updated 2024-10-29 +# sources last updated 2024-10-31 items: - id: 8HWbgPTt3k display_name: .NET diff --git a/src/_data/sidenav/main.yml b/src/_data/sidenav/main.yml index 26bfcfcd9a..9955be1df0 100644 --- a/src/_data/sidenav/main.yml +++ b/src/_data/sidenav/main.yml @@ -389,6 +389,8 @@ sections: title: Custom Traits - path: '/unify/traits/sql-traits' title: SQL Traits + - path: '/unify/traits/recommended-items' + title: Recommended Items - path: /unify/profile-api title: Profile API - path: /unify/debugger diff --git a/src/_data/sidenav/strat.yml b/src/_data/sidenav/strat.yml index 9fc64cf428..51d8852447 100644 --- a/src/_data/sidenav/strat.yml +++ b/src/_data/sidenav/strat.yml @@ -77,6 +77,8 @@ sections: title: Google Ads Remarketing Lists destination (Personas) - path: /connections/destinations/catalog/actions-display-video-360 title: Display and Video 360 (Actions) Destination + - path: /connections/destinations/catalog/actions-first-party-dv360 + title: First Party Display and Video 360 (Actions) Destination - slug: salesforce diff --git a/src/connections/aws-privatelink.md b/src/connections/aws-privatelink.md index 596b0c3db5..7c5f2fcaaf 100644 --- a/src/connections/aws-privatelink.md +++ b/src/connections/aws-privatelink.md @@ -18,6 +18,8 @@ Usage limits for each customer during the AWS PrivateLink Private Beta include t The following Databricks integrations support PrivateLink: - [Databricks storage destination](/docs/connections/storage/catalog/databricks/) - [Databricks Reverse ETL source](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/databricks-setup/) +- [Databricks Profiles Sync](/docs/unify/profiles-sync/profiles-sync-setup/databricks-profiles-sync/) +- [Databricks Data Graph](/docs/unify/data-graph/) > info "Segment recommends reviewing the Databricks documentation before attempting AWS PrivateLink setup" > The setup required to configure the Databricks PrivateLink integration requires front-end and back-end PrivateLink configuration. Review the [Databricks documentation on AWS PrivateLink](https://docs.databricks.com/en/security/network/classic/privatelink.html){:target="_blank”} to ensure you have everything required to set up this configuration before continuing. @@ -44,6 +46,7 @@ To implement Segment's PrivateLink integration for Databricks: The following RDS Postgres integrations support PrivateLink: - [RDS Postgres storage destination](/docs/connections/storage/catalog/postgres/) - [RDS Postgres Reverse ETL source](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup/) +- [RDS Postgres Profiles Sync](/docs/unify/profiles-sync/profiles-sync-setup/) ### Prerequisites Before you can implement AWS PrivateLink for RDS Postgres, complete the following prerequisites: @@ -66,6 +69,8 @@ To implement Segment's PrivateLink integration for RDS Postgres: The following Redshift integrations support PrivateLink: - [Redshift storage destination](/docs/connections/storage/catalog/redshift/) - [Redshift Reverse ETL source](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/redshift-setup/) +- [Redshift Profiles Sync](/docs/unify/profiles-sync/profiles-sync-setup/) +- [Redshift Data Graph](/docs/unify/data-graph/) ### Prerequisites Before you can implement AWS PrivateLink for Redshift, complete the following prerequisites: @@ -86,6 +91,8 @@ To implement Segment's PrivateLink integration for Redshift: The following Snowflake integrations support PrivateLink: - [Snowflake storage destination](/docs/connections/storage/catalog/snowflake/) - [Snowflake Reverse ETL source](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup/) +- [Snowflake Profiles Sync](/docs/unify/profiles-sync/profiles-sync-setup/) +- [Snowflake Data Graph](/docs/unify/data-graph/) ### Prerequisites Before you can implement AWS PrivateLink for Snowflake, complete the following prerequisites: diff --git a/src/connections/destinations/catalog/actions-first-party-dv360/index.md b/src/connections/destinations/catalog/actions-first-party-dv360/index.md new file mode 100644 index 0000000000..446d7efd16 --- /dev/null +++ b/src/connections/destinations/catalog/actions-first-party-dv360/index.md @@ -0,0 +1,78 @@ +--- +title: First Party Display and Video 360 (Actions) Destination +strat: google +hide-settings: true +id: 6683e1d5e37fd84efcf3bbef +engage: true +--- + +Google’s [Display & Video (DV360)](https://marketingplatform.google.com/about/display-video-360/){:target="_blank"} is an end-to-end campaign management tool that enables enterprise customers to plan, measure, and run display and video advertisements. Segment’s integration with DV360 enables Segment customers to sync audiences created in Engage with DV360 for centralized audience management and improved retargeting. + +This destination is different from the existing DV360 Actions as it allows you to upload [contact info](https://developers.google.com/display-video/api/reference/rest/v3/firstAndThirdPartyAudiences#ContactInfo){:target="_blank"} and the [mobile device ID](https://developers.google.com/display-video/api/reference/rest/v3/firstAndThirdPartyAudiences#mobiledeviceidlist){:target="_blank"}. + +This destination can only be used with Engage. + +## Setup +Configuring this integration requires action by both you in your Segment workspace, and Google in your Google Marketing Platform account. As a result, the time required to finish configuration and setup can vary. + +### Enable the destination + +To enable the First Party DV 360 destionation: +1. Navigate to **Engage > Engage Settings > Destinations > Add Destination** in your Segment workspace. +2. Search for *First Party DV360* and click **Add destination**. +3. Navigate to **Connections > Destinations** and search for the **First Party DV 360** destination you created. +4. Select the **Mappings** tab and click **+ New Mapping**. +5. Select the action you'd like to use. You can choose from: + + Option | Details + ------ | -------- + Edit Customer Match Members - Contact Info List | Add or update customer match members in Contact Info List Audience. + Edit Customer Match Members - Mobile Device Id List | Add or update customer match members in Mobile Device Id List Audience. + Remove Customer Match Members - Contact Info List | Remove customer match members from the Contact Info List Audience. + Remove Customer Match Members - Mobile Device Id List | Remove customer match members from the Mobile Device Id List Audience. + + * Select either **Customer Info List** or **Mobile Device Id List** depending on what audience type you use. + * Select **Edit Customer Match Members** to add or update users to an audience. + * Select **Remove Customer Match Members** to remove users from an audience. + * If you want to create actions for both Customer Info List and Mobile Device Id List, you can create all 4 mappings. +6. Switch the toggle to enable the destination. + + +### Create an audience + +To create an audience in your destination: +1. Navigate to **Engage > Audiences** and click **+New audience**. +2. Fill out the audience seetings. + * If you want to use Mobile Device ID Lists, ensure to fill out your app ID. + * Make sure you enabled track calls. +3. Click **Save**. +4. You should see an audience populate in your DV360 account. If you don't immediately see this, it can take up to a couple of hours for your audience to populate. +5. Switch the toggle to **Connect to destination**. +6. Navigate to **Connections > Destinations** and select the First Party DV360 destination. +7. Select the **Mappings** tab. +8. Click **+ New Mapping** and select **Remove from Audience**. +9. Click **Save**. +10. Enable the mapping. + +## Consent mode +[Consent mode](https://support.google.com/analytics/answer/9976101?hl=en){:target="_blank"} is a feature provided by Google in the context of its products, particularly the Gtag library and Google Analytics. As of March 6, 2024, Google announced that consent mode must function for European Economic Area (EEA) users, otherwise data from EEA users won't process. + +Consent mode in the Gtag library and Google Analytics is designed to help website owners comply with privacy regulations, such as the General Data Protection Regulation (GDPR) in the European Union. It allows website owners to adjust how these tools use and collect data based on user consent. + +With consent mode, you can configure your website to dynamically adjust the tracking behavior of the Gtag library and Google Analytics based on the user's consent status. If a user provides consent to data processing, both the Gtag library and Google Analytics can collect and use that data for analysis. If a user doesn't provide consent, both tools limit data collection to essential functions, helping businesses respect user privacy preferences. + +Segment automatically sends consent as `TRUE` for this destination. Segment uses the [bulk-uploader workflow](https://developers.google.com/authorized-buyers/rtb/bulk-uploader#workflow){:target="_blank"} which requires consented data. Ensure all audiences and journeys are connected to consented audiences. + +{% include components/actions-fields.html %} + +## Data requirements +Based on Google’s documentation, make sure you send the correct required identifiers: +* [Contact info list requirements](https://developers.google.com/display-video/api/reference/rest/v3/firstAndThirdPartyAudiences#contactinfo){:target="_blank"} + * For example, you must send first name, last name, ZIP code, and country code all together and not just one. Make sure all phone numbers are in [E.164 format](https://en.wikipedia.org/wiki/E.164){:target="_blank"}. +* [Mobile ID Requirements](https://developers.google.com/display-video/api/reference/rest/v3/firstAndThirdPartyAudiences#mobiledeviceidlist){:target="_blank"} + + +## FAQs + +#### When will my data appear in DV360? +When you complete the connection between Segment and DV360, it can take from 24 to 48 hours for Google to create the user list. This must complete before Segment can begin to sync users into that list. diff --git a/src/connections/spec/common.md b/src/connections/spec/common.md index d957ee49c5..5075b5a86e 100644 --- a/src/connections/spec/common.md +++ b/src/connections/spec/common.md @@ -203,8 +203,8 @@ Other libraries only collect `context.library`, any other context variables must | timezone | ✅ | ✅ | ✅ | - IP Address isn't collected by Segment's libraries, but is instead filled in by Segment's servers when it receives a message for **client side events only**. -> info "IPv6 Addresses are not Supported" -> Segment does not support collection of IP addresses that are in the IPv6 format. +> info "IPv6" +> Segment doesn't support automatically collecting IPv6 addresses. - The Android library collects `screen.density` with [this method](/docs/connections/spec/common/#context-fields-automatically-collected). diff --git a/src/engage/journeys/event-triggered-journeys.md b/src/engage/journeys/event-triggered-journeys.md new file mode 100644 index 0000000000..59716f8d2c --- /dev/null +++ b/src/engage/journeys/event-triggered-journeys.md @@ -0,0 +1,113 @@ +--- +title: Event-Triggered Journeys +plan: engage-foundations +hidden: true +--- + +With Event-Triggered Journeys, you can build real-time, event-based marketing workflows to automate and personalize customer journeys. + +Unlike traditional audience-based journeys that rely on pre-defined user segments, event-triggered journeys start automatically when users perform specific actions on your website or app. + +On this page, you'll learn how to create an event-triggered journey, configure entry conditions, and work with published event-triggered journeys. + +> info "Private Beta" +> Event-Triggered Journeys is in private beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. + +## Overview + +Event-triggered journeys help you create a responsive approach for time-sensitive use cases, like cart abandonment campaigns and transactional messages. + +Where [audience-based journeys](/docs/engage/journeys/build-journey/) activate based on aggregated conditions, event-triggered journeys respond instantly to individual events, delivering personalized experiences based on the full context of each event. + +Opt for an event-triggered journey in situations like these: + +- When campaigns require real-time action in response to user behavior. +- For transactional messages (like receipts and confirmations) that require specific event-based triggers. +- In abandonment campaigns where a follow-up is needed if a corresponding completion event doesn’t occur. + +## Build an event-triggered journey + +> info "Before you begin" +> Before you start building an event-triggered journey, make sure that you've enabled all [destinations](/docs/connections/destinations/) you plan to send data to and that the events you want to use as triggers are already available in your Segment workspace. + +To set up an event-triggered journey: + +1. In your Segment workspace, navigate to **Engage > Journeys**, then click **+ Create journey**. +2. On the **Create journey** page, select **User performs an event**, then click **Next**. +3. Give your new journey a name and, optionally, a description. +4. Select entry event: + - Choose the event that will trigger user entry into the journey. + - (*Optional*) Use an audience filter to restrict entry to users who are already part of a specific audience. + - (*Optional*) Apply filters based on event property values to refine entry conditions. For example, enter only if `{property} = value A, value B, or value C`. +5. Configure entry rules: + - **Re-enter every time event occurs** (*default*): Users enter the journey each time they trigger the specified event. + - **Enter one time**: Users enter the journey once only, regardless of repeated event triggers. +6. **If you chose Re-enter every time event occurs in Step 5**, select a [unique identifier](#unique-identifiers). +7. Configure event delivery to destinations by selecting a destination or setting up a custom destination function. +8. Preview the contextual payload that Segment will send to your destination(s). +9. After you've finished setting up your journey, click **Publish**, then click **Publish** again in the popup. + +### Journey setup configuration options + +Event-Triggered Journeys includes advanced options to help you tailor journey behavior and customize data delivery to downstream destinations. + +#### Unique identifiers + +Unique identifiers in event-triggered journeys help you manage multiple journey instances when a user triggers the same event more than once. + +When you select **Re-enter every time event occurs** when you create an event-triggered journey, you can choose an event property as a unique identifier. Selecting this option does two things: + +- It creates a separate journey instance for each unique identifier value, allowing multiple instances to run in parallel for the same user. +- It ensures that any follow-up events link back to the right journey instance, preserving context for tracking and personalization. + +For example, in an abandonment journey, suppose a user starts two applications (like `application_started`), each with a different `application_id`. By setting `application_id` as the unique identifier, Segment can match follow-up events (like `application_completed`) to the correct application journey. As a result, each journey instance only receives the completion event for its specific application. + +#### Send data to downstream destinations + +Event-Triggered Journeys lets you send journey data to supported destinations, facilitating real-time, personalized messaging. Event-Triggered Journeys supports the [Braze (Actions)](/docs/connections/destinations/catalog/actions-braze-cloud/), [Customer.io (Actions)](/docs/connections/destinations/catalog/actions-customerio/), and [Iterable (Actions)](/docs/connections/destinations/catalog/actions-iterable/) destinations. + +For other destinations, you can use [Destination Functions](/docs/connections/functions/destination-functions/) to run additional logic, like enriching with [Profile API traits](/docs/unify/profile-api/) or filtering the payload. + +## Best practices + +Follow the best practices in this table to optimize your event-triggered journeys: + +| Recommendation | Details | +| --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Use specific event filters | When you configure entry events, apply precise filters based on event property values to refine which users enter the journey. This helps target specific user actions and improves the journey's relevance. | +| Use unique identifiers | If a journey allows users to enter multiple times, set a unique identifier to track each instance accurately. Using an identifier like `application_id` ensures that follow-up events stay associated with the right journey instance. | +| Preview payloads before publishing | Review the journey payload to verify that it includes all necessary context from the triggering event. This helps confirm that the data reaching destinations matches your campaign needs. | +| Test journey after publishing | Consider setting up a live test right after publishing to confirm that the journey behaves as expected and that data flows correctly to destinations. | + + +## Working with Event-Triggered Journeys + +Segment built Event-Triggered Journeys to respond instantly to events, offering real-time capabilities with a few considerations in mind. + +- **Entry event requirements**: The entry event you use must already exist in your Segment workspace for it to appear as a selection in journey setup. Make sure that you've already created the event before setting up your journey. +- **Event property filters**: You can filter event properties using the `equals` or `equals any of` operators. When you apply multiple conditions, filters operate with `AND` logic, meaning all conditions must be true for the event to trigger entry into the journey. +- **Audience filtering**: You can only use active, pre-existing audience records as filters. For more complex filtering, like specific profile traits or multiple audiences, first [create the audience](/docs/engage/audiences/#building-an-audience) in **Engage > Audiences**, then apply it as a filter once it’s live. +- **Destination options**: While Event-Triggered Journeys support several [actions-based destinations](/docs/connections/destinations/actions/) (like Braze, Customer.io, and Iterable) you can only add one destination for each journey instance. For other destinations, use a Destination Function to apply custom logic to the payload. +- **Event payload structure**: Each payload sent to a destination includes a unique key to identify the specific send step within the journey, rather than the journey instance itself. You can also set a custom event name to make it easier to identify the specific event instance you want to track in your destination. +- **Editing and versioning**: After you publish an event-triggered journey, you won't be able to edit it. To modify a journey, create a new journey. +- **Real-time delivery**: Event-Triggered Journeys aim for an expected delivery time of under 5 minutes from the moment an event is performed to when the payload reaches the destination, assuming there is no delay step in the journey. However, external factors outside of Segment's control may occasionally introduce latency. + +## Use Cases + +Event-Triggered Journeys can power a variety of real-time, personalized experiences. This section details some common scenarios to help you see how they might work in practice. + +### Real-time event forwarding + +Suppose you want to instantly send a personalized message whenever a user completes a specific action on your site, like filling out a form or subscribing to a service. With Event-Triggered Journeys, you can configure the journey to trigger each time this entry event occurs. Segment will forward the event data, including all relevant details, to your connected destination in real-time. + +### Real-time abandonment Campaigns + +Imagine you’re running an e-commerce site and want to follow up with users who start the checkout process but don’t complete it within a certain timeframe. You can create an event-triggered Journey to watch for abandonment cases like these. + +Start by setting the `checkout_started` event as the trigger and specify a unique identifier like `session_id` to track each user’s journey instance. Then, configure the journey to check for the `purchase_completed` event within a defined window (for example, 1 hour). If the user doesn’t complete the purchase, the journey can automatically send a nudge to encourage them to finish their order. + +### Personalized follow-up Messages + +Say you want to follow up with users after they engage with specific content, like downloading an e-book or watching a demo video. Event-Triggered Journeys can help you send timely, personalized messages based on these interactions. + +To do this, set the entry event to `content_downloaded` or `video_watched` and configure the journey to send a follow-up email. You could even personalize the email with details from the triggering event, like the content title or timestamp, by configuring your destination payload to enrich the message with event-specific context. diff --git a/src/engage/product-limits.md b/src/engage/product-limits.md index e7736f960b..ee999c65b6 100644 --- a/src/engage/product-limits.md +++ b/src/engage/product-limits.md @@ -30,7 +30,7 @@ To learn more about custom limits and upgrades, contact your dedicated Customer | Batch Compute Concurrency Limit | 10 (default) per space | The number of batch computations that can run concurrently per space. When this limit is reached, Segment delays subsequent computations until current computations finish. | | Compute Throughput | 10000 computations per second | Computations include any Track or Identify call that triggers an audience or computed trait re-computation. Once the limit is reached, Segment may slow audience processing. | | Events Lookback History | 3 years | The period of time for which Segment stores audience and computed traits computation events. | -| Real-time to batch destination sync frequency | 2-3 hours | The frequency with which Segment syncs real-time audiences to batch destinations. | +| Real-time to batch destination sync frequency | 12-15 hours | The frequency with which Segment syncs real-time audiences to batch destinations. | | Event History | `1970-01-01` | Events with a timestamp less than `1970-01-01` aren't always ingested, which could impact audience backfills with event timestamps prior to this date. | | Engage Data Ingest | 1x the data ingested into Connections | The amount of data transferred into the Compute Engine. | | Audience Frequency Update | 1 per 8 hours | Audiences that require time windows (batch audiences), [funnels](/docs/engage/audiences/#funnel-audiences), [dynamic properties](/docs/engage/audiences/#dynamic-property-references), or [account-level membership](/docs/engage/audiences/#account-level-audiences) are processed on chronological schedules. The default schedule is once every eight hours; however, this can be delayed if the "Batch Compute Concurrency Limit" is reached. Unless otherwise agreed upon, the audiences will compute at the limit set forth. | diff --git a/src/unify/Traits/computed-traits.md b/src/unify/Traits/computed-traits.md index db926bc73c..4ccfab1308 100644 --- a/src/unify/Traits/computed-traits.md +++ b/src/unify/Traits/computed-traits.md @@ -25,6 +25,8 @@ Segment currently supports the following types of computed traits: - [Last](#last) - [Unique List](#unique-list) - [Unique List Count](#unique-list-count) + - [Predictions](/docs/unify/traits/predictions/) + - [Recommended Items](/docs/unify/traits/recommended-items/) - [Conditions](#conditions) - [Connecting your Computed Trait to a Destination](#connecting-your-computed-trait-to-a-destination) - [Editing Realtime Traits](#editing-realtime-traits) diff --git a/src/unify/Traits/recommended-items.md b/src/unify/Traits/recommended-items.md new file mode 100644 index 0000000000..6574b1dd98 --- /dev/null +++ b/src/unify/Traits/recommended-items.md @@ -0,0 +1,76 @@ +--- +title: Recommended Items +plan: unify-plus +--- + +With Recommended Items, you can add personalized item recommendations as a [computed trait](/docs/unify/traits/computed-traits/) to each user profile. + +Based on a user's past interactions, this trait generates a list of up to 5 items, like products, articles, or songs, that each user is most likely to engage with. + +Segment designed Recommended Items for cases where you want to personalize experiences, like email content, in-app recommendations, or website suggestions, to fit each user's unique preferences. + +On this page, you’ll learn how Recommended Items works, how to create a Recommended Item trait, and best practices to get the most out of your recommendations. + +![The Select Computed Trait screen in the Segment UI, showing options like Predictions, Recommendation (selected), Event counter, Aggregation, and Most frequent. The Recommendation option description reads "Recommend personalized products" and includes additional details about Cross Sell, Personalization, and Next Best Action use cases.](../images/recommendation_items.png). + +## How Recommended Items works + +Recommended Items uses your interaction events (like `order_completed`, `product_added`, and `product_searched`) along with event metadata to generate personalized recommendations for each user. Here’s an overview of the process: + +1. **Data collection**: Segment captures user interactions from your chosen events. +2. **Pattern analysis**: Machine learning models analyze these interactions to recognize patterns and user preferences. +3. **Item ranking**: Based on this analysis, Segment generates an ordered list of recommended items for each user, ranked from most to least likely to engage. +4. **Profile storage**: Segment then saves these recommendations as an array on each eligible user profile. + +Once Segment attaches the recommendation array to a profile, you can use it to: + +- Personalize experiences with the [Profile API](/docs/unify/profile-api/) +- Send Recommended Items traits to downstream destinations +- Build further segments based on Recommended Items +- Trigger customized campaigns and experiences tailored to individual users + +## Create a Recommended Items trait + +> info "Before you begin" +> Before you create Recommended Item traits, you'll first need to set up a Recommendation Catalog. The catalog setup process involves mapping your interaction events and providing product metadata to support recommendations. If you haven't yet set up your Recommendation Catalog, follow the steps in the [Product Based Audiences documentation](/docs/engage/audiences/product-based-audiences/#set-up-your-recommendation-catalog). + +To create a Recommended Item trait: + +1. In your Segment workspace, navigate to **Unify > Traits > + Create computed trait**. +2. In the **New Computed Trait** builder, click **Recommendation**, then click **Next**. +3. In **Select users**, click **+ Add condition** to choose the users who should receive recommendations. + - You can create recommendations for up to 2 million *non-anonymous* customers. +4. In **Define recommended items**, choose the item type you want to recommend. + - This is based on your product catalog. +5. Choose how many item types you want to return onto each profile. + - You can select up to 5 item types. +6. Click **Calculate** to get a preview of the number of users who will receive your recommendations, then click **Next**. +7. (*Optional*) Select destinations you want to sync the trait to, then click **Next**. +8. Give your trait a name, then click **Create Trait**. + +Segment begins creating your new trait. This process could take up to 48 hours. + +## Example use case: personalized album recommendations + +Suppose you’re managing a music streaming app and want to give each user personalized music recommendations based on their listening habits. + +Here's how you could configure this trait: + +| Step | Configuration | +| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Select users | Use an audience based on up to 2 million active, non-anonymous listeners who played at least one song in the past month. | +| Item type | Select **Albums** as the item type to recommend. Because you have an extensive catalog of music, this lets each listener receive recommendations tailored to their interests. | +| Number of item types | You decide to return a maximum of 5 albums for each profile, keeping the recommendations relevant and concise. | +| Calculate | Clicking **Calculate** gives you an overview of how many users will receive the album recommendations. Use it to ensure your conditions and catalog mapping meet your criteria. | +| Sync to destinations | This optional step lets you sync the trait to third-party destinations to deliver album recommendations over email, in-app messaging, or push notifications. | +| Trait naming | Name your trait `Personalized Album Recommendations`, making it easy to identify for future campaigns. | + +By setting up a trait like this, each user profile now includes personalized recommendations that reflect individual tastes. You can use these recommendations across a range of touchpoints, like in-app sections, personalized email content, or targeted messaging, to create a more engaging and customized user experience. + +## Best practices + +Keep the following in mind as you work with Recommended Items: + +- **Limit recommendations to key items**: Start with 5-7 items per profile. This keeps recommendations concise and tailored to each user's preferences. +- **Consider audience size**: Larger audiences can dilute engagement rates for each recommended item. Focusing on the top 20% of users keeps recommendations relevant and impactful. +- **Give the system time to build the trait**: Recommended Item traits can take up to 48 hours to build, depending on data volume and complexity. Segment recommends waiting until 48 hours have passed before using the trait in campaigns. \ No newline at end of file diff --git a/src/unify/images/recommendation_items.png b/src/unify/images/recommendation_items.png new file mode 100644 index 0000000000..5936f7dec2 Binary files /dev/null and b/src/unify/images/recommendation_items.png differ diff --git a/src/unify/product-limits.md b/src/unify/product-limits.md index 542cd7f9ea..cb62fe1e40 100644 --- a/src/unify/product-limits.md +++ b/src/unify/product-limits.md @@ -7,7 +7,7 @@ redirect_from: --- > info "" -> Beginning August 18, 2023, new Unify Plus and Engage users can refer to this page for Segment's product limits. Existing users prior to this date can continue to refer to the Engage product limits in the [Engage Default Limits](/docs/engage/product-limits/) documentation. +> Beginning November 1, 2024, new Unify Plus and Engage users can refer to this page for Segment's product limits. Existing users prior to this date can continue to refer to the Engage product limits in the [Engage Default Limits](/docs/engage/product-limits/) documentation. To provide consistent performance and reliability at scale, Segment enforces default use and rate limits within Unify. Most customers do not exceed these limits. @@ -16,9 +16,15 @@ To learn more about custom limits and upgrades, contact your dedicated Customer ## Unify Plus limits -Beginning August 18, 2023, new Unify Plus users will receive 50 Computed and five AI Traits. In addition, new users will receive the following depending on your Engage plan: -- **Engage Foundations**: 100 Audiences and 75 Journey Steps -- **Engage Premier**: 125 Audiences and 100 Journey Steps +Unify Plus customers receive the following based on their signup date: + +- **New Unify version (as of November 1, 2024)**: 50 Computed Traits, 10 Predictions, 3 Recommendation Traits +- **Existing Unify version (prior to November 1, 2024)**: 50 Computed Traits, 5 Predictions + +Unify Plus limits vary based on your Engage plan: + +- **Engage Plus**: 100 Audiences, 75 Journey Steps, 10 Recommendation Audiences +- **Engage Foundations** (available for renewal only as of November 1, 2024): 100 Audiences, 75 Journey Steps Visit Segment's [pricing page](https://segment.com/pricing/){:target="_blank"} to learn more.