diff --git a/src/_data/catalog/destination_categories.yml b/src/_data/catalog/destination_categories.yml index b7a48be00b..b7facf92f3 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-07-25 +# destination categories last updated 2024-07-30 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 d7f82ba048..4d97867e6a 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-07-25 +# destination data last updated 2024-07-30 items: - id: 637e8d185e2dec264895ea89 display_name: 1Flow @@ -6130,14 +6130,14 @@ items: - id: 66543798b2fb3cb3e9ff992c display_name: Amazon Ads DSP and AMC name: Amazon Ads DSP and AMC - slug: amazon-ads-dsp-and-amc + slug: actions-amazon-amc hidden: false endpoints: - US regions: - us-west-2 - eu-west-1 - url: connections/destinations/catalog/amazon-ads-dsp-and-amc + url: connections/destinations/catalog/actions-amazon-amc previous_names: - Amazon AMC (Actions) - Amazon Ads DSP and AMC @@ -15643,17 +15643,135 @@ items: label: API Key actions: - id: d9eBdkuVNmyRNAfgjdL6XS - name: Send Data + name: '[Deprecated] Send Data' slug: sendData - description: Send data to Blend AI for product usage insights + description: '[Deprecated] Send data to Blend AI for product usage insights' platform: CLOUD hidden: false defaultTrigger: type = "identify" or type = "page" or type = "screen" or type = "track" fields: [] + - id: yCjJBJudR4gEdQEiKgpL8 + name: Track events + slug: trackEvents + description: Send data to Blend AI for product usage insights + platform: CLOUD + hidden: false + defaultTrigger: type = "identify" or type = "page" or type = "screen" or type = "track" + fields: + - id: tBMWVdhWswxRHbK5AJ5nAB + sortOrder: 0 + fieldKey: eventName + label: Event Name + type: STRING + description: The name of event, page or screen + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.event + then: + '@path': $.event + else: + '@path': $.name + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: ssQfcfMM6vL5MDzkfLavQE + sortOrder: 1 + fieldKey: eventType + label: Event Type + type: STRING + description: The type of event + placeholder: '' + defaultValue: + '@path': $.type + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: dK2PNBSXo5r15RirtrQ1kU + sortOrder: 2 + fieldKey: eventProperties + label: Event Properties + type: OBJECT + description: Properties of the event + placeholder: '' + defaultValue: + '@path': $.properties + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: eMDPJ33ZqZZLN4sGqRvcXs + sortOrder: 3 + fieldKey: userTraits + label: User Traits + type: OBJECT + description: User profile details / traits + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.traits + then: + '@path': $.traits + else: + '@path': $.context.traits + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: uwSy94BocPDGB2pDBHY1bm + sortOrder: 4 + fieldKey: identifiers + label: Identifiers + type: OBJECT + description: User identifiers + placeholder: '' + defaultValue: + anonymousId: + '@path': $.anonymousId + userId: + '@path': $.userId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false presets: - - actionId: d9eBdkuVNmyRNAfgjdL6XS + - actionId: yCjJBJudR4gEdQEiKgpL8 name: Send Data to Blend - fields: {} + fields: + eventName: + '@if': + exists: + '@path': $.event + then: + '@path': $.event + else: + '@path': $.name + eventType: + '@path': $.type + eventProperties: + '@path': $.properties + userTraits: + '@if': + exists: + '@path': $.traits + then: + '@path': $.traits + else: + '@path': $.context.traits + identifiers: + anonymousId: + '@path': $.anonymousId + userId: + '@path': $.userId trigger: type = "identify" or type = "page" or type = "screen" or type = "track" partnerOwned: true - id: 5c6db002edda600001b2af8b @@ -16351,7 +16469,7 @@ items: status: PUBLIC categories: - Email Marketing - - CRM + - Marketing Automation - SMS & Push Notifications logo: url: https://cdn.filepicker.io/api/file/L0QKeLi4RtuRdDAjfZ7i @@ -25700,17 +25818,17 @@ items: - id: 65302a3acb309a8a3d5593f2 display_name: Display and Video 360 (Actions) name: Display and Video 360 (Actions) - slug: display-and-video-360-actions - hidden: true + slug: actions-display-video-360 + hidden: false endpoints: - US regions: - us-west-2 - eu-west-1 - url: connections/destinations/catalog/display-and-video-360-actions + url: connections/destinations/catalog/actions-display-video-360 previous_names: - Display and Video 360 (Actions) - website: http://www.segment.com + website: https://marketingplatform.google.com/about/display-video-360/ status: PUBLIC categories: - Advertising @@ -47483,454 +47601,6 @@ items: actions: [] presets: [] partnerOwned: false -- id: 54521fd725e721e32a72eebb - display_name: Google Universal Analytics - name: Google Universal Analytics - slug: google-analytics - hidden: false - endpoints: - - US - regions: - - us-west-2 - - eu-west-1 - url: connections/destinations/catalog/google-analytics - previous_names: - - Google Analytics - - Google Universal Analytics - website: http://google.com/analytics - status: PUBLIC - categories: - - Analytics - logo: - url: https://cdn.filepicker.io/api/file/anFgceQJTGeMxChCgiyU - mark: - url: https://cdn.filepicker.io/api/file/zebLRcY3RtOlynDXTgNk - methods: - track: true - identify: true - group: false - alias: false - screen: false - page: true - platforms: - browser: true - mobile: true - server: true - warehouse: false - cloudAppObject: false - components: - - code: >- - https://github.com/segmentio/analytics.js-integrations/tree/master/integrations/google-analytics - owner: SEGMENT - type: BROWSER - - code: >- - https://github.com/segment-integrations/analytics-ios-integration-google-analytics - owner: SEGMENT - type: IOS - - code: >- - https://github.com/segment-integrations/analytics-android-integration-google-analytics - owner: SEGMENT - type: ANDROID - - code: >- - https://github.com/segmentio/integrations/tree/master/integrations/google-analytics - owner: SEGMENT - type: SERVER - browserUnbundlingSupported: true - browserUnbundlingPublic: true - replay: false - connection_modes: - device: - web: true - mobile: true - server: false - cloud: - web: true - mobile: true - server: true - settings: - - name: anonymizeIp - type: boolean - defaultValue: false - description: >- - For client side libraries. Read more about anonymizing IP addresses from - the [Google support - documentation](https://support.google.com/analytics/answer/2763052?hl=en). - required: false - label: Anonymize IP Addresses - - name: classic - type: boolean - defaultValue: false - description: >- - **Important:** When creating your Google Analytics profile, you can choose - between **Classic** and **Universal** Analytics. After March 2013, new - profiles default to Universal, while earlier ones are Classic. An easy - test: if you see `_gaq.push` in your code you're using Classic, so enable - this. - required: false - label: Use Classic Analytics on Your Site - - name: contentGroupings - type: map - defaultValue: {} - description: >- - Enter a property name on the left. Choose the Google Analytics content - grouping you want on the right. Google Analytics only accepts numbered - content groupings (e.g. contentGrouping3). When you use - `analytics.page(name, properties)` with custom properties, we'll use the - value of the property you designate as the value of the specified content - grouping. - required: false - label: Content Groupings - - name: dimensions - type: map - defaultValue: {} - description: >- - Because Google Analytics cannot accept arbitrary data about users or - events, when you use `analytics.identify(userId, traits)` with custom - traits or `analytics.track('event', properties)` with custom properties, - you need to map those traits and properties to Google Analytics custom - dimensions if you want them to be sent to GA. Enter a trait or property - name on the left. Choose the Google Analytics dimension you want on the - right. Google Analytics only accepts numbered dimensions (e.g. - dimension3). We suggest using user-scoped dimensions for trait mappings - and hit-scoped dimensions for properties [Contact - us](https://segment.com/contact) if you need help! - required: false - label: Custom Dimensions - - name: domain - type: string - defaultValue: '' - description: >- - _Only data sent from visitors on this domain_ will be recorded. By default - Google Analytics automatically resolves the domain name, so you should - **leave this blank unless you know you want otherwise**! This option is - useful if you need to ignore data from other domains, or explicitly set - the domain of your Google Analytics cookie. This is known as Override - Domain Name in [GA - Classic](https://developers.google.com/analytics/devguides/collection/gajs/gaTrackingSite). - If you are testing locally, you can set the domain to `none`. [Read more - about this setting in our - docs](https://segment.com/docs/connections/destinations/catalog/google-analytics/#cookie-domain-name). - required: false - label: Cookie Domain Name - - name: doubleClick - type: boolean - defaultValue: false - description: Works with both Universal and Classic tracking methods. - required: false - label: Remarketing, Display Ads and Demographic Reports. - - name: enableServerIdentify - type: boolean - defaultValue: false - description: >- - If you are sending `.identify()` calls from your server side libraries or - have Segment Cloud Apps that send back `.identify()` calls with enriched - user traits, you can send that data to your GA account via custom - dimensions and metrics. Unlike the client side integration which has the - luxury of browsers and the global window `ga` tracker, for server side we - will check your `traits` and your settings for custom dimension/metric - mappings and send it with an explicit event. - required: false - label: Enable Server Side Identify - - name: enhancedEcommerce - type: boolean - defaultValue: false - description: >- - If you want more detailed reports on ecommerce, you might want to enable - this feature. Read more about it - [here](https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-ecommerce). - required: false - label: Enable Enhanced Ecommerce - - name: enhancedLinkAttribution - type: boolean - defaultValue: false - description: >- - Provides more detailed reports on the links clicked on your site. Read - more about it in the [Google support - documentation](https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-link-attribution). - required: false - label: Enable Enhanced Link Attribution - - name: identifyCategory - type: string - defaultValue: '' - description: >- - If you have **Enabled Server Side Identify**, you can specify the trait - you want to look up for setting the event category will be since all - custom metrics/dimensions for server side `.identify()` calls will be sent - via an event hit to GA. The default value will be `'All'`. For example, if - you are sending `traits.category`, you can put 'category' in the setting - above and we will send the value of this trait as the event category. - required: false - label: Server Side Identify Event Category - - name: identifyEventName - type: string - defaultValue: '' - description: >- - If you have **Enabled Server Side Identify**, you can specify what the - event action will be since all custom metrics/dimensions for server side - `.identify()` calls will be sent via an event hit to GA. The default value - will be `'User Enriched'` - required: false - label: Server Side Identify Event Action - - name: ignoredReferrers - type: strings - defaultValue: [] - description: >- - Add any domains you want to ignore, separated by line breaks. You might - use this if you want Google Analytics to ignore certain referral domains - (e.g. to prevent your subdomains from showing up as referrers in your - analytics). _Note: this only works for Classic profiles. Universal - profiles can_ [edit their ignored - referrers](https://support.google.com/analytics/answer/2795830?hl=en&ref_topic=2790009) - _directly inside Google Analytics._ - required: false - label: Ignored Referrers - - name: includeSearch - type: boolean - defaultValue: false - description: >- - The querystring doesn't usually affect the content of the page in a - significant way (like sorting), so we disable this by default. - required: false - label: Include the Querystring in Page Views - - name: metrics - type: map - defaultValue: {} - description: >- - Because Google Analytics cannot accept arbitrary data about users or - events, when you use `analytics.identify(userId, traits)` with custom - numerical traits or `analytics.track('event', properties)` with custom - numerical properties, you need to map those traits and properties to - Google Analytics custom metrics if you want them to be sent to GA. Enter a - trait or property name on the left. Choose the Google Analytics metric you - want on the right. Google Analytics only accepts numbered metrics (e.g. - metric3). We suggest using user-scoped metrics for trait mappings and - hit-scoped metrics for properties. [Contact - us](https://segment.com/contact) if you need help! - required: false - label: Custom Metrics - - name: mobileTrackingId - type: string - defaultValue: '' - description: >- - Google Analytics tracks mobile apps separately, so you'll want to create a - separate Google Analytics mobile app property. Remember to only add a - mobile tracking ID if you're tracking from a mobile library. If you're - tracking from a hybrid app, fill in your website tracking ID instead. - Leave it blank if you don't have a mobile app property. - required: false - label: Mobile Tracking ID - - name: nameTracker - type: boolean - defaultValue: false - description: >- - Name the tracker 'segmentGATracker'. Enable this if you're working with - additional Google Analytics trackers and want to ensure that your Segment - tracker has a distinct name. If this is enabled you must prepend this - tracker name to any native Google Analytics (except for create) that you - call, e.g. 'segmentGATracker.require(....)' - required: false - label: Name Tracker - - name: nonInteraction - type: boolean - defaultValue: false - description: >- - Adds a _nonInteraction: true_ flag to every non-enhanced ecommerce event - tracked to Google Analytics. If you're seeing unusually low bounce rates - this will solve that issue. - required: false - label: Add the non-interaction flag to all events - - name: optimize - type: string - defaultValue: '' - description: >- - Integrate with Google Analytics Optimize plugin. Please enter your - Optimize Container ID - required: false - label: Optimize Container ID - - name: preferAnonymousId - type: boolean - defaultValue: false - description: >- - Enable this setting if you want `clientId` to always be set as a hash of - `anonymousId`. If no `anonymousId` is present we will fallback to set the - `clientId` to `userId`. This setting only applies to server side - connections. - required: false - label: Prefer Anonymous ID for Client ID - Server Side Only - - name: protocolMappings - type: map - defaultValue: {} - description: >- - If you are using the *server side* GA integration, you can map your custom - traits or properties to known [measurement protocol - params](https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters). - required: false - label: Map Traits or Properties to Measurement Protocol Params - - name: reportUncaughtExceptions - type: boolean - defaultValue: false - description: >- - This lets you study errors and exceptions in your iOS and Android apps in - Google Analytics. - required: false - label: Send Uncaught Exceptions to GA (Mobile) - - name: resetCustomDimensionsOnPage - type: array - defaultValue: [] - description: >- - If you have an SPA website, and need to reset custom dimensions between - page calls, add to this setting all the properties (already mapped as - custom dimensions) that need to be reset for each page call. - required: false - label: Reset dimensions on Page calls - - name: sampleRate - type: number - defaultValue: 100 - description: >- - Specifies what percentage of users should be tracked. This defaults to 100 - (no users are sampled out) but large sites may need to use a lower sample - rate to stay within Google Analytics processing limits as [seen - here](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#sampleRate). - Currently only available in the browser - mobile coming soon. - required: false - label: Sample Rate - - name: sendUserId - type: boolean - defaultValue: false - description: >- - User-ID enables the analysis of groups of sessions across devices, using a - unique and persistent ID. This only works with Google Analytics Universal. - IMPORTANT: Sending email or other personally identifiable information - (PII) violates Google Analytics Terms of Service. - required: false - label: Send User-ID to GA - - name: serversideClassic - type: boolean - defaultValue: false - description: >- - **Important:** When creating your Google Analytics profile, you can choose - between **Classic** and **Universal** Analytics. After March 2013, new - profiles default to Universal, while earlier profiles are Classic. An easy - test: if you see `_gaq.push` in your code you're using Classic, so enable - this. - required: false - label: Use Classic Analytics for Your Serverside Tracking - - name: serversideTrackingId - type: string - defaultValue: '' - description: >- - Your Serverside Tracking ID is the UA code for the Google Analytics - property you want to send server-side calls to. Leave it blank if you - don't have a server-side client library that you want to send data from. - Remember that data tracked from mobile integrations that are not bundled - in your app send data to Google Analytics server side, since Segment sends - data to them via our own servers. - required: false - label: Serverside Tracking ID - - name: setAllMappedProps - type: boolean - defaultValue: true - description: >- - Google Analytics allows users to either pass custom dimensions / metrics - as properties of specific events or as properties for all events on a - given page (or the lifetime of the global tracker object). The default - Segment behavior is the latter. Any metrics / dimensions that are mapped - to a given property will be set to the page and sent as properties of all - subsequent events on that page. You can disable this functionality with - this setting. If disabled, Segment will only pass custom dimensions / - metrics as part of the payload of the event with which they are explicitly - associated. Please reference the Google Analytics - [documentation](https://developers.google.com/analytics/devguides/collection/analyticsjs/custom-dims-mets#implementation) - for more info. - required: false - label: Set Custom Dimensions & Metrics to the Page - - name: siteSpeedSampleRate - type: number - defaultValue: 1 - description: >- - Defines the sample size for Site Speed data collection. If you have a - small number of visitors you might want to adjust the sampling to a larger - rate for your [site speed - stats](https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApiBasicConfiguration?hl=en#_gat.GA_Tracker_._setSiteSpeedSampleRate). - required: false - label: Site Speed Sample Rate - - name: topLevelContextMapping - type: boolean - defaultValue: false - description: >- - By default, Segment allows mappings from custom traits and properties to - Google Analytics custom dimensions and metrics. If you enable this - setting, Segment will also send top-level and `context` object fields - mapped in the **Custom Dimensions** and **Custom Metrics** settings. When - evaluating mappings, Segment will prioritize properties and traits before - top-level and `context` fields. This setting only applies to server side - connections. - required: false - label: Enable Mappings from Top-Level or Context Fields - Server Side Only - - name: trackCategorizedPages - type: boolean - defaultValue: true - description: >- - Tracks events to Google Analytics for [`page` - method](https://segment.com/docs/connections/sources/catalog/libraries/website/javascript/#page) - calls that have a `category` associated with them. E.g. `page('Docs', - 'Index')` translates to **Viewed Docs Page**. - required: false - label: Track Categorized Pages - - name: trackingId - type: string - defaultValue: '' - description: >- - Your website's Tracking ID is in the **Tracking Info** tab on the [Admin - Page](https://www.google.com/analytics/web/#management/Property) of Google - Analytics. Leave it blank if you don't have a website property. - required: false - label: Website Tracking ID - - name: trackNamedPages - type: boolean - defaultValue: true - description: >- - Tracks events to Google Analytics for [`page` - method](https://segment.com/docs/connections/sources/catalog/libraries/website/javascript/#page) - calls that have a `name` associated with them. E.g. `page('Signup')` - translates to **Viewed Signup Page**. - required: false - label: Track Named Pages - - name: typeOverride - type: boolean - defaultValue: false - description: >- - By default, Segment sends "Product List Viewed" and "Product List - Filtered" ecommerce events to GA as "pageview" hit types. Enable this - setting to instead map these two specced Segment track events to GA as - "event" hit types. - required: false - label: Send Segment "Product List" Events to GA as "Event" Hits - - name: useGoogleAmpClientId - type: boolean - defaultValue: false - description: >- - Google’s AMP Client ID API lets you uniquely identify users who engage - with your content on AMP and non-AMP pages. If you opt-in, Google - Analytics will use the user's AMP Client ID to determine that multiple - site events belong to the same user when those users visit AMP pages via a - [Google viewer](https://support.google.com/websearch/answer/7220196). - Associating events and users provides features like user counts and - session-based metrics. *Enabling this feature will affect your reporting.* - Please carefully reference Google's - [documentation](https://support.google.com/analytics/answer/7486764?hl=en&ref_topic=7378717) - for more info before you enable it. - required: false - label: Use Google AMP Client ID - - name: userDeletion - type: string - defaultValue: '' - description: 'Sign in to Google Analytics oAuth to enable User Deletion. ' - required: false - label: User Deletion - actions: [] - presets: [] - partnerOwned: false - id: 54521fd625e721e32a72eeba display_name: GoSquared name: GoSquared @@ -49257,7 +48927,7 @@ items: hidden: false defaultTrigger: type = "track" fields: - - id: aH3SVka9XSgyHitdWpcJGc + - id: 6JMdwk1uVMYtmerwhj1c4Z sortOrder: 0 fieldKey: eventName label: Event Name @@ -49275,7 +48945,7 @@ items: choices: null dynamic: true allowNull: false - - id: bmJa2E7E1H9BNwWbFZ1puW + - id: pXSbnaqZumFAopagi4Ke6y sortOrder: 1 fieldKey: occurredAt label: Event Timestamp @@ -49291,7 +48961,7 @@ items: choices: null dynamic: false allowNull: false - - id: bBgdEue3x3DKPvUZQrQZ9G + - id: 2LLY18iq1aph2DY3BsTbhK sortOrder: 2 fieldKey: email label: Email Address @@ -49313,7 +48983,7 @@ items: choices: null dynamic: false allowNull: false - - id: xh6FyMFwbBYZykb9nG6MkZ + - id: gXQuobz4AiJ1Gs5CUS1rMZ sortOrder: 3 fieldKey: utk label: User Token @@ -49327,7 +48997,7 @@ items: choices: null dynamic: false allowNull: false - - id: copM5UAUBzEdNbzAFrjbwK + - id: 3n7dSA2JVY8GVjJQDwn4fS sortOrder: 4 fieldKey: objectId label: Object ID @@ -49342,7 +49012,7 @@ items: choices: null dynamic: false allowNull: false - - id: dXtTFdQLB8gNDCyHxYmdtK + - id: nLXWbkdP6uPiwjegR996sJ sortOrder: 5 fieldKey: properties label: Event Properties @@ -49367,7 +49037,7 @@ items: hidden: false defaultTrigger: null fields: - - id: vnTMae3GfAqhSNpvVy5Ckp + - id: 5ktq3UrdTHHu3oKKcgXv7A sortOrder: 0 fieldKey: createNewCustomRecord label: Create Custom Object Record if Not Found @@ -49384,7 +49054,7 @@ items: choices: null dynamic: false allowNull: false - - id: chuh5FJ52yzBjhiw4Mnizy + - id: gkoqkFii3KuKaoCroH3LXL sortOrder: 1 fieldKey: customObjectSearchFields label: Custom Object Search Fields @@ -49399,7 +49069,7 @@ items: choices: null dynamic: false allowNull: false - - id: qg5CT9Ab4Ug4dPLLwKjJbo + - id: 6S6JNNd7sw87ZwrFnjVKPy sortOrder: 2 fieldKey: objectType label: Object Type @@ -49417,7 +49087,7 @@ items: choices: null dynamic: true allowNull: false - - id: fiqcfLvqdgcGAHcoSabvtx + - id: tvgAJQqAyfyi4JzCiXWwin sortOrder: 3 fieldKey: properties label: Properties @@ -49435,7 +49105,7 @@ items: choices: null dynamic: false allowNull: false - - id: hXxpBwwZ9yCauDnjXgBXPU + - id: 9JE1Ng8gEiWXNURgNVic3j sortOrder: 4 fieldKey: searchFieldsToAssociateCustomObjects label: Search Fields to Associate custom Object @@ -49451,7 +49121,7 @@ items: choices: null dynamic: false allowNull: false - - id: e5fpPBaiuLyvggRwZWXc55 + - id: ewFHpzJfcMFXfnFs9FTLQL sortOrder: 5 fieldKey: toObjectType label: ObjectType to associate @@ -49469,7 +49139,7 @@ items: choices: null dynamic: true allowNull: false - - id: 9SYYLi6wAnd3GJABNrjtKh + - id: 6Q9xcQqndFCsM6WqL61RjM sortOrder: 6 fieldKey: associationLabel label: Association Label @@ -49489,7 +49159,7 @@ items: hidden: false defaultTrigger: type = "identify" fields: - - id: jiK1tsmBQFyQSQNqDWEB74 + - id: niJo4TYwk81fgHcveAhsq sortOrder: 0 fieldKey: email label: Email @@ -49507,7 +49177,7 @@ items: choices: null dynamic: false allowNull: false - - id: uKumAWbj4GJ2tjbAXnhKY2 + - id: 8kDxEy8oZeVLjig5vFELdV sortOrder: 1 fieldKey: company label: Company Name @@ -49521,7 +49191,7 @@ items: choices: null dynamic: false allowNull: false - - id: rW6gEHexDVTcTDCXtvA83u + - id: iHrMJmLmFEZEB3PUES83YA sortOrder: 2 fieldKey: firstname label: First Name @@ -49541,7 +49211,7 @@ items: choices: null dynamic: false allowNull: false - - id: vJoh1o8yrbKj9CGTbRMVvZ + - id: hhWMEJb8kuMgn1AVbKdxHQ sortOrder: 3 fieldKey: lastname label: Last Name @@ -49561,7 +49231,7 @@ items: choices: null dynamic: false allowNull: false - - id: sZDXgbGD2Qhn3xe8xF4VRL + - id: dfMfLUT9HmsG3R3WRnDnLc sortOrder: 4 fieldKey: phone label: Phone @@ -49575,7 +49245,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3vui85w7StUH2HLuzDdrn + - id: a2CETLMork3g4DAKr6GxSq sortOrder: 5 fieldKey: address label: Street Address @@ -49589,7 +49259,7 @@ items: choices: null dynamic: false allowNull: false - - id: uaBNU1BXGq2HP4SAvVMcKK + - id: nYoUkfTfrUdymM1s81WKNn sortOrder: 6 fieldKey: city label: City @@ -49603,7 +49273,7 @@ items: choices: null dynamic: false allowNull: false - - id: dfcL3XP7rTNzDWmqcAkSG6 + - id: 45qMAmBvy6GmHwSq8ZhoLS sortOrder: 7 fieldKey: state label: State @@ -49617,7 +49287,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8vN56i7f2xhgS9fBrEi6fR + - id: uBroVhvZCT8vzTMijYxPq5 sortOrder: 8 fieldKey: country label: Country @@ -49631,7 +49301,7 @@ items: choices: null dynamic: false allowNull: false - - id: 86kUgcfqQ3sADgLAqiMKum + - id: uNrwYzFpEYWtntYhTiYLWN sortOrder: 9 fieldKey: zip label: Postal Code @@ -49651,7 +49321,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8iZhdKhxvassLNeqUnn7XC + - id: 3BidDwG4L2idBNK9Sy5fb8 sortOrder: 10 fieldKey: website label: Website @@ -49665,7 +49335,7 @@ items: choices: null dynamic: false allowNull: false - - id: xbkNYvgdztso3rBDhfF6Sh + - id: 85KHMQ956dsARUJSNfsaJf sortOrder: 11 fieldKey: lifecyclestage label: Lifecycle Stage @@ -49681,7 +49351,7 @@ items: choices: null dynamic: false allowNull: false - - id: wipHiHbtyp6PV6C3zdXNYE + - id: v3K7PaXRtaYtinXs1wLq4P sortOrder: 12 fieldKey: properties label: Other properties @@ -49699,7 +49369,7 @@ items: choices: null dynamic: false allowNull: false - - id: uChHsuCVoB7N8AcBZuv5Tk + - id: aCQJcfsv1doYAyAmcgkfS9 sortOrder: 13 fieldKey: enable_batching label: Send Batch Data to HubSpot @@ -49724,7 +49394,7 @@ items: hidden: false defaultTrigger: type = "group" fields: - - id: ptoi3aUcSNJ7s4BQ58Dgtv + - id: m62vJRqLf1HZBLmq9jw5K7 sortOrder: 0 fieldKey: groupid label: Unique Company Identifier @@ -49748,7 +49418,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7CS13NM7wsDM3RtDQwSBxJ + - id: gahwtDWf15NPezpB93sCbj sortOrder: 1 fieldKey: createNewCompany label: Create Company if Not Found @@ -49765,7 +49435,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9Bq7nvrkrAJN7f1QCGNHsw + - id: 8YSsEvY6adumDDPKNwfzTv sortOrder: 2 fieldKey: associateContact label: Associate Contact with Company @@ -49784,7 +49454,7 @@ items: choices: null dynamic: false allowNull: false - - id: mzr6ZWhVDJiEE2XKfp1a6j + - id: vzA97i7rKMTq6Ywo43o6Jk sortOrder: 3 fieldKey: companysearchfields label: Company Search Fields @@ -49801,7 +49471,7 @@ items: choices: null dynamic: false allowNull: false - - id: kzobKrsSRknVzyRXjwvYPH + - id: b5p2es2zyjcNjEFFDxeeeK sortOrder: 4 fieldKey: name label: Company Name @@ -49815,7 +49485,7 @@ items: choices: null dynamic: false allowNull: false - - id: oZpH4vPE9YdjHBsMgonUWc + - id: mraMKmVTkX1n8eeBguVnrU sortOrder: 5 fieldKey: description label: Company Description @@ -49829,7 +49499,7 @@ items: choices: null dynamic: false allowNull: false - - id: cQ5dwdcB6EcoaubyigCb3m + - id: ijuVRhHDjtRxNpsQq9CL6Y sortOrder: 6 fieldKey: address label: Street Address @@ -49843,7 +49513,7 @@ items: choices: null dynamic: false allowNull: false - - id: kAzQ1B2sJymr9p1rmbB8hw + - id: ppR9DRQtW58RJXquqN8Cdk sortOrder: 7 fieldKey: city label: City @@ -49857,7 +49527,7 @@ items: choices: null dynamic: false allowNull: false - - id: cb7wDCwLgmA5eSMgVCtv2W + - id: hH3FcYVML7jBDP1i1BmCXZ sortOrder: 8 fieldKey: state label: State @@ -49871,7 +49541,7 @@ items: choices: null dynamic: false allowNull: false - - id: paTF97M1oCxNhg67Dtjz9j + - id: uEUnDwJXuxZU2fzbeBF4Mw sortOrder: 9 fieldKey: zip label: Postal Code @@ -49891,7 +49561,7 @@ items: choices: null dynamic: false allowNull: false - - id: eBNFWZ4VJMKAqX1MdTusMa + - id: 8ZssFcBnPQyRL27chH1S8b sortOrder: 10 fieldKey: domain label: Domain @@ -49905,7 +49575,7 @@ items: choices: null dynamic: false allowNull: false - - id: cASpQicCj5N7wwpEJ4XvCU + - id: 9p1VuMoHVVCWGHEDeFpKAc sortOrder: 11 fieldKey: phone label: Phone @@ -49919,7 +49589,7 @@ items: choices: null dynamic: false allowNull: false - - id: jd2DG6oanwNUK5YDaKZrch + - id: fDe6JxzYLDaa827YvwwyUy sortOrder: 12 fieldKey: numberofemployees label: Number of Employees @@ -49933,7 +49603,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3shQG5n1stv5SHQ5KREYi7 + - id: dy7SKgSqrDh3ewAzLusuWA sortOrder: 13 fieldKey: industry label: Industry @@ -49947,7 +49617,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4sQKpVXjCtPwBLfhepuCrM + - id: wYA2TMfEVovu32iNnXcd9t sortOrder: 14 fieldKey: lifecyclestage label: Lifecycle Stage @@ -49963,7 +49633,7 @@ items: choices: null dynamic: false allowNull: false - - id: tekZeGFdM55KfFyPf2RGWz + - id: hhyEAe7Suk3RSkcMFDUo9H sortOrder: 15 fieldKey: properties label: Other Properties @@ -49983,6 +49653,118 @@ items: choices: null dynamic: false allowNull: false + - id: dMYued7r3VjK4c2gBWUTZi + name: Upsert Object + slug: upsertObject + description: >- + Upsert a record of any Object type to HubSpot and optionally assocate it + with another record of any Object type. + platform: CLOUD + hidden: false + defaultTrigger: null + fields: + - id: f7R6m43MXLyFUPjYxGjcqf + sortOrder: 0 + fieldKey: object_details + label: Object Details + type: OBJECT + description: Details of the object to associate the record with + placeholder: '' + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: eK7W1JNZeQBWuU1QNBAyoQ + sortOrder: 1 + fieldKey: properties + label: Properties + type: OBJECT + description: Properties to set on the record. + placeholder: '' + defaultValue: + '@path': properties + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: jGP9PfotaQBu4QkD3gVVv4 + sortOrder: 2 + fieldKey: association_sync_mode + label: Associated Record Sync Mode + type: STRING + description: >- + Specify if Segment create associated records in Hubspot. Records will + only be created if the record requires a single identifier field and + does not require property fields to be set upon creation. + placeholder: '' + defaultValue: upsert + required: true + multiple: false + choices: + - label: Create + value: upsert + - label: Do not create + value: read + dynamic: false + allowNull: false + - id: 7iUmdHPM3pKzxBXEY5A73D + sortOrder: 3 + fieldKey: associations + label: Associations + type: OBJECT + description: Associations to create between the record and other records. + placeholder: '' + required: false + multiple: true + choices: null + dynamic: false + allowNull: false + - id: 8ssDQzw2pdextBa6FhdDi9 + sortOrder: 4 + fieldKey: enable_batching + label: Batch Data to Hubspot by default + type: BOOLEAN + description: By default Segment batches events to Hubspot. + placeholder: '' + defaultValue: true + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 8eDVADMZC2Argp7nL3PRn5 + sortOrder: 5 + fieldKey: batch_size + label: Batch Size + type: NUMBER + description: Maximum number of events to include in each batch. + placeholder: '' + defaultValue: 100 + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: hm26EWdP8UmiX6webPRneE + sortOrder: 6 + fieldKey: __segment_internal_sync_mode + label: Sync Mode + type: STRING + description: Specify how Segment should update Records in Hubspot + defaultValue: update + required: false + multiple: false + choices: + - label: Create new records, and update existing records + value: upsert + - label: Create new records, but do not update existing records + value: add + - label: Update existing records, but do not create new records + value: update + dynamic: false + allowNull: false presets: [] partnerOwned: false - id: 631a1c2bfdce36a23f0a14ec @@ -63221,9 +63003,11 @@ items: url: connections/destinations/catalog/linkedin-conversions-api previous_names: - LinkedIn Conversions API - website: http://www.segment.com + website: >- + https://business.linkedin.com/marketing-solutions/cx/21/10/reporting-analytics status: PUBLIC - categories: [] + categories: + - Advertising logo: url: https://cdn-devcenter.segment.com/0015b1e2-b3c3-4077-8859-abf25f91b91c.svg mark: @@ -63752,7 +63536,7 @@ items: hidden: false defaultTrigger: null fields: - - id: keB4AueGWBacc9aWiGGaRz + - id: s2XpgF2ZZCfTiRHhDrcoUG sortOrder: 0 fieldKey: listId label: List ID @@ -63766,7 +63550,7 @@ items: choices: null dynamic: false allowNull: false - - id: aSQGErWY9GZqyfTr9s4tjB + - id: d6FNpzG6ahrLY4HwC2BtVx sortOrder: 1 fieldKey: emailAddress label: Email Address @@ -63774,30 +63558,77 @@ items: description: Email address of the contact. placeholder: '' defaultValue: - '@path': $.context.traits.email + '@if': + exists: + '@path': $.context.traits.email + then: + '@path': $.context.traits.email + else: + '@path': $.traits.email required: true multiple: false choices: null dynamic: false allowNull: false - - id: oErNXoXW43BhfYc9zma9EU + - id: dYJ7ZNPhfahwK94fBcGfYw sortOrder: 2 fieldKey: profileFieldValues label: Profile Field Values type: OBJECT description: >- - Add key value pairs to set one or more profile fields. The key is the - profile field ID you want to set. Find this under Help & Support > API - ID Information in https://admin.listrak.com. The value is the profile - field value. (i.e. 1234 = on) + Add one or more profile field IDs as object keys. You can find these IDs + under Help & Support > API ID Information on https://admin.listrak.com. + Choose one of three options as the object value: "on" (activates this + field in Listrak), "off" (deactivates this field in Listrak), or + "useAudienceKey" (Listrak sets the field based on the Segment Audience + payload's audience_key boolean value: "true" activates the field, + "false" deactivates it). placeholder: '' required: true multiple: false choices: null dynamic: false allowNull: false - - id: bFoamMtf1AGGMMjnQz6daY + - id: 4F41DAWmN7sQbmMmb3Erip sortOrder: 3 + fieldKey: traits_or_props + label: Traits or properties object + type: OBJECT + description: >- + A computed object for track and identify events. This field should not + need to be edited. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.properties + then: + '@path': $.properties + else: + '@path': $.traits + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 3318GrnC1gQ7aLVUfn4Tqk + sortOrder: 4 + fieldKey: segment_audience_key + label: Audience Key + type: STRING + description: >- + Segment Audience Key to which user identifier should be added or + removed. + placeholder: '' + defaultValue: + '@path': $.context.personas.computation_key + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: uELY3xNif3s3iQhNzpiLa2 + sortOrder: 5 fieldKey: enable_batching label: Batch Data to Listrak type: BOOLEAN @@ -65817,9 +65648,10 @@ items: url: connections/destinations/catalog/marketo-static-lists-actions previous_names: - Marketo Static Lists (Actions) - website: http://www.segment.com + website: https://developers.marketo.com/ status: PUBLIC - categories: [] + categories: + - Email Marketing logo: url: https://cdn-devcenter.segment.com/baea98c1-5b3c-4b60-99aa-a40f22095f7b.svg mark: @@ -72605,7 +72437,7 @@ items: group: false alias: false screen: false - page: true + page: false platforms: browser: true mobile: true @@ -73651,7 +73483,7 @@ items: hidden: false defaultTrigger: type = "track" or type = "identify" fields: - - id: 9AVtxPuiDT9gZFNP54FhPX + - id: aRxryqXgHewWRf63LqsWpS sortOrder: 0 fieldKey: custom_audience_name label: Custom Audience Name @@ -73665,7 +73497,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5BVx58b7tZUw3HCZ9RQnDo + - id: eFxtchDM1GkPQZTkrKkSH4 sortOrder: 1 fieldKey: segment_computation_action label: Segment Computation Action @@ -73681,7 +73513,7 @@ items: value: audience dynamic: false allowNull: false - - id: qnivGYknxREfP4M2GDh9PY + - id: koKpxwRJ3LrVGgLrzZtxiJ sortOrder: 2 fieldKey: segment_computation_id label: Segment Computation ID @@ -73695,7 +73527,7 @@ items: choices: null dynamic: false allowNull: false - - id: 6GjHDurDdHqGWeFVg7hHRA + - id: uWhdi7YuAj5zfJTX8hSidc sortOrder: 3 fieldKey: optimizelyUserId label: Optimizely User ID @@ -73715,7 +73547,7 @@ items: choices: null dynamic: false allowNull: false - - id: bhSeazmogBBuEg3aiFXNpJ + - id: s2Uq6oeRzZbHDvFpXvd4Ae sortOrder: 4 fieldKey: timestamp label: Timestamp @@ -73729,6 +73561,32 @@ items: choices: null dynamic: false allowNull: false + - id: 8KxiFSVLjHAmde4bmu56JJ + sortOrder: 5 + fieldKey: enable_batching + label: Enable Batching + type: BOOLEAN + description: Enable batching of event data to Optimizely. + placeholder: '' + defaultValue: true + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: xQbJbEmJVVuNTg38fw1A + sortOrder: 6 + fieldKey: batch_size + label: Batch Size + type: INTEGER + description: Number of events to batch before sending to Optimizely. + placeholder: '' + defaultValue: 100 + required: false + multiple: false + choices: null + dynamic: false + allowNull: false presets: [] partnerOwned: true - id: 6512d7f86bdccc3829fc4ac3 @@ -96257,6 +96115,233 @@ items: actions: [] presets: [] partnerOwned: false +- id: 66684ba89c0523461d8bb7f3 + display_name: Taboola (Actions) + name: Taboola (Actions) + slug: taboola-actions + hidden: false + endpoints: + - US + regions: + - us-west-2 + - eu-west-1 + url: connections/destinations/catalog/taboola-actions + previous_names: + - Taboola (actions) + - Taboola (Actions) + website: https://www.taboola.com + status: PUBLIC_BETA + categories: + - Advertising + logo: + url: https://cdn-devcenter.segment.com/fa0aefd3-6a29-4791-b22c-5619483bd9ce.svg + mark: + url: https://cdn-devcenter.segment.com/41a65240-e74f-4562-898c-534b755d9ca1.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 + connection_modes: + device: + web: false + mobile: false + server: false + cloud: + web: true + mobile: false + server: true + settings: + - name: client_id + type: string + defaultValue: '' + description: The client ID from your Taboola account. + required: true + label: Client ID + - name: client_secret + type: string + defaultValue: '' + description: The client's secret from your Taboola account. + required: true + label: Client Secret + actions: + - id: 9GwkvxgdTZLMFwyqpdjKmK + name: Sync Audience + slug: syncAudience + description: Sync a Segment Engage Audience to Taboola. + platform: CLOUD + hidden: false + defaultTrigger: type = "track" + fields: + - id: b5AyKsZMdYBCuPcgAoGpHX + sortOrder: 0 + fieldKey: external_audience_id + label: External Audience ID + type: STRING + description: The Audience ID from Taboola. + placeholder: '' + defaultValue: + '@path': $.context.personas.external_audience_id + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: nt8pDXXxRqFipVtMTDG4Pw + sortOrder: 1 + fieldKey: segment_computation_key + label: Audience Key + type: STRING + description: Segment Audience key to which user identifier should be added or removed + placeholder: '' + defaultValue: + '@path': $.context.personas.computation_key + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: sMRMLu56EkHAZRPD8pVHfo + sortOrder: 2 + fieldKey: segment_computation_action + label: Segment Computation Action + type: STRING + description: >- + Segment computation class used to determine if input event is from an + Engage Audience'. Value must be = 'audience'. + placeholder: '' + defaultValue: + '@path': $.context.personas.computation_class + required: true + multiple: false + choices: + - label: audience + value: audience + dynamic: false + allowNull: false + - id: jUZb4GPFruhb49v5CrfdiV + sortOrder: 3 + fieldKey: user_email + label: Email address + type: STRING + description: The user's email address + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.traits.email + then: + '@path': $.traits.email + else: + '@path': $.context.traits.email + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: q5Tviv55BQZPwWVktt4pWN + sortOrder: 4 + fieldKey: traits_or_props + label: Traits or properties object + type: OBJECT + description: >- + A computed object for track and identify events. This field should not + need to be edited. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.properties + then: + '@path': $.properties + else: + '@path': $.traits + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: cF3gMNhkg8M1btdD2Jnw1y + sortOrder: 5 + fieldKey: enable_batching + label: Batch events + type: BOOLEAN + description: >- + When enabled, events will be batched before being sent to Taboola. In + most cases, batching should be enabled. + placeholder: '' + defaultValue: true + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: o6bMzm9h1LVh7MDVpfuv2a + sortOrder: 6 + fieldKey: device_id + label: Mobile Device ID + type: STRING + description: >- + To send iOS and Android Device IDs include them as 'ios_id' and + 'android_id' via the 'Customized Setup' option when connecting your + Audience. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.properties.ios_id + then: + '@path': $.properties.ios_id + else: + '@path': $.properties.android_id + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: vuis4qvh3DLApz1bevDCVD + sortOrder: 7 + fieldKey: batch_size + label: Batch Size + type: INTEGER + description: Max Batch size to send to Taboola. + placeholder: '' + defaultValue: 1000 + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: cb7pZ1yhm1CsKfamam8DCe + sortOrder: 8 + fieldKey: action + label: Action + type: STRING + description: Action to perform on the audience. + placeholder: '' + required: false + multiple: false + choices: + - label: Add + value: ADD + - label: Remove + value: REMOVE + dynamic: false + allowNull: false + presets: [] + partnerOwned: true - id: 54521fd525e721e32a72eea6 display_name: Talkable name: Talkable diff --git a/src/_data/catalog/destinations_private.yml b/src/_data/catalog/destinations_private.yml index da7dfe638e..4f7a161085 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-07-25 +# destination data last updated 2024-07-30 items: - id: 54521fd925e721e32a72eee1 display_name: Pardot diff --git a/src/_data/catalog/slugs.yml b/src/_data/catalog/slugs.yml index 4a649f29c3..e4025017eb 100644 --- a/src/_data/catalog/slugs.yml +++ b/src/_data/catalog/slugs.yml @@ -227,4 +227,6 @@ destinations: override: "convertly" - original: "amazon-ads-dsp-and-amc" override: "actions-amazon-amc" + - original: "display-and-video-360-actions" + override: "actions-display-video-360" diff --git a/src/_data/catalog/source_categories.yml b/src/_data/catalog/source_categories.yml index 7dee3807e5..16d588e8e0 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-07-25 +# source categories last updated 2024-07-30 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 0391e65ed6..de31928c17 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-07-25 +# sources last updated 2024-07-30 items: - id: 8HWbgPTt3k display_name: .NET diff --git a/src/_data/regional-support.yml b/src/_data/regional-support.yml index 3de01ebc5b..b14e83e179 100644 --- a/src/_data/regional-support.yml +++ b/src/_data/regional-support.yml @@ -304,7 +304,6 @@ destinations: - perfect-audience - perkville - persistiq - - personas-display-video-360 - personas-facebook-custom-audiences - personyze - pingdom @@ -435,7 +434,7 @@ destinations: - repeater - slack - stitch-data - + warehouses: region: - azuresqldb @@ -445,7 +444,7 @@ warehouses: - postgres - redshift - snowflake - endpoint: + endpoint: - azuresqldb - azuresqldw - bigquery diff --git a/src/_data/sidenav/main.yml b/src/_data/sidenav/main.yml index 2d250efc36..9ed6ac6a48 100644 --- a/src/_data/sidenav/main.yml +++ b/src/_data/sidenav/main.yml @@ -411,6 +411,8 @@ sections: title: Generative Audiences Nutrition Facts Label - path: '/engage/audiences/recommendation-audiences' title: Recommendation Audiences + - path: '/engage/audiences/recommendation-audiences-nutrition-label' + title: Recommendation Audiences Nutrition Facts Label - path: '/engage/audiences/organization' title: Organize Audiences - path: '/engage/audiences/send-audience-data' diff --git a/src/_data/sidenav/strat.yml b/src/_data/sidenav/strat.yml index c620eb2622..752c18576e 100644 --- a/src/_data/sidenav/strat.yml +++ b/src/_data/sidenav/strat.yml @@ -73,8 +73,8 @@ sections: title: Google Cloud Pub/Sub destination - path: /connections/destinations/catalog/adwords-remarketing-lists title: Google Ads Remarketing Lists destination (Personas) - - path: /connections/destinations/catalog/personas-display-video-360 - title: Google Display & Video 360 destination (Personas) + - path: /connections/destinations/catalog/actions-display-video-360 + title: Display and Video 360 (Actions) Destination - slug: salesforce @@ -181,7 +181,7 @@ sections: - slug: kotlin-android section_title: Analytics-Kotlin Documentation section: - - path: /connections/sources/catalog/libraries/mobile/kotlin-android + - path: /connections/sources/catalog/libraries/mobile/kotlin-android title: Overview # - path: /connections/sources/catalog/libraries/server/kotlin # title: Analytics-Kotlin (Server) @@ -214,9 +214,9 @@ sections: - path: /connections/sources/catalog/libraries/mobile/apple/migration title: Migration Guide - path: /connections/sources/catalog/libraries/mobile/apple/swift-plugin-architecture - title: Plugin Architecture + title: Plugin Architecture - path: /connections/sources/catalog/libraries/mobile/apple/live-plugins - title: Live Plugins + title: Live Plugins - path: /connections/sources/catalog/libraries/mobile/apple/destination-plugins title: Device Mode Destinations - path: /connections/sources/catalog/libraries/mobile/apple/cloud-mode-destinations @@ -242,7 +242,7 @@ sections: - slug: csharp section_title: Analytics-CSharp Documentation - section: + section: - path: /connections/sources/catalog/libraries/server/csharp/ title: Analytics-CSharp - path: /connections/sources/catalog/libraries/server/csharp/migration-guide/ diff --git a/src/_includes/content/recommendation-audiences-nutrition-facts.html b/src/_includes/content/recommendation-audiences-nutrition-facts.html new file mode 100644 index 0000000000..0816766fe7 --- /dev/null +++ b/src/_includes/content/recommendation-audiences-nutrition-facts.html @@ -0,0 +1,143 @@ + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

AI Nutrition Facts +
+
+ Customer AI Recommendations

+
+

Description +
+
+ CustomerAI Recommendations lets customers improve marketing campaigns by segmenting users based on preferences like product, category, or brand to automate the creation and maintenance of personalized recommendations for businesses in the retail, media, and entertainment industries.

+

Privacy Ladder Level + 2

+

+ Feature is Optional + Yes

+

Model Type + Predictive

+

Base Model + AWS Personalize - Hierarchical recurrent neural network

+

Trust Ingredients

+
+

Base Model Trained with Customer Data + N/A

+

Customer Data is Shared with Model Vendor + No

+

Training Data Anonymized   + No

+

Data Deletion + Yes

+

Human in the Loop + N/A

+

Data Retention + 30 days

+
Compliance    
+ Logging & Auditing + Yes
+ Guardrails + N/A +

Input/Output Consistency + N/A

+

Other Resources

+
+ \ No newline at end of file diff --git a/src/connections/destinations/catalog/actions-display-video-360/index.md b/src/connections/destinations/catalog/actions-display-video-360/index.md index aee0501122..c3bf2f6658 100644 --- a/src/connections/destinations/catalog/actions-display-video-360/index.md +++ b/src/connections/destinations/catalog/actions-display-video-360/index.md @@ -4,6 +4,8 @@ strat: google hide-settings: true id: 65302a3acb309a8a3d5593f2 engage: true +redirect_from: + - '/connections/destinations/catalog/personas-display-video-360/' --- > info "" diff --git a/src/connections/destinations/catalog/actions-google-analytics-4/index.md b/src/connections/destinations/catalog/actions-google-analytics-4/index.md index 661c681903..b5def32221 100644 --- a/src/connections/destinations/catalog/actions-google-analytics-4/index.md +++ b/src/connections/destinations/catalog/actions-google-analytics-4/index.md @@ -7,6 +7,9 @@ id: 60ad61f9ff47a16b8fb7b5d9 versions: - name: "Google Analytics 4 Web" link: '/docs/connections/destinations/catalog/actions-google-analytics-4-web/' +redirect_from: + - '/connections/destinations/catalog/google-analytics' + - '/connections/destinations/catalog/google-universal-analytics' --- {% include content/plan-grid.md name="actions" %} @@ -229,5 +232,5 @@ Because [Google's Measurement Protocol API](https://developers.google.com/analyt The Google Analytics 4 Cloud destination does not support Google Optimize. This destination operates in cloud-mode (sending events from Segment servers to Google Analytics using the Measurement Protocol API), which prevents the required [Optimize SDK](https://support.google.com/optimize/answer/11287798?visit_id=637903946258690719-978290187&rd=1){:target="_blank"} snippet from loading on the page. ### Client/server-side event deduplication -Google doesn't offer guidance around how to deduplicate the same event coming in server and client side. As a result, Segment recommends that you not send the same event into Google Analytics 4 from two different locations such that you would expect Google to deduplicate one of the events out of their pipeline. You can [deduplicate user counts](https://support.google.com/analytics/answer/9355949?hl=en){:target="_blank"} using the `User ID` field, but you cannot deduplicate whole events in the Google platform as far as Segment is aware. +Google doesn't offer guidance around how to deduplicate the same event coming in server and client side. As a result, Segment recommends that you don't send the same event into Google Analytics 4 from two different locations such that you would expect Google to deduplicate one of the events out of their pipeline. You can [deduplicate user counts](https://support.google.com/analytics/answer/9355949?hl=en){:target="_blank"} using the `User ID` field, but you cannot deduplicate whole events in the Google platform as far as Segment is aware. diff --git a/src/connections/destinations/catalog/actions-webhook/index.md b/src/connections/destinations/catalog/actions-webhook/index.md index c3fe75bf68..f6fce98374 100644 --- a/src/connections/destinations/catalog/actions-webhook/index.md +++ b/src/connections/destinations/catalog/actions-webhook/index.md @@ -28,6 +28,10 @@ Segment's Webhooks (Actions) destination uses internet protocol and HTTP callbac In Webhook Actions mapping, the default value of batch size is `1000`. You can change this value, but there's a maximum batch size limit of `4000`. +## Shared secret with batching + +If you have batching enabled and are using a shared secret to authenticate your requests, Segment signs the _first_ event in the batch rather than the whole batch. When verifying the `X-Signature` header in your code, ensure you're only signing the first event in the batch to match the signature with what Segment creates. + ## FAQs ### Why is a Webhooks (Actions) Destination helpful with end-to-end tests? diff --git a/src/connections/destinations/catalog/google-analytics/ga4-plans.md b/src/connections/destinations/catalog/google-analytics/ga4-plans.md deleted file mode 100644 index 396d56b2a4..0000000000 --- a/src/connections/destinations/catalog/google-analytics/ga4-plans.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: 'Google Analytics 4 destination' -strat: google -hide-dossier: true -published: false ---- - -Google introduced the new version of Google Analytics, called Google Analytics 4 (GA4), in October 2020. GA4 has some distinct differences from Universal Analytics (UA), which are important to understand before considering migration and the data schema changes that might require. - -> success "" -> Segment expects to release a beta GA4 destination in Q4 2021. Segment will update this page to share the latest on the GA4 destination. - - -## Event-based data model vs pageview-based data model - -GA4 has an event-based data model, like Segment. It is replacing Universal Analytics (UA), which has a pageview-centric data model. For more details, see Google's help center article: [Universal Analytics versus Google Analytics 4 data](https://support.google.com/analytics/answer/9964640?hl=en){:target="_blank"}. - -Because the data models are different, data *cannot* be migrated from Universal Analytics to GA4. Google recommends you rethink your data collection in terms of the new model, rather than port everything over from UA. If you're using UA for ecommerce, see Google's best practices guide for setting up ecommerce tracking in GA4: [Migrate ecommerce data collection from Universal Analytics](https://support.google.com/analytics/answer/10119380?hl=en&ref_topic=10270831){:target="_blank"}; note this is not a simple migration. - - -## Support for web and mobile data streams - -UA's pageview-based data model made it great for websites, but not wonderful for mobile apps, which might load content dynamically, without having “pages” the way UA defined them. GA4 has an event-based data model which improves upon this, and can serve as a single reporting destination for both your web *and* mobile sources. This means you can compare data across devices. - -If you decide to use GA4 so you can compare the data, you should spend some time thinking about how to set it up. To compare data across devices, you must use the same parameters across all data streams when you create your custom events. - - -## New reports - -GA4's out-of-the-box reports are different from UA's. GA4's reporting is much more configurable, and supports new reporting metrics like churn probability and predictive revenue estimates. - -You might not be able to perfectly recreate your UA reports in GA4. One approach is to send your data to both UA and GA4 while you build out your new reports in GA4, and improve those reports over time. Once you are satisfied that your GA4 reports meet your needs, you can gradually migrate away from using the original reporting in UA. - -GA4 requires that you use GA4's recommended events and properties in order to get the new reports. Segment's GA4 destination will automatically map your Segment spec events to the corresponding recommended GA4 events and properties. If your events do not follow the Segment spec exactly, don't worry; you'll be able to modify the mappings. You can also create custom events and properties. - - -## Cloud Mode (Server-based) first - -Segment will start by supporting Cloud-mode for GA4. Note that the [Measurement Protocol](https://developers.google.com/analytics/devguides/collection/protocol/ga4/sending-events?client_type=gtag#send_an_event){:target="_blank"} that enables server-to-server data syncing for GA4 properties is [currently in alpha](https://developers.google.com/analytics/devguides/collection/protocol/ga4/sending-events?client_type=gtag#send_an_event){:target="_blank"}. - -## Switching to GA4 - -Universal Analytics replaced Google Analytics in 2012; there is precedent for Google slowly replacing the previous generation of Google Analytics with something new. You do not need to switch to GA4 right now. Ultimately, when and how you migrate to GA4 is up to you and your team. - -While Google indicates that GA4 is the future (it's the new default property type when you create a new Google Analytics account), Universal Analytics doesn't appear to be going anywhere. You can still choose to [create a new Universal Analytics property](https://support.google.com/analytics/answer/10269537){:target="_blank"} when you create your new GA4 property. diff --git a/src/connections/destinations/catalog/google-analytics/images/ab-mapping.png b/src/connections/destinations/catalog/google-analytics/images/ab-mapping.png deleted file mode 100644 index 3e8b1c20ae..0000000000 Binary files a/src/connections/destinations/catalog/google-analytics/images/ab-mapping.png and /dev/null differ diff --git a/src/connections/destinations/catalog/google-analytics/images/checkout-funnel.png b/src/connections/destinations/catalog/google-analytics/images/checkout-funnel.png deleted file mode 100644 index 03170dda95..0000000000 Binary files a/src/connections/destinations/catalog/google-analytics/images/checkout-funnel.png and /dev/null differ diff --git a/src/connections/destinations/catalog/google-analytics/images/dimension-mapping-google-analytics.png b/src/connections/destinations/catalog/google-analytics/images/dimension-mapping-google-analytics.png deleted file mode 100644 index c2b12f2cb7..0000000000 Binary files a/src/connections/destinations/catalog/google-analytics/images/dimension-mapping-google-analytics.png and /dev/null differ diff --git a/src/connections/destinations/catalog/google-analytics/images/dimension-mapping.png b/src/connections/destinations/catalog/google-analytics/images/dimension-mapping.png deleted file mode 100644 index 8d75d468f5..0000000000 Binary files a/src/connections/destinations/catalog/google-analytics/images/dimension-mapping.png and /dev/null differ diff --git a/src/connections/destinations/catalog/google-analytics/images/dimensions-metrics.png b/src/connections/destinations/catalog/google-analytics/images/dimensions-metrics.png deleted file mode 100644 index d6923fd636..0000000000 Binary files a/src/connections/destinations/catalog/google-analytics/images/dimensions-metrics.png and /dev/null differ diff --git a/src/connections/destinations/catalog/google-analytics/images/site-search.png b/src/connections/destinations/catalog/google-analytics/images/site-search.png deleted file mode 100644 index 00fe33e7ae..0000000000 Binary files a/src/connections/destinations/catalog/google-analytics/images/site-search.png and /dev/null differ diff --git a/src/connections/destinations/catalog/google-analytics/images/tracking-method.png b/src/connections/destinations/catalog/google-analytics/images/tracking-method.png deleted file mode 100644 index d3afd705ad..0000000000 Binary files a/src/connections/destinations/catalog/google-analytics/images/tracking-method.png and /dev/null differ diff --git a/src/connections/destinations/catalog/google-analytics/index.md b/src/connections/destinations/catalog/google-analytics/index.md deleted file mode 100644 index d46b90753d..0000000000 --- a/src/connections/destinations/catalog/google-analytics/index.md +++ /dev/null @@ -1,908 +0,0 @@ ---- -title: Google Universal Analytics Destination -strat: google -hide-dossier: false -redirect_from: - - '/connections/destinations/catalog/google-universal-analytics' -id: 54521fd725e721e32a72eebb ---- -> warning "" -> Google announced that all standard Universal Analytics properties will stop processing new data on July 1, 2023. 360 Universal Analytics properties will receive a one-time processing extension ending on July 1, 2024. Segment recommends [migrating to Google Analytics 4](https://segment.com/docs/connections/destinations/catalog/actions-google-analytics-4/#migrating-from-universal-analytics-to-google-analytics-4){:target='_blank'} as soon as possible. Learn more about when [Google Analytics 4 will replace Universal Analytics](https://support.google.com/analytics/answer/11583528?sjid=13479291677968058253-NA){:target='_blank'}. - - -> warning "Migrate mobile implementations to Firebase" -> Google ended support for Google Analytics classic on iOS and Android mobile apps on October 31st 2019. To continue measuring and optimizing user engagement in your mobile apps, [migrate your implementation to use the Firebase SDKs](migrating). If you are using Google Analytics 360 you do not need to migrate. - - - - -#### Which Google destination should I use? - -If your Google Measurement ID starts with a G, you're using G-Codes from Google Analytics 4, and should consider using [Segment's Google Analytics 4 destination](/docs/connections/destinations/catalog/actions-google-analytics-4/). - -Although GA4 is now the default when you create a new property, you can still [create a Universal Analytics property](https://support.google.com/analytics/answer/10269537){:target="_blank"}. You can use a UA property with [Segment's Google Universal Analytics destination](/docs/connections/destinations/catalog/google-analytics/). - -Different Measurement IDs begin with different prefixes, which indicate which Google destination you should use. - -| Prefix | Google Account type | Segment Settings | -| ------ | -------------------------- | ----------------- | -| UA | Your global site tag is controlled by Google Universal Analytics. The ID is your Google Universal Analytics Measurement ID. To find the property associated with this ID, use the [account search feature](https://support.google.com/analytics/answer/6100731){:target="_blank"} in Google Universal Analytics. If the property doesn't appear, you probably don't have access to it. | [Google Universal Analytics](/docs/connections/destinations/catalog/google-analytics/): Tracking ID | -| G | Your global site tag is controlled by Google Analytics 4 (GA4). The ID is your Google Analytics Measurement ID. | [Google Analytics 4](/docs/connections/destinations/catalog/actions-google-analytics-4/): Measurement ID | -| AW | Your global site tag is controlled by Google Ads. The numeric string following the AW prefix is your Google Ads Conversion ID. | [Google Ads](/docs/connections/destinations/catalog/google-ads-gtag/): Google Conversion ID | -| DC | Your global site tag is controlled by a Floodlight tag. The numeric string following DC is your Advertiser ID. | [Floodlight](/docs/connections/destinations/catalog/doubleclick-floodlight/): DoubleClick Advertiser ID | -| other | Your global site tag is controlled by a different Google product or may be implemented incorrectly. Use the [Tag Assistant extension](https://support.google.com/tagassistant/answer/2947093){:target="_blank"} for Google Chrome to verify. | n/a | - - - -## Getting Started - -Segment supports Google Universal Analytics client-side and server-side tracking. -To use Google Universal Analytics for mobile devices, you must use [Google Firebase](/docs/connections/destinations/catalog/firebase/) instead of the original Google Universal Analytics destination. See the [migration guide](migrating/) for more instructions. - -When you enable the Google Universal Analytics destination in Segment: - -- Your changes appear in the Segment CDN in about 45 minutes, and then Analytics.js starts asynchronously loading Google Universal Analytics JavaScript library on your web page. **This means you should remove Google's snippet from your page.** - -- Your Google Universal Analytics real-time dashboard starts showing live, concurrent visitors. - -- Google Universal Analytics starts automatically collecting data on your site. It takes several hours for Google to process this data and add it to your reports, but you should still see events appear in the Google Universal Analytics real-time events dashboard. - -> info "Consent Mode" -> Google is enforcing consent starting March 6, 2024 for European Economic Area (EEA) users. Google Analytics won't be updated to support Consent Mode due to planned deprecation by Google. Segment recommends you to [migrate to Google Analytics 4](/docs/connections/destinations/catalog/actions-google-analytics-4/#migrating-from-universal-analytics-to-google-analytics-4) as soon as possible. - -> info "Classic tracking deprecated" -> These docs cover Google Analytics Universal features, since the [Classic tracking method has been depreciated](http://analytics.blogspot.com/2014/04/universal-analytics-out-of-beta-into.html){:target="_blank"}. - - -## Page and Screen - -When you make a [Page call](/docs/connections/spec/page/), Segment sends a `pageview` to Google Universal Analytics. You can send pageviews from the browser, or using any of the [Segment server libraries](/docs/connections/sources/catalog/#server). - -The resulting `page` event name in Google Universal Analytics corresponds to the `fullName` of the page event. `fullName` consists of a combination of the `category` and `name` parameters. For example, `analytics.page('Home');` produces a Page event called `Home` in the Google Universal Analytics dashboard, but `analytics.page('Retail Page', 'Home');` produces an event called `Retail Page Home`. - -When you send Page events from a server library you must include a `url` property, or else Google Universal Analytics silently rejects the Page event. - -If you send a [`screen`](/docs/connections/spec/screen) call using a server library, you must pass in an [application name](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#appName){:target="_blank"} using Segment's `context.app.name` object, or Google rejects your event. - - -### Virtual Pageviews - -Virtual pageviews are when you send a pageview to Google Universal Analytics when the page URL didn't actually change, for example when a full-screen modal dialog appears. You can do this with Segment by making a [Page call](/docs/connections/spec/page/) with optional properties, like in the following example. Include both the category and name, in addition to the properties. - -```javascript -analytics.page('Form', 'Signup Modal', { - title: 'Signup Modal', - url: 'https://segment.com/#signup', - path: '/#signup', - referrer: 'https://segment.com/' -}); -``` - - -### Including URL Query Strings - -By default Segment only sends the domain and path to Google Universal Analytics. For example, if someone views a page with the url `http://example.com/pagename/?xyz=123&r=5`, Segment sends `http://example.com/pagename/` to Google Universal Analytics as the URL. - -In some cases, for example if you're tracking search queries, you might want to include the whole URL including the query string to Google Universal Analytics. To do this, go to the Google Universal Analytics destination settings in the Segment App, navigate to the Advanced Options section, and check **Include the Query String in Pageviews**. - -## Identify - -It is against Google's terms of service to pass Personally Identifiable Information (PII) to the Google Universal Analytics reporting interface. For that reason Segment never passes anything from an [Identify call](/docs/connections/spec/identify/) to Google unless you specifically tell it to. You can read about Google's best practices for avoiding this [here](https://support.google.com/analytics/answer/6366371?hl=en){:target="_blank"}. - - -### User ID - -[Google Universal Analytics Universal tracking method](https://support.google.com/analytics/answer/3123663){:target="_blank"} allows you to set a user ID for your identified visitors. - -To use this feature you must [set up User-ID in your Google Universal Analytics property](https://support.google.com/analytics/answer/3123666){:target="_blank"} and create a User-ID view. - -To pass the `id` from your [Identify calls](/docs/connections/spec/identify) to Google Universal Analytics, go to the Google Universal Analytics destination settings in the Segment App, navigate to the Advanced Options section, and enable the **Send User-ID to GA** setting. - -An example call might look like the following: - -```javascript -analytics.identify('12345', { - email: 'jakep@example.com', - name: 'Jake Peterson' -}); -``` - -In this example set the `User-ID` to `12345` for Google Universal Analytics, but don't share the `email` or `name` traits with Google. - -If you are passing an **email**, **phone number**, **full name** or other PII as the `id` in an [Identify call](/docs/connections/spec/identify) do not use this feature. That is against the Google Universal Analytics terms of service and your account could be suspended. - - -### Custom Dimensions - -Google Universal Analytics has multiple scopes for each custom dimensions: hit (synonymous with events), session, user, product (which requires that enhanced ecommerce be enabled). Segment's device-mode [Analytics.js library](/docs/connections/sources/catalog/libraries/website/javascript/) supports all of them. - -#### Setting up Custom Dimensions -First, [configure the Custom Dimensions](https://support.google.com/analytics/answer/2709829?hl=en){:target="_blank"} from your Google Universal Analytics admin page. - -Once you finish this set up in Google Universal Analytics, you can map traits and properties to your custom dimensions. Go to the Google Universal Analytics destination settings in the Segment App and locate the **Custom Dimensions** setting. This is where you will enter your mapping. You can only map each trait or property to one Custom Dimension at a time. - -When you finish mapping dimensions and save the settings, Segment checks if the user traits and properties in [Identify](/docs/connections/spec/identify/), [Track](/docs/connections/spec/track/) and [Page](/docs/connections/spec/page/) calls are defined as a dimension. If they are defined in your mapping, Segment sends that dimension to Google Universal Analytics. - -In the server-side integration, you can opt-in to mapping top-level and `context` object fields to dimensions and metrics using the **Enable Mappings from Top-Level or Context Fields - Server Side Only** setting. If this setting is enabled, top-level and `context` object fields defined in the **Custom Dimensions** mapping and found in [Identify](/docs/connections/spec/identify/), [Track](/docs/connections/spec/track/), [Page](/docs/connections/spec/page/) and [Screen](/docs/connections/spec/screen) calls are sent to Google Universal Analytics. - -> info "" -> Traits in [Identify calls](/docs/connections/spec/identify) that map to Custom Dimensions are only recorded to Google Universal Analytics when the next [Track call](/docs/connections/spec/track) or [Page call](/docs/connections/spec/page) is fired from the browser. - -Continuing the example above, we can set the **Gender** trait with the value of **Male**, which maps to `dimension9`, and it will be passed to Google Universal Analytics _when we make the 'Viewed History' Track call_. - -You would make the following Identify call: -```js -analytics.identify({ - Gender: 'Male' -}); -``` - -And then the following Track call: -```javascript -analytics.track('Viewed History'); -``` - -### Server side Identify - -If you are sending Identify calls from your server libraries or have [Segment Cloud App sources](/docs/connections/sources/catalog/#cloud-apps) that send back Identify calls with enriched user traits, you can send that data to your GA account using custom dimensions and metrics. - -Unlike the device-mode destination which runs directly on the device, and which can use the browser and the global window `ga` tracker, in a server library implementation Segment checks your `traits`, then checks your settings for custom dimension or metric mappings, and then sends the Identify with an explicit event. - -You can specify what the event action should be called in the Google Universal Analytics settings. If you don't specify a name, Segment uses a default of event **'User Enriched'**. Since an event category is also required, you can specify which `trait` you want Segment to set this value to. For example, if you send a trait such as `type`, Segment sets the value of `traits.type` as the event category if defined, and if it is not, sets it to the default value **'All'**. - -> info "" -> **Note**: Segment marks enriched user trait events as a **Non-interaction** event. Non-interaction events are available if you're using Google Universal Analytics. - -### A/B Test Versions to Dimensions - -Segment makes it simple to save your A/B testing versions to custom dimensions in Google Universal Analytics by mapping an experiment to a custom dimension in the Google Universal Analytics destination settings. - -If you are using cloud-mode or server-side Google Universal Analytics destinations, you can also send this data automatically using the `experiment_id`, `experiment_name`, `variation_id`, and `variation_name` properties. If both an experiment and variation are defined, then this is sent automatically. Segment uses the ids before using the names. If both an ID and a name exist, Segment sends the ID first. For example, if you have an `experiment_id`, an `experiment_name`, and a `variation_name` in a call, only the `experiment_id` and `variation_name` are sent to Google Universal Analytics. - -When you have an active A/B test on a page, Segment either sets that experiment as a property or a user trait, depending on how you choose to send experiment data to other tools on your A/B testing tool's Segment settings page. The property or trait for A/B test experiments are labeled like the following examples: - -```javascript -'Experiment: EXPERIMENT_NAME': 'EXPERIMENT_VARIATION' -``` - -For example, if you have an experiment called **Home CTA** and a visitor sees a variation called **Create free account now**, Segment sets the following property or trait: - -```javascript -'Experiment: Home CTA': 'Create free account now' -``` - -To record that property or trait as a custom dimension you would map **Experiment: Home CTA** to a custom dimension, as in the following example: - -![a b test custom dimension mapping screenshot](images/ab-mapping.png) - -> success "" -> Remember to set up `dimension13` in your Google Universal Analytics Admin first, as described above. - -## Track - -Segment records a Google Universal Analytics event whenever you make a [Track call](/docs/connections/spec/track). You can see your events inside Google Universal Analytics under **Behavior** -> **Events** -> **Overview**. Keep reading for more details about the Google Universal Analytics event category, action, label, value and how to populate them. - -You can send events from the browser or your server. Here's a basic Track call example: - -```javascript -analytics.track('Logged In'); -``` - -For this example these event attributes are sent to Google Universal Analytics: - -| **Event Category** | All | -| **Event Action** | Logged In | - -> info "" -> **Note**: In device-mode only, if you pass `category` to the [`page`](/docs/connections/destinations/catalog/google-analytics/#page-and-screen) call, Segment will use the `category` from `page` instead of setting default **Event Category** to `All`. - -And another Track call example, this time with all Google Universal Analytics event parameters: - -{% comment %} api-example '{ - "userId": "12345", - "action": "track", - "event": "Logged In", - "properties": { - "category": "Account", - "label": "Premium", - "value": 50 - } -}'}}} {% endcomment %} - -```js -{ - "userId": "12345", - "action": "track", - "event": "Logged In", - "properties": { - "category": "Account", - "label": "Premium", - "value": 50 - } -} -``` - -That call creates a Google Universal Analytics event with these attributes: - -| **Event Category** | Account | -| **Event Action** | Logged In | -| **Event Label** | Premium | -| **Event Value** | 50 | - - -For **Event Value** you can name the event property `value` or `revenue`. Segment recommends that you use `value` for client-side tracking and `revenue` for more accurate server-side revenue tracking. Calling it `revenue` is best if the event made you money directly. That way Segment can also pass the revenue data to other destinations you enable. - - -### Non-interaction Events - -Google Universal Analytics allows you to tag some events as ["non-interaction" events](https://support.google.com/analytics/answer/1033068#NonInteractionEvents){:target="_blank"}. To create an event with the `nonInteraction` flag, pass Segment an event property labeled `nonInteraction` with the value of `1`. You can also set all events to be non-interactive by default in the Advanced Options. - -Here's an example: - -{% comment %} api-example '{ - "action": "track", - "event": "Viewed Legal Info", - "properties": { - "nonInteraction": 1 - } -}'}}} {% endcomment %} - -```json -{ - "action": "track", - "event": "Viewed Legal Info", - "properties": { - "nonInteraction": 1 - } -} -``` - -> info "" -> Enhanced ecommerce events cannot be tagged with the `nonInteraction` flag or Advanced Options. Instead, in device-mode, Segment marks all enhanced ecommerce events as **Non-interaction** events. When you use cloud-mode or server-side, Segment marks the `Order Refunded`, `Promotion Viewed`, `Promotion Clicked`, `Product List Viewed`, and `Product List Filtered` enhanced ecommerce events as **Non-interaction** events. All other enhanced ecommerce events do not include a non-interaction flag. - -## Enabling E-Commerce tracking - -Segment supports Google Universal Analytics basic e-commerce tracking across all libraries. Follow the [E-commerce tracking spec](/docs/connections/spec/ecommerce/v2/) and Segment records the appropriate data to Google Universal Analytics. - -Before you begin, enable Ecommerce tracking for the view you want to track transactions to. You can do this in Google Universal Analytics by navigating to **Admin > View Settings** and switching the **Ecommerce Settings** switch to ON. - -Transactions do not appear in your reports until you enable this setting. - -All [Ecommerce spec events](/docs/connections/spec/ecommerce/v2/) are recommended, but not required. The only required event is `Order Completed`. For each order completed you must include an `orderId`, and for each product inside that order, you must include an `id` and `name` for each product. **All other properties are optional**. - - -## Enabling Enhanced E-Commerce tracking - -Segment supports Google Universal Analytics Enhanced E-Commerce tracking across both device-mode (Analytics.js, Analytics-android, Analytics-ios) and cloud-mode sources. Enhanced Ecommerce allows you to combine impression data, product data, promotion data, and action data. This is required for product-scoped custom dimensions. - -To get started, enable enhanced ecommerce in Google Universal Analytics and use the standard [Ecommerce tracking spec](/docs/connections/spec/ecommerce/v2/), and Segment records the data to Google Universal Analytics formatted using their enhanced ecommerce API. - -Before you begin, enable Ecommerce tracking for the view you want to track transactions in. You can do this in Google Universal Analytics by navigating to **Admin > View Settings** and switching the **Ecommerce Settings** switch to ON. - -Next, go to your Google Universal Analytics destination settings in the Segment App, and enable **Enhanced Ecommerce**. - -Similar to regular e-commerce, the only required event is `Order Completed`. This call also must include an `orderId` and an array of products, each containing an `id` or `name`. - -For all events that include product details, you must pass either `name` or `product_id`. For `product_id` Segment defaults to `properties.product_id` and fallback to `properties.sku`. - -**All other properties are optional**. The Refunded Order event also requires an `orderId`. - -> warning "" -> **Note**: Segment's Android SDK v2.0.0 does not support `properties.sku` since no mapping to this property is available in Google's latest SDK. Instead, pass this as a `product_id`. - - -### Measuring Checkout Steps - -To take get the most out of the Enhanced E-commerce features, you should implement some specific events. The biggest difference between "e-commerce" and "enhanced e-commerce" is support for checkout steps. To track your checkout funnel and measure metrics like cart abandonment, etc, you must first configure your checkout funnel in the Google Universal Analytics admin interface to give each checkout step an easily readable label.: - -![enhanced ecommerce checkout funnel](images/checkout-funnel.png) - -Next, add `Viewed Checkout Step` and `Completed Checkout Step` events to your checkout flow for each step of the funnel you set up in Google Universal Analytics. Make sure you pass the step number and step-specific options as a property of those events, as in the examples below. - -The example below shows two Track calls: one for when the user first arrives at the first checkout step, and one for when they complete it. These correspond to the "Review Cart" funnel step in the example image above. - -```js -//upon arrival at first checkout step ('Review Cart' per the screenshot example above) -analytics.track('Viewed Checkout Step', { - step: 1 -}); - -//upon completion of first checkout step ('Review Cart') -analytics.track('Completed Checkout Step', { - step: 1 -}); -``` - -Next, are two Track calls for entering and exiting the second step of the funnel, "Collect Payment Info". -```js -//upon arrival at second checkout step ('Collect Payment Info' per the screenshot example above) -analytics.track('Viewed Checkout Step', { - step: 2 -}); - -//upon completion of this checkout step ('Collect Payment Info') -analytics.track('Completed Checkout Step', { - step: 2, -//if this is the shipping step - shippingMethod: 'FedEx', -//if this is the payment step - paymentMethod: 'Visa' -}); -``` - -The next four examples are similar, for the additional two steps in the checkout flow. By instrumenting these, you can tell where a user leaves the checkout process. - -```js -//upon arrival at third checkout step ('Confirm Purchase Details' per the screenshot example above) -analytics.track('Viewed Checkout Step', { - step: 3 -}); - -//upon completion of third checkout step ('Confirm Purchase Details') -analytics.track('Completed Checkout Step', { - step: 3, -//you will need to provide either an empty shippingMethod or paymentMethod for the event to send. - shippingMethod: '' // or paymentMethod: '' -}); - -//upon arrival at fourth checkout step ('Receipt' per the screenshot example above) -analytics.track('Viewed Checkout Step', { - step: 4 -}); - -//upon completion of fourth checkout step ('Receipt') -analytics.track('Completed Checkout Step', { - step: 4, -//you will need to provide either an empty shippingMethod or paymentMethod for the event to send. - shippingMethod: '' // or paymentMethod: '' -}); -``` - -> info "" -> **Note**: Both `shippingMethod` and `paymentMethod` are semantic properties and part of the [Ecommerce spec](/docs/connections/spec/ecommerce/v2/). Use the exact spelling if you want to send these properties. - -The four steps above are only an example, and you can create as many steps in your funnel as you need. You still must track the `Order Completed` event per the standard [Ecommerce tracking spec](/docs/connections/spec/ecommerce/v2/) after you've tracked the checkout steps. - -For client-side integrations we use Google Universal Analytics' `ProductAction` class to track Checkout Steps and Options. You can read the Google Universal Analytics developer docs for information on specific methods: - - - -- [Analytics.js - Enhanced E-Commerce](https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-ecommerce){:target="_blank"} -- [Analytics.js - E-Commerce](https://developers.google.com/analytics/devguides/collection/analyticsjs/ecommerce){:target="_blank"} - -### Measuring Promotions - -Enhanced Ecommerce allows you to measure the internal and external marketing efforts that support your sales. To use Enhanced Ecommerce's promotion reports, collect data about promotion impressions and promotion clicks with Analytics.js, like in the following examples: - -```js -analytics.track('Viewed Promotion', { - id: , - name: , - creative: , // optional - position: // optional -}); -``` - -```js -analytics.track('Clicked Promotion', { - id: , - name: , - creative: , // optional - position: // optional -}); -``` - -For client-side integrations, we use Google Universal Analytics' Promotions class to measure promotions. You can read their developer docs for information on specific methods: - - - -- [Analytics.js - Enhanced E-Commerce](https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-ecommerce){:target="_blank"} -- [Analytics.js - E-Commerce](https://developers.google.com/analytics/devguides/collection/analyticsjs/ecommerce){:target="_blank"} - -### Coupons - -To send coupon data to your `Order Completed` event when using Enhanced E-commerce, you can add the `coupon` property on the order level, or the product level, or both. In the example below, the Segment Google Universal Analytics Ecommerce destination accepts `total` *or* `revenue`, but not both. We recommend that you use `revenue` for compatibility with several other destinations that also use the term `revenue`. - -For better flexibility and total control over tracking, Segment lets you decide how to calculate how coupons and discounts are applied. For example: - - -```js -analytics.track({ - userId: '019mr8mf4r', - event: 'Order Completed', - properties: { - orderId: '50314b8e9bcf000000000000', - total: 27.5, - shipping: 3, - tax: 2, - discount: 2.5, - coupon: 'hasbros', - currency: 'USD', - repeat: true, - products: [ - { - id: '507f1f77bcf86cd799439011', - sku: '45790-32', - name: 'Monopoly: 3rd Edition', - price: 19, - quantity: 1, - category: 'Games', - coupon: '15%OFF' - }, - { - id: '505bd76785ebb509fc183733', - sku: '46493-32', - name: 'Uno Card Game', - price: 3, - quantity: 2, - category: 'Games', - coupon: '20%OFF' - } - ] - } -}); -``` - -### Measuring Product Impressions - -Enhanced Ecommerce also allows you to collect impression information from users who have viewed or filtered through lists containing products. This allows you to collect information about which products have been viewed in a list, which filters or sorts they applied to a list of results, and the positions of each product within that list. - -Product impressions are mapped to the 'Product List Viewed' and 'Product List Filtered' Analytics.js events. You can find more information about the parameters and requirements here in the [Ecommerce tracking spec](/docs/connections/spec/ecommerce/v2/). - -Analytics.js allows you to easily collect and send this data, like in the examples below: - - -```js -analytics.track('Product List Viewed', { - category: 'cat 1', - list_id: '1234', - products: [ - { - product_id: '507f1f77bcf86cd799439011', - sku: '45790-32', - name: 'Monopoly: 3rd Edition', - price: 19, - category: 'Games' - } - ] -}); -``` - -```js -analytics.track('Product List Filtered', { - category: 'cat 1', - list_id: '1234', - filters: [ - { - type: 'department', - value: 'beauty' - }, - { - type: 'price', - value: 'under' - }], - sorts:[ { - type: 'price', - value: 'desc' - }], - products: [ - { - product_id: '507f1f77bcf86cd799439011', - sku: '45790-32', - name: 'Monopoly: 3rd Edition', - price: 19, - category: 'Games' - } - ] -}); -``` - -> success "" -> **Tip:** To tie product clicks and views to the same Product List Name in Google Universal Analytics, include a `list` property in your 'Product Viewed' and 'Product Clicked' events. The value in the `list` property should match the value in the `list_id` property for the corresponding 'Product List Viewed' and 'Product List Filtered' events. - -### Refunds - -To view refund in Google Universal Analytics, you must have enhanced e-commerce enabled. - -For full refunds, you can send this event when an order or transaction is refunded: - -```js -analytics.track('Order Refunded', { - order_id: '50314b8e9bcf000000000000', - }); -``` - -For partial refunds, you must include the `order_id` as well as the `productId` and `quantity` for the items refunded: - -```js -analytics.track('Order Refunded', { - order_id: '50314b8e9bcf000000000000', - products: [ - { - product_id: '123abc', - quantity: 200 - } - ] - }); -``` - - -## Server Side - -When you track an event or pageview with one of the server-side libraries or [HTTP API](/docs/connections/sources/catalog/libraries/server/http/) Segment sends it to the Google Universal Analytics REST API. - -**You must include a server-side tracking ID in your Google Universal Analytics destination settings or else Segment cannot pass server-side events to Google Universal Analytics.** The tracking ID can be the same UA code as your regular property ID, or you can choose to send the server-side events to a separate Google Universal Analytics property. - - -### Combining Server-side and Client-side Events - -Google Universal Analytics uses cookies to keep track of visitors and their sessions while visiting your website. The cookie data is stored in the visitor's browser, and is sent along to Google Universal Analytics every time a new pageview or event occurs. This allows Google Universal Analytics to show a single unique visitor between multiple page reloads. - -Your servers also have access to this cookie, so they can re-use it when you send server-side events to Segment. If you don't use the existing cookie Segment has to create a new one to make the server-side request to Google Universal Analytics. When we create a new cookie the client-side and server-side events from the same user will look like two distinct visitors in Google Universal Analytics. - -To use server-side Google Universal Analytics, there are three options with Segment: - -1. **Pass your Google Universal Analytics cookies to Segment (preferred).** -2. Use two Google Universal Analytics profiles: one for client-side data and one for server-side data. -3. Ignore the additional visitors generated by not passing the cookie. - - -### Passing Cookies from Universal Analytics - -> info " " -> When you add `Google Universal Analytics` to the `integrations` object, the Google Universal Analytics event appears in the Segment debugger as `Google Analytics`. - -Universal Analytics (analytics.js) uses the [`clientId`](https://developers.google.com/analytics/devguides/collection/analyticsjs/cookie-usage#analyticsjs){:target="_blank"} to keep track of unique visitors. - - -*A Google Analytics Universal cookie will look like this:* -``` -_ga=GA1.2.1033501218.1368477899; -``` - -The `clientId` is this part: `1033501218.1368477899` - -You can double check that it's your `clientId` by running this script in your JavaScript console: - -```javascript -ga(function (tracker) { - var clientId = tracker.get('clientId'); - console.log('My GA universal client ID is: ' + clientId); -}); -``` - -If you want the server-side destination to use your user's `clientId`, pass it to us in the `integrations['Google Universal Analytics'].clientId` object. You must pass this value manually on every call as we do not store this value for you. - -*Here's a Ruby example:* -```ruby -Analytics.track( - user_id: '019mr8mf4r', - event: 'Clicked a Link', - properties: { - linkText : 'Next' - }, - integrations: { - 'Google Universal Analytics' => { - clientId: '1033501218.1368477899' - } - } -) -``` - -If you do not pass `integrations['Google Universal Analytics'].clientId`, we look for the `userId` or `anonymousId` value and set the hashed value of either `userId` or `anonymousId` as the `cid`. By default, we prioritize `userId` over `anonymousId` which may have implications for reports that tie anonymous-to-known user behavior. In those cases, you can choose to prioritize `anonymousId` by enabling the **Prefer Anonymous ID for Client ID - Server Side Only** setting. - - -### User Agent - -By default, we won't set the `user-agent` header. If you have your user's `user-agent` server-side, you can send it to us using the `context` object. The `context` object is an optional argument supported by all server-side sources. - -Here's a Ruby example: - -```ruby -Analytics.track( - user_id: '019mr8mf4r', - event: 'Loaded a Page', - properties: { - url: 'http://example.com/pricing' - }, - context: { - user_agent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17' - } -) -``` - - -### Visitor Geo-Location - -Google Universal Analytics uses the IP address of the HTTP request to determine the location of the visitor. This happens automatically for client-side tracking, but takes a little more work for server-side calls. - -For geo-location to work from a server-side call you'll need to include the visitor's `ip` in your `.track()` call. - -*Here's a Ruby example:* -```ruby -Analytics.track( - user_id: '019mr8mf4r', - event: 'Purchased Item', - properties: { revenue: 39.95 } - context: { ip: '11.1.11.11' }) -``` - - -### UTM Parameters - -If you want to send UTM parameters to Google Universal Analytics using one of the Segment server-side sources they need to be passed manually. The client-side Javascript library ([Analytics.js](/docs/connections/sources/catalog/libraries/website/javascript)) is highly recommended for collecting this data since it all happens automatically. - -Your UTM params need to be passed in the `context` object in `context.campaign`. For Google Universal Analytics `campaign.name`, `campaign.source` and `campaign.medium` all need to be sent together for things to show up in reports. The `campaign.content` param is optional, but will be forwarded to GA if you send it to Segment. - -### Measurement Protocol Parameters - -Google Universal Analytics uses a reserved set of [Measurement Protocol Parameters](https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters){:target="_blank"} which are automatically collected by the device-mode Google Universal Analytics tracker. - -To include Measurement Protocol Parameters when sending server-side events to Google Universal Analytics: - -1. Collect the value of the parameter as a Segment trait or property -2. Configure the Segment Google Universal Analytics destination to [map the trait or property](#map-traits-or-properties-to-measurement-protocol-params) to a specific Measurement Protocol Parameter key - -Segment supports the `plt`, `pdt`, `gclid`, `dt`, and `cid` Measurement Protocol Parameters. - - -## Features - -Segment supports the following Google Universal Analytics features. - -- [Client-side (Analytics.js) library methods](#client-side-library-methods) -- [Anonymize IP Address](#anonymize-ip-address) -- [Consent Mode](#consent-mode) -- [Cookie Domain Name](#cookie-domain-name) -- [Custom Dimensions](#custom-dimensions) -- [Cross-domain Tracking](#cross-domain-tracking) -- [Ecommerce Transactions](#enabling-e-commerce-tracking) -- [Events](#track) -- [Ignored Referrers](#ignored-referrers) -- [Multiple Trackers](#multiple-trackers) -- [Query strings in Pageview](#including-url-query-strings) -- [Remarketing](#remarketing) (Demographics & Interest Reports) -- [Server-Side Tracking](#server-side) -- [Site Search](#site-search) -- [User-ID](#user-id) -- [Virtual Pageviews](#virtual-pageviews) -- [Optimize](#optimize) -- [User Deletion](#user-deletion) - -> success "" -> In general, Segment's Google Universal Analytics destination supports Google Analytics Universal features, and does not support the deprecated Google Analytics Classic features. - -### Client-Side Library Methods - -Because Segment's client-side snippet wraps Google Universal Analytics's Javascript, all GA library methods that don't map to Segment methods are available client side. Although invoking a native library method won't send data to Segment or other Segment-enabled destinations, the method *will* send data to Google Universal Analytics. - -To access Google Universal Analytics methods while using Segment, write these methods inside an `analytics.ready()` function, for example: - -```javascript -analytics.ready(function(){ - // GA library methods here -}) -``` - - -### Anonymize IP Address - -Check the box in the Advanced Options for Google Universal Analytics inside of Segment. - - -### Remarketing - -Google's remarketing (The remarketing tag formerly known as Doubleclick) is used to tag visitors for remarketing campaigns. It is also used to identify demographic and interest data on visitors that is displayed in Demographic & Interest reports inside of Google Universal Analytics. - -Turn this feature on by checking the box in your Google Universal Analytics destination settings. - -Since remarketing is loaded through Segment Google Universal Analytics will not be able to validate that the code is present on the page. Just click **Skip validation** and your data will start showing up within a few hours. - - -### Across Sub-domains - -This works automatically if you're using the Universal tracking method. To track across sub-domains we recommend upgrading to universal if you haven't already. - -If you need to set a specific domain name keep reading :) - - -### Multiple Trackers - -Although Segment does not support loading multiple trackers through the destinations settings page (you will probably run into Google Universal Analytics's [rate limits](https://developers.google.com/analytics/devguides/collection/ios/v3/limits-quotas?hl=en){:target="_blank"}), you can load a 2nd tracker on the page manually. - -Here's how you'd initialize the second tracker and send a pageview to the second tracker Google Universal Analytics property: - -```javascript -analytics.ready(function(){ - ga('create', 'UA-XXXXX-Y', 'auto', {'name': 'secondTracker'}); - ga('secondTracker.send', 'pageview'); -}) -``` - -*Note*: Make sure this script is placed after your Segment snippet, ideally at the end of the head tag. - -After you create the second tracker, you probably want to use the `.on()` emitter to automatically send data to this separate Google Universal Analytics instance based on when you make other Segment calls. - -The below code would trigger an event to Google Universal Analytics when you make a Segment track call. - -```javascript -analytics.on('track', function(event, properties, options){ - // custom logic based on event properties - ga('secondTracker.send', { - hitType: 'event', - eventCategory: properties.category || 'All', - eventAction: event, - eventLabel: properties.label || 'All' - }) -}); -``` - -**Important**: Keep in mind you will need to do all the data translation/properties mapping inside this `.on()` function before you send the event to Google Universal Analytics like you see in the [destination code](https://github.com/segment-integrations/analytics.js-integration-google-analytics/blob/master/lib/index.js#L161-L207){:target="_blank"}. - -To do this server side, you can create a separate [source](/docs/connections/sources/) in Segment, and within this source enter your GA credentials for the second tracker. - -This source can be your server-side source. From there, its easy to send data to multiple projects server-side, as you can see in this [Node example](/docs/connections/sources/catalog/libraries/server/node/#multiple-clients) you can initialize multiple instances of the library. - -### Consent Mode - -Segment does not support Google's [Consent Mode](https://support.google.com/analytics/answer/9976101?hl=en){:target="_blank"} feature. Consent Mode enables you to adjust how Google's tags load on your site, based on whether users consent to your use of cookies. This feature requires Google's gtag.js library, and does not work when you use Segment's Google Universal Analytics destination, because it loads [Google's analytics.js library](https://support.google.com/analytics/answer/7476135?hl=en#zippy=%2Cin-this-article){:target="blank"} instead of the gtag.js library. - -### Cookie Domain Name - -The Google Universal Analytics **Cookie Domain Name** setting allows you to specify the domain that the `_ga` cookie will be set on. By default the cookie is placed on the top level domain: `domain.com`. - -We default the **Cookie Domain Name** to `auto`, which automatically sets the cookie at the root domain level, which allows you to track across multiple sub-domains, but does not work on `localhost`. You can find this setting in your Google Universal Analytics destination settings. - -If you need to test on `localhost`, but don't need to track between multiple sub-domains, then you can set the domain to `none`. - -If you only want the cookie to persist on a single sub-domain, enter that sub-domain in the **Cookie Domain Name** field, like this: `swingline.example.com`. In this case visitors to `conclusions.example.com` or `example.com` will not be tracked. - -For more information on Google Universal Analytics cookies and domains name see [Google's docs on the subject](https://developers.google.com/analytics/devguides/collection/analyticsjs/domains){:target="_blank"}. - - -### Cross-Domain Tracking - -Segment supports Google Universal Analytics tracking across multiple top level domains, but it requires a bit of work from you. There are two ways to track visitors across domains. - - -#### Tracking Visitors with User-ID - -If you're identifying your users with a [User-ID](#user-id) cross-domain tracking becomes simple. All you have to do is make sure you identify your users on each domain and Google will merge those users together as one. - -The only problem with this approach is that it only works for identified users, anonymous visitor sessions will not be maintained across domains. - - -#### Tracking Anonymous Visitors - -When a visitor comes to your website, `domain1.com`, Google Universal Analytics sets a first-party cookie that represents that user. That cookie looks like `182119591.1441315536`, and is tied to `domain1.com` (making it a first party cookie). - -When your visitor clicks a link to go another domain, let's say `domain2.com`, you'll need to tell the new site about the `domain1.com` cookie. This is done by rewriting your `domain2.com` links to include this `domain1.com` cookie, like so: - -```html -http://company2.com?_ga=1.182119591.1441315536.1362115890410 -``` - -Luckily, Google Universal Analytics provides an auto-linking plugin to make this easier. To access the `ga` methods while using Segment they must be inside an `analytics.ready()` function, which should appear after your basic Segment snippet, like this: - -```javascript -analytics.ready(function () { - ga('require', 'linker'); - ga('linker:autoLink', ['company2.com']); -}); -``` - -To make things easy Segment enables `allowLinker` by default so all you need to do is run these two functions with any domains you want to track across to in the second call above. - -You'll have to send the `clientId` as described in the [Google Universal Analytics Domain Guide](https://developers.google.com/analytics/devguides/collection/analyticsjs/cross-domain){:target="_blank"} to get this setup. - - -### Site Search - -In order to populate the Site Search report in Google Universal Analytics there are a few you need to do... - -1. When someone searches on your site, the search term they used must be added to the URL query, like this: `domain.com?s=coconuts`. The key ("s" in this case) can be any letter or string of letters. - -2. In your Segment source destinations catalog open the Google Universal Analytics settings, click to the Advanced Options tab, scroll down and make sure the box is checked for **Include the Querystring in Page Views**. - -3. Inside Google Universal Analytics, go to the **Admin** section, then click **View Settings** for the view you want to add Site Search to. Turn on **Site search Tracking** and enter the string from #1 into the Query parameter field. In this example it'd look like this: - -![Google Universal Analytics site search form](images/site-search.png) - - -### Webmaster Tools - -When you use Segment to load Google Universal Analytics, the script loads the Google Universal Analytics script. If you use [Google Universal Analytics as the verification option](https://support.google.com/webmasters/answer/1120006?hl=en){:target="_blank"} in Google Webmaster Tools, you'll need to switch to the [Meta tags verification option](https://support.google.com/webmasters/answer/79812?hl=en){:target="_blank"} instead. This will require you to find the `` tag in Webmaster Tools and place it in your master HTML template. - - -### Cannonical Urls - -Segment tracks the canonical URL and automatically sends it to Google Universal Analytics for you. As long as there is a `` tag on your page, we'll make sure Google Universal Analytics gets the right canonical URL from it. - -### Optimize - -> info "" -> You can only use this feature in device-mode. - -To integrate with the Google Universal Analytics [Optimize plugin](https://support.google.com/360suite/optimize/answer/6262084#optimize-ga-plugin){:target="_blank"}, insert your Optimize **Container ID** in your destination settings. Segment adds the plugin when Analytics.js next initializes the Google Universal Analytics snippet. - -> warning "" -> Make sure your Container ID is spelled correctly and that your Optimize container is ENABLED in Google. If you don't enable this, your Google Universal Analytics destination silently errors out every time you make a call. - -Google recommends that you deploy [page hiding](https://support.google.com/360suite/optimize/answer/6262084#page-hiding){:target="_blank"} to prevent the page from flashing or flickering when an A/B test loads. You must add this code manually, since it needs to load synchronously. Note that you must include the Optimize container ID in the page hiding snippet too. - -### User Deletion - -You can use Segment's in-app Privacy Tool to send deletion requests using `userId`s. This deletes a user from your connected raw Data Destinations and forwards a deletion request to Google Universal Analytics. [See the Privacy Tools documentation](/docs/privacy/user-deletion-and-suppression/) to learn more. - -To enable user deletion for Google Universal Analytics: -1. Navigate to the the **User Deletion** setting in your Segment Google Universal Analytics destination settings -2. Authenticate your Google Universal Analytics account using OAuth. - -> info "" -> **NOTE:** Segment supports user deletion for Google Universal Analytics in Universal Analytics and not Classic Analytics. You can send user deletion requests using a `userId` through the Privacy Tool. This means you must have the User-Id feature enabled in your Google Universal Analytics Property within your Google Universal Analytics dashboard and have Segment sending your Property `userIds` by enabling the setting **Send User-ID to GA**. - - - -## Troubleshooting - -### Metrics vs. Dimensions - -They both allow you to track custom data properties in Google Universal Analytics. However, Metrics are for event properties with a numeric data type and Dimensions are for event properties with a string data type. - - -### Real-Time Reports - -Google Universal Analytics doesn't process their data in real-time in most of their reports. The easiest way to see if the data is streaming in is to check the Real-Time reports inside Google Universal Analytics. - -If you see events in your real-time reports, but they never show up in other reports that is usually due to a filter you have applied. You can see your active filters inside Google Universal Analytics by clicking on **Admin** then under your View on the right click on **Filters**. - - -### Self Referrals - -This article does a great job of explaining GA self referrals and how to fix them: https://threeventures.com/how-to-fix-self-referrals-in-google-analytics/ - - -### Time Frame - -Google Universal Analytics's default reporting time frame is a month ago to yesterday. You'll need to adjust it from a month ago to today's date to see today's already processed events. - - -### HTTPS - -If your site uses `https://`, go to your Google Universal Analytics property settings page and change your **Site URL** to use the `https://` protocol. - - -### Bounce Rates - -Using Segment won't affect your bounce rates in Google Universal Analytics. - -If you see your bounce rates drop after installing Segment make sure you don't have multiple copies of the snippet on your page. Also be sure you're not calling `page` more than once when the page loads. - -If you call `track` on page load make sure to set `nonInteraction` to `1`. You can also set all events to be non-interactive by default in Advanced Options. Read more in the [non-interaction events](#non-interaction-events) docs. - - -### Traffic from Boardman or Segmentio Browser - -If you are seeing traffic from Boardman or see Segment as the browser, this is most likely because you are sending calls to Google Universal Analytics from the **server side** (our AWS servers reside in Boardman, Oregon). In order to prevent the Boardman issue, you would have to manually pass the `IP` information in the `context` object from the server. - -Here is an example: - -```ruby -Analytics.track( - user_id: '507f191e810c19729de860ea', - event: 'Visited Agency Profile', - properties: { name: 'Ram Estate Agent', favorite_color: 'blue' }, - context: { ip: '127.0.0.1' } -) -``` - -To prevent the Segment as the browser issue, you want to manually pass in the `user_agent`: - -```ruby -Analytics.track( - user_id: '507f191e810c19729de860ea', - event: 'Visited Agency Profile', - properties: { name: 'Ram Estate Agent', favorite_color: 'blue' }, - context: { user_agent: 'some user-agent' } -) -``` diff --git a/src/connections/destinations/catalog/google-analytics/migrating.md b/src/connections/destinations/catalog/google-analytics/migrating.md deleted file mode 100644 index c019ab827b..0000000000 --- a/src/connections/destinations/catalog/google-analytics/migrating.md +++ /dev/null @@ -1,126 +0,0 @@ ---- -title: Migrating mobile analytics from Google Analytics to Firebase -strat: google -hidden: true ---- - -Previously, you could use Segment's Google Analytics mobile SDKs to measure and optimize user engagement with your mobile-apps. On [October 31st 2019, Google sunset the Google Analytics mobile-apps reporting](https://support.google.com/firebase/answer/9167112?hl=en){:target="_blank"} using the Google Analytics Services SDKs for both Android and iOS. This means all data collection and processing stopped for properties that received data from the Google Analytics Service SDK for mobile apps. Google deprecated Google Analytics in favor of its new [Firebase SDKs](/docs/connections/destinations/catalog/firebase/). - -The following tutorial explains how to migrate your mobile analytics from Google Analytics to Firebase. - - -### Is Segment removing the Google Analytics Destination? - -Segment is choosing not to remove the Google Analytics mobile SDKs from the catalog to help you with any outstanding migration tasks. However, these SDKs are deprecated and stopped functioning when Google deprecated the original Google Analytics service. - -### Can Segment convert my data for me? - -You might wonder why Segment can't just send your Google Analytics events in cloud-mode from your mobile applications. We confirmed that Google identified the customers who are impacted by the Google Analytics sunset plan, flagged those accounts, and sent deprecation notices. - -If you received this deprecation notice, your property has already been flagged for deprecation - so sending events cloud-mode won't make Google Analytics collect and process that data after October 31st, 2019. - - -## Getting Started with Firebase - -For more detailed information for each of the classes and methods in the Firebase SDK by platform visit the [Firebase Analytics SDK documentation](https://firebase.google.com/docs/reference){:target="_blank"}. - -#### Installing the iOS SDK -For information on how to add the Segment-Firebase SDK and register the dependency with the Segment SDK visit [Segment's Firebase for iOS](/docs/connections/destinations/catalog/firebase/#ios) documentation. - -#### Installing the Android SDK -For information on how to add the Segment-Firebase SDK and apply the Google Services plugin visit [Segment's Firebase for Android](/docs/connections/destinations/catalog/firebase/#android) documentation. - - -## Comparing Google Analytics and Firebase Functionality - -| **Google Analytics Functionality** | **Firebase Functionality** | **Supported?** | -| ----------------------------------------------- | ---------------------------------------------------------------------------------------------- | --------------- | -| Enable/disable anonymize (obfuscate) device IP. | Enforced in Firebase. | ✅ | -| Automatic reporting of uncaught exceptions . | Use [Crashlytics](https://firebase.google.com/docs/crashlytics/get-started){:target="_blank"}. | ✅ | -| Report when Android Activity starts and stops. | On Activity Resumed, we set the current screen. | ✅ | - -## Migrating Screen Calls - -Segment's Google Analytics SDK sends a screen view to Google Analytics for mobile apps when you call `screen` in your mobile app. For Segment's Android GA SDK, Segment sends a hit on product events on Screen calls that use the screen name as the event name for `Product *:` formatted screen names. - -The Firebase SDK collects screen information automatically, so when you migrate to Segment's Firebase Analytics SDK, Segment no longer needs to map screen events. - -For Android, Segment passes contextual screen information into each screen view on each activity's `onResume` callback. Segment recommends that you add a `label` value to each activity in your app's `AndroidManifest.xml` file to make sure this screen information is not lost. At the time of this writing, Firebase does not allow you to disable automatic screen tracking for Android. - -For iOS, you can configure `recordScreenViews` (which automatically tracks screen views), or pass in a screen manually using a [screen](/docs/connections/spec/screen/) call. You can disable Automatic Screen reporting by adding the plist flag `FirebaseScreenReportingEnabled` to `Info.plist` and set its value to `NO` (Boolean). - -To send product events in the Firebase SDK you must invoke a track call separately from the screen call. - - -## Migrating Identify Calls - -Previously, if you used Google Analytics on Identify calls, Segment only passed the ID of the call, because passing PII is against the Google Analytics Terms of Service. To pass additional user properties to Google Analytics you had to define custom dimensions and metrics within the Google Analytics UI. - -The Firebase Terms of Service also prohibits you from passing PII, however on an Identify call Segment sends all user traits in an Identify payload to Firebase as user properties. To use these in analytics tooling these user properties must be configured in your Firebase console. - -If you were previously relying on Segment to strip this PII from your calls, you must re-route or remove this information from your tracking implementation. - -Firebase Analytics supports sending up to 25 user properties. Once set, user property values persist throughout the app lifecycle and across sessions. The following user property names are reserved and cannot be used: `first_open_time`, `last_deep_link_referrer`, and `user_id`. - -## Migrating Track Calls - -Segment's Google Analytics Mobile SDKs record an event whenever you make a `.track()` call. The events can be generated with an `action`, `category`, `label`, and `value`. You can also set additional custom dimensions and metrics from your payload properties. - -When migrating to Segment's Firebase Analytics SDK the following Segment events are mapped to FirebaseAnalytics events: - -| **Segment Event** | **Android Firebase Events** | **iOS Firebase Events** | -| --------------------------- | --------------------------- | ---------------------------- | -| `Product Added` | `Event.ADD_TO_CART` | `kFIREventAddToCart` | -| `Checkout Started` | `Event.BEGIN_CHECKOUT` | `kFIREventBeginCheckout` | -| `Order Completed` | `Event.ECOMMERCE_PURCHASE` | `kFIREventEcommercePurchase` | -| `Order Refunded` | `Event.PURCHASE_REFUND` | `kFIREventPurchaseRefund` | -| `Product Viewed` | `Event.VIEW_ITEM` | `kFIREventViewItem` | -| `Product List Viewed` | `Event.VIEW_ITEM_LIST` | `kFIREventViewItemList` | -| `Payment Info Entered` | `Event.ADD_PAYMENT_INFO` | `kFIREventAddPaymentInfo` | -| `Promotion Viewed` | `Event.PRESENT_OFFER` | `kFIREventPresentOffer` | -| `Product Added to Wishlist` | `Event.ADD_TO_WISHLIST` | `kFIREventAddToWishlist` | -| `Product Shared` | `Event.SHARE` | `kFIREventShare` | -| `Product Clicked` | `Event.SELECT_CONTENT` | `kFIREventSelectContent` | -| `Product Searched` | `Event.SEARCH` | `kFIREventSearch` | - - -> note "" -> **Note**: Google Analytics supported mapping `Product Removed` to Google Analytics `Product.ACTION_REMOVED`. This event is not mapped in the Segment Firebase mobile SDKs and will be sent as a custom event. - -The following Segment properties are mapped to Firebase Analytics properties: - -| **Segment Property** | **Android Firebase Property** | **iOS Firebase Property** | -| -------------------- | ----------------------------- | ---------------------------- | -| `category` | `Param.ITEM_CATEGORY` | `kFIRParameterItemCategory` | -| `product_id` | `Param.ITEM_ID` | `kFIRParameterItemID` | -| `name` | `Param.ITEM_NAME` | `kFIRParameterItemName` | -| `price` | `Param.PRICE` | `kFIRParameterPrice` | -| `quantity` | `Param.QUANTITY` | `kFIRParameterQuantity` | -| `query` | `Param.SEARCH_TERM` | `kFIRParameterSearchTerm` | -| `shipping` | `Param.SHIPPING` | `kFIRParameterShipping` | -| `tax` | `Param.TAX` | `kFIRParameterTax` | -| `total` | `Param.VALUE` | `kFIRParameterValue` | -| `revenu``e` | `Param.VALUE` | `kFIRParameterValue` | -| `order_id` | `Param.TRANSACTION_ID` | `kFIRParameterTransactionID` | -| `currency` | `Param.CURRENCY` | `kFIRParameterTransactionID` | - - - -> **Note**: Firebase Analytics does not support `action` or `label` in their [predefined event parameter names](https://firebase.google.com/docs/reference/cpp/group/parameter-names){:target="_blank"}, and Segment's Firebase SDK does not support mapping those properties. If you want to pass those properties to Firebase send them as a custom property. - -### Custom Events and Properties - -Segment's Firebase Analytics SDK allows you to send custom events and properties. If you make a `track()` call but the event name is not one of the above mappings, Segment calls `logEventWithName` (iOS) or `logEvent` (Android). This allows you to pass any custom event name you want. Event names must contain 1 to 40 alphanumeric characters or underscores, per the [Firebase documentation](https://firebase.google.com/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Event){:target="_blank"}. The Segment Firebase SDKs format custom event names to remove trailing whitespace and replace all spaces and periods with underscores. -Firebase Analytics supports up to 500 event names, and each event can have up to 25 parameters. - -> note "" -> **Note**: Firebase has a [list of reserved event names](https://firebase.google.com/docs/reference/ios/firebaseanalytics/api/reference/Classes/FIRAnalytics#/c:objc(cs)FIRAnalytics(cm)logEventWithName:parameters){:target="_blank"} which cannot be used. - - -## Recording Uncaught Exceptions - -Segment's Google Analytics mobile SDK supports automatic reporting of uncaught exceptions for iOS and Android platforms. - -Firebase supports recording of uncaught exceptions through the use of [Firebase Crashlytics](https://firebase.google.com/docs/crashlytics){:target="_blank"}. Firebase Crashlytics is a lightweight, realtime crash reporter that helps you track, prioritize, and fix stability issues that erode your app quality. Crashlytics saves you troubleshooting time by intelligently grouping crashes and highlighting the circumstances that lead up to them. - -To get started with Firebase Crashlytics so you can generate comprehensive crash reports in your Firebase console follow the [set up guide outlined in the Firebase documentation](https://firebase.google.com/docs/crashlytics/get-started){:target="_blank"} for iOS or Android. diff --git a/src/connections/functions/destination-functions.md b/src/connections/functions/destination-functions.md index 723e83f6c5..4d97a6d848 100644 --- a/src/connections/functions/destination-functions.md +++ b/src/connections/functions/destination-functions.md @@ -439,3 +439,7 @@ Yes, to do so, remove the `messageId` and the `writeKey` from the payload in you ##### Can I view console.log() outputs in Destination Functions? Incorporating console.log() statements in your Destination Function code aids in debugging. However, logs generated by these statements will only be accessible in the [Event Delivery](/docs/connections/event-delivery/) view if the payloads encounter errors during processing. Logs from successfully processed payloads are not displayed. + +##### What is the maximum data size that can be displayed in console.logs() when testing a Function? + +The test function interface has a 4KB console logging limit. Outputs larger than this limit are not visible in the user interface. diff --git a/src/connections/functions/source-functions.md b/src/connections/functions/source-functions.md index 6be40479b4..2a83322376 100644 --- a/src/connections/functions/source-functions.md +++ b/src/connections/functions/source-functions.md @@ -430,3 +430,7 @@ Segment alphabetizes payload fields that come in to **deployed** source function #### Can I use a Source Function in place of adding a Tracking Pixel to my code? No. Tracking Pixels operate client-side only and need to be loaded onto your website directly. Source Functions operate server-side only, and aren't able to capture or implement client-side tracking code. If the tool you're hoping to integrate is server-side, then you can use a Source Function to connect it to Segment. + +##### What is the maximum data size that can be displayed in console.logs() when testing a Function? + +The test function interface has a 4KB console logging limit. Outputs surpassing this limit will not be visible in the user interface. diff --git a/src/engage/audiences/index.md b/src/engage/audiences/index.md index 051ebd7eda..1e5eb1e0dc 100644 --- a/src/engage/audiences/index.md +++ b/src/engage/audiences/index.md @@ -232,7 +232,10 @@ Once Segment generates the CSV, you can download the file directly. You'll recei Note the following limits for the CSV downloader: - You can't download more than one CSV for the same audience at the same time. -- You can only generate one CSV every five minutes. +- You can only generate one CSV every five minutes. +- Each CSV represents a snapshot at a given point in time that references the data from the audience's most recent computational run. This applies to both real time and batch audiences, as the CSV is not updated in real time. To locate the snapshot's given point of time, click on the Download CSV button, and the popup modal will contain an information icon ℹ️, which when hovered over will reveal the snapshot's details. + - ![CSV Snapshot details](https://github.com/user-attachments/assets/b7af772a-2ba7-4411-ba95-a913992f10ae) + > info "" > Generating a CSV can take a substantial amount of time for large audiences. After you generate the CSV file, leave the modal window open while Segment creates the file. (If the audience recalculates between when you click Generate and when you download the file, you might want to regenerate the file. The CSV is a snapshot from when you clicked Generate, and could be outdated.) diff --git a/src/engage/audiences/linked-audiences.md b/src/engage/audiences/linked-audiences.md index 2b2aa0e531..64967b3dec 100644 --- a/src/engage/audiences/linked-audiences.md +++ b/src/engage/audiences/linked-audiences.md @@ -26,7 +26,7 @@ Before you begin setting up your Linked Audience, ensure you have: - [Set up Profiles Sync](/docs/unify/profiles-sync/profiles-sync-setup/). - Set up your warehouse permissions using [Snowflake](/docs/unify/linked-profiles/setup-guides/snowflake-setup/). - [Ensure someone has set up your data graph](/docs/unify/linked-profiles/data-graph/). -- Workspace Owner or Unify Read-Admin, Entities Admin, and Source Admin [roles in Segment](/docs/segment-app/iam/roles/). +- Workspace Owner or Unify Read-only, Engage User, Entities Read-only, and Source Admin [roles in Segment](/docs/segment-app/iam/roles/). ## Setting up Linked Audiences @@ -49,29 +49,77 @@ To build a Linked Audience: 2. Select **+ New audience > Audience**. 3. On the **Select Audience Type** screen, select **Linked audience**, then click **Next**. **Note:** If you cannot select **Linked audience**, ensure you’ve [set up your Data Graph](/docs/unify/linked-profiles/data-graph/) in Unify. -4. Select the [profiles conditions](#Linked-Audience-profiles-conditions) on which to build your audience. -5. Click **Preview** to view your audience selection and see a count of audience members who meet the criteria. +4. Select the [conditions](#Linked-Audience-conditions) on which to build your audience. +5. Click **Preview** to view your audience selection and see a count and list of audience members who meet the criteria. 6. When your audience is complete and accurate, click **Next**. 7. Enter an audience name and description to identify this configuration. Optionally, select a folder to add this audience. 8. Click **Create Audience**. -### Linked Audience profiles conditions +### Maintaining Linked Audiences -As you're building your Linked Audience, you can choose from the following profiles conditions: +After creating your Linked Audience, you will be brought to the Overview page with the Linked Audience in a disabled state. On the Overview page, you can view relevant audience information, such as Profiles in Audience, Run Schedule, Latest run, Next compute. You can edit or delete your Linked Audience. + +If you edit an audience with configured activation events, you should disable or delete impacted events for your audience to successfully compute. Events are impacted if they reference entities that are edited or removed from the audience definition. + +You can also clone your linked audience to the same space from the List and Overview pages. Cloning a linked audience creates a new linked audience in the builder create flow with the same conditions as the linked audience that was cloned. + +### Linked Audience conditions + +The linked audiences builder sources profile trait and event keys from the data warehouse. This data must be synced to the data warehouse through [Profiles Sync](/docs/unify/profiles-sync/overview/) before you can reference it in the linked audience builder. If there is a profile trait that exists in the Segment Profile that hasn’t successfully synced to the data warehouse yet, it will be grayed out so that it can’t be selected. + +The linked audience builder also returns a subset of available entity property key values, event property and context key values, and profile trait key values that you can select in the input field drop-down so that you don’t need to type in the exact value that you want to filter on.If you don’t see the value you’re looking for, you can manually enter it into the input field. Segment displays + +* the first 100 unique string entity property values from the data warehouse. + * If you want to opt out of displaying entity property values from the data warehouse, contact Segment Support. +* the top 65 event property and context key values. +* the top 65 profile trait key values. + +You can only create nested entity conditions up to six levels in depth. For example, an entity condition that queries for relationships between Profiles, Accounts, Credit Cards, and Transactions has four levels of depth. + +As you're building your Linked Audience, you can choose from the following conditions: | Profiles Conditions | Description | |---------------------------|---------------------------------------| -| associated with an entity | Creates a condition that filters profiles associated with entity relationships defined in the [Data Graph](/docs/unify/linked-profiles/data-graph/). With this condition, you can navigate the full nested entity relationship and filter your audience on entity column values. -| not associated with an entity | Creates a condition that filters profiles that are not associated with entity relationships defined in the [Data Graph](/docs/unify/linked-profiles/data-graph/). -| with [profile trait](/docs/unify/#enrich-profiles-with-traits) | Creates a condition that filters profiles with a specific trait. | -| without [profile trait](/docs/unify/#enrich-profiles-with-traits) | Creates a condition that filters profiles without a specific trait. | -| part of an [audience](/docs/glossary/#audience) | Creates a condition that filters profiles that are part of an existing audience. | -| not part of an [audience](/docs/glossary/#audience) | Creates a condition that filters profiles that are not part of an existing | -| that performed [event](/docs/glossary/#event) | Creates a condition that filters profiles that have a specific event in their event history. You can also filter on event property values.| -| that did not performed [event](/docs/glossary/#event) | Creates a condition that filters profiles that do not have a specific event in their event history. You can also filter on event property values.| +| with entity | Creates a condition that filters profiles associated with entity relationships defined in the [Data Graph](/docs/unify/data-graph/). With this condition, you can navigate the full, nested entity relationships, and filter your audience on entity column values. The event condition type supports these configurations: at least: supports 1 or greater, exactly: supports 0 or greater, at most: supports 0 or greater* *When filtering by 0, you can’t filter on by entity properties or on additional nested entities. +| without entity | Creates a condition that filters profiles that are not associated with entity relationships defined in the [Data Graph](/docs/unify/linked-profiles/data-graph/). +| with [ trait](/docs/unify/#enrich-profiles-with-traits) | Creates a condition that filters profiles with a specific trait. | +| without [ trait](/docs/unify/#enrich-profiles-with-traits)| Creates a condition that filters profiles without a specific trait.| +| part of [audience](/docs/glossary/#audience) | Creates a condition that filters profiles that are part of an existing audience. | +| not part of [audience](/docs/glossary/#audience) | Creates a condition that filters profiles that are not part of an existing audience. | +| with [event](/docs/glossary/#event) | Creates a condition that filters profiles that have a specific event in their event history. You can also filter on event property values. The event condition type supports these configurations: at least: supports 1 or greater, exactly: supports 0 or greater, at most: supports 0 or greater| +| without [event](/docs/glossary/#event) | Creates a condition that filters profiles that do not have a specific event in their event history. You can also filter on event property values. You can also duplicate your conditions in the audience builder into the same condition group.| + +#### Operator Selection + +You can create audience definitions using either `AND` or `OR` operators across all condition levels. You can switch between these operators when filtering on multiple entity or event properties, between conditions within a condition group, and between condition groups. + +**Example:** -**Note:** you can only create nested entity conditions up to four levels in depth. For example, an entity condition that queries for relationships between Profiles, Accounts, Credit Cards, and Transactions has four levels of depth. +![An example of the operator selection filled out.](/docs/engage/images/operator_selection.png) + +#### Entity Explorer + +If you have defined entity conditions in your audience definition, you will see a “Matched Entities” tab in the audience preview to help you understand what entities qualified a user to be a part of an audience. + +This information appears when you click the user profile generated from the audience preview. The contextual information encompasses entity relationships as well as entity column values that were used as filtering criteria in the audience definition. By default, Segment includes the entity ID.The data being returned is truncated - 10 entities at each level, 6 levels of depth. If you want to opt out of this functionality, contact Segment Support. + +![A screenshot of the Entity Explorer.](/docs/engage/images/entity_explorer.png) + +#### Dynamic References + +**Event Conditions** + +When filtering on event properties, you can dynamically reference the value of another profile trait, or enter a constant value. These operators support dynamic references: +equals, not equals, less than, greater than, less than or equal, greater than or equal, contains, does not contain, starts with, ends with. + +**Entity Conditions** + +When filtering on entity properties, you can dynamically reference the value of another entity column (from the same entity branch at the same level or above it), profile trait, or enter a constant value. +You can only dynamically reference properties of the same data type. Dynamic references are only supported for certain operators depending on the data type: +NUMBER data type: equals, not equals, less than, greater than, less than or equal, greater than or equal +STRING data type: equals, not equals, contains, does not contain, starts with, ends with +TIMESTAMP data type: equals, not equals, less than, greater than, less than or equal, greater than or equal ## Step 2: Activate your Linked Audience @@ -155,22 +203,21 @@ After building your Linked Audience, choose **Save and Enable**. You'll be redir To enable your audience: Select the **Enabled** toggle, then select **Enable audience**. -### Compute Now +### Run Now -You can trigger a compute for your audience if you want to send events to your destination without waiting for the next scheduled compute run. To do so, select **Compute Now**. This triggers a compute for the audience and sends events downstream. +You can trigger a run for your audience if you want to send events to your destination without waiting for the next scheduled run. To do so, select **Run Now**. This triggers a run for the audience and sends events downstream. ### Set a run schedule Use the Audience Overview page to view the audience profile count, current run schedule, run status, and upcoming run time. Determine when an audience should run and send data to enabled destinations with a run schedule: - - **Manual**: Trigger audience runs manually by clicking **Run Now** on the Audience Overview page. -- **Interval**: Trigger audience runs based on a predefined set of time intervals. Supported intervals are: 15 minutes, 30 minutes, 1 hour, 2 hours, 4 hours, 6 hours, 8 hours, 12 hours, or 1 day. If you select this option, Segment runs your audience after you enable the audience. -- **Day and time**: Trigger audience runs at specific times on selected days of the week. If you select this option, Segment runs your audience at the first selected date and time. +- **Interval**: Trigger audience runs based on a predefined set of time intervals. Supported intervals are: 15 minutes, 30 minutes, 1 hour, 2 hours, 4 hours, 6 hours, 8 hours, 12 hours, 1 day. If you select this option, Segment will run your audience after you enable the audience. +- **Day and time**: Trigger audience runs at specific times on selected days of the week. If you select this option, Segment will run your audience at the first selected date and time. You can maintain your run schedule at any time from the audience's **Settings** tab. You can also click **Run Now** on the Audience Overview page at any time (even if the run schedule is **Interval** Overview **Day and time**) to manually trigger a run on your warehouse and send data to enabled destinations. -There may be up to a 5 minute delay from the configured start time for audiences that are configured with the **Interval** and **Day and time** run schedules. For example, if you configured an audience with the **Day and time** compute schedule to run on Mondays at 8:00 AM, it can compute as late as Monday at 8:05 AM. This is to help Segment better manage system load. +There may be up to a 5 minute delay from the configured start time for audiences that are configured with the **Interval** and **Day and time** run schedules. For example, if you configured an audience with the **Day and time** compute schedule to run on Mondays at 8am, it can compute as late as Monday at 8:05am. This is to help us better manage our system load. diff --git a/src/engage/audiences/recommendation-audiences-nutrition-label.md b/src/engage/audiences/recommendation-audiences-nutrition-label.md new file mode 100644 index 0000000000..efc66f8adc --- /dev/null +++ b/src/engage/audiences/recommendation-audiences-nutrition-label.md @@ -0,0 +1,7 @@ +--- +title: Recommendation Audiences Nutrition Facts Label +plan: engage-foundations +--- + +Twilio’s [AI Nutrition Facts](https://nutrition-facts.ai/){:target="_blank"} provide an overview of the AI feature you’re using, so you can better understand how the AI is working with your data. Twilio outlines AI qualities in Recommendation Audiences in the Nutrition Facts label below. For more information, including the AI Nutrition Facts label glossary, refer to the [AI Nutrition Facts](https://nutrition-facts.ai/){:target="_blank"} page. +{% include content/recommendation-audiences-nutrition-facts.html %} \ No newline at end of file diff --git a/src/engage/images/entity_explorer.png b/src/engage/images/entity_explorer.png new file mode 100644 index 0000000000..3ace16678e Binary files /dev/null and b/src/engage/images/entity_explorer.png differ diff --git a/src/engage/images/operator_selection.png b/src/engage/images/operator_selection.png new file mode 100644 index 0000000000..0da47518c4 Binary files /dev/null and b/src/engage/images/operator_selection.png differ diff --git a/src/engage/using-engage-data.md b/src/engage/using-engage-data.md index f8bcf40a0d..23537051ee 100644 --- a/src/engage/using-engage-data.md +++ b/src/engage/using-engage-data.md @@ -291,8 +291,8 @@ Connect any Cloud-mode destination that supports Identify or Track calls to Enga - [Facebook Custom Audiences](/docs/connections/destinations/catalog/personas-facebook-custom-audiences/) - [Google Ads Remarketing Lists](/docs/connections/destinations/catalog/adwords-remarketing-lists/) -- [Google Display & Video 360](/docs/connections/destinations/catalog/personas-display-video-360/) +- [Display and Video 360 (Actions)](/docs/connections/destinations/catalog/actions-display-video-360/) - [Snapchat Audiences](/docs/connections/destinations/catalog/snapchat-audiences/) - [Pinterest Audiences](/docs/connections/destinations/catalog/pinterest-audiences/) -- [Marketo Static Lists](/docs/connections/destinations/catalog/marketo-static-lists/) +- [Marketo Static Lists (Actions)](/docs/connections/destinations/catalog/actions-marketo-static-lists/) - [Responsys](/docs/connections/destinations/catalog/responsys/) diff --git a/src/folders.txt b/src/folders.txt index 67ac2e11c6..d9d06f7313 100644 --- a/src/folders.txt +++ b/src/folders.txt @@ -144,8 +144,6 @@ connections/destinations/catalog/countly connections/destinations/catalog/activecampaign connections/destinations/catalog/activecampaign/images connections/destinations/catalog/amazon-kinesis -connections/destinations/catalog/personas-display-video-360 -connections/destinations/catalog/personas-display-video-360/images connections/destinations/catalog/inspectlet connections/destinations/catalog/bytegain connections/destinations/catalog/klaviyo diff --git a/src/protocols/faq.md b/src/protocols/faq.md index 314f620723..5ea5369f17 100644 --- a/src/protocols/faq.md +++ b/src/protocols/faq.md @@ -102,7 +102,11 @@ When you first create your Tracking Plan, you can add events from your Source Sc ### Can I import events from my Source Schema into a Tracking Plan? -When you initially create your Tracking Plan, you can import events into it from a Source Schema. Manually add these events by clicking the the (+) next to the event in your Source Schema page after connecting your Tracking Plan. . +When you initially create your Tracking Plan, you can import events into it from a Source Schema. Manually add these events by clicking the the (+) next to the event in your Source Schema page after connecting your Tracking Plan. + +### Can I recover a Tracking Plan that was deleted? + +You cannot recover a deleted Tracking Plan and Segment cannot recover it on your behalf. Please delete Tracking Plans with caution. ## Protocols Validation diff --git a/src/unify/data-graph/data-graph.md b/src/unify/data-graph/data-graph.md index 658f0a55e1..80cfea8372 100644 --- a/src/unify/data-graph/data-graph.md +++ b/src/unify/data-graph/data-graph.md @@ -3,14 +3,23 @@ title: Data Graph plan: unify beta: true hidden: true +redirect_from: + - '/unify/linked-profiles/data-graph' --- -> info "Segment's Data Graph is in public beta" -> Data Graph is in public beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. +You can build a Data Graph that defines relationships between any entity data set in the warehouse and the Segment Profiles you send with Profiles Sync. Make this relational data accessible to marketers and business stakeholders to empower them with the data they need to create targeted and personalized customer engagements. -With Linked Audiences, you can build a Data Graph that defines relationships between any entity data set in the warehouse and the Segment Profiles you send with Profiles Sync. Make this relational data accessible to marketers and business stakeholders to empower them with the data they need to create targeted and personalized customer engagements. +Using the Data Graph, you can reflect your business in your data model. The Data Graph enables businesses to map and understand the relationships between different datasets about their customers (accounts, subscriptions, households, products), and tie rich entity context back to the profile. -Segment's Data Graph powers [Linked Events](/docs/unify/data-graph/linked-events/) and [Linked Audiences](/docs/engage/audiences/linked-audiences/). +> info "" +> Data Graph currently only supports workspaces in the United States. + +Using Data Graph, you only need to define the relationships between data sets one time to make data accessible to marketers and business stakeholders to build targeted and personalized customer engagements. + +The Data Graph powers: + +- [Linked Audiences](/docs/engage/audiences/linked-audiences/): enables marketers to build targeting logic based on data points available in the data graph in a self-service way. Start by building a [Data Graph](/docs/unify/data-graph/data-graph/) that defines relationships between any data set in the warehouse and the Segment Profiles you send with Profiles Sync. From there, use Linked Audiences to unlock a world of new hyper-personalized campaigns. +- [Linked Events](/docs/unify/data-graph/linked-events/): enables data teams to enrich event streams, in real time, with any data set coming from a data warehouse or data lake, and send those enriched events to any Destination. Start by building a [Data Graph](/docs/unify/data-graph/data-graph/) with the data models you want to use, and then use set up the enrichment in Destinations or Functions. To help you get started with the Data Graph, [view this short setup demo](https://drive.google.com/file/d/1oZNvs0raYaxK6tds3OEF0Ri3NGVCoXys/view?pli=1){:target="_blank"}. @@ -21,7 +30,7 @@ To help you get started with the Data Graph, [view this short setup demo](https: To use the Data Graph, you'll need the following: -- A supported data warehouse. +- A supported data warehouse. - (If setting up Linked Audiences) [Profiles Sync](/docs/unify/profiles-sync/) set up with ready-to-use [data models and tables](/docs/unify/profiles-sync/tables/) in your warehouse. - Workspace Owner or Unify Read-only/Admin and Entities Admin permissions. @@ -30,7 +39,7 @@ To use the Data Graph, you'll need the following: ## Step 1: Set up required permissions in your data warehouse -To get started, set up the required permissions in your data warehouse using the instructions below: +To get started, set up the required permissions: - [Snowflake](/docs/unify/data-graph/setup-guides/snowflake-setup/) and [Databricks](/docs/unify/data-graph/setup-guides/databricks-setup/) are supported by both Linked Events and Linked Audiences. - [Redshift](/docs/unify/data-graph/setup-guides/redshift-setup/) and [BigQuery](/docs/unify/data-graph/setup-guides/BigQuery-setup/) are currently supported for Linked Events. @@ -56,8 +65,9 @@ This should be a Unify space with Profiles Sync already set up. The Data Graph is a semantic layer that represents a subset of relevant business data that you'll use for audience targeting and personalization in downstream tools. Use the configuration language spec below to add models to build your Data Graph. The Data Graph currently supports 4 layers of depth, including the Profile entity. Warehouse schemas are case sensitive, so you'll need to reflect the schema, table, and column names based on how you case them in the warehouse. To leverage the Data Graph auto-complete feature, begin typing or use the following keyboard shortcuts to autocomplete the profile_folder and table_ref properties. -- Mac CtrlSpace -- Windows AltEsc + +- Mac: CtrlSpace +- Windows: AltEsc ### Define entities diff --git a/src/unify/data-graph/index.md b/src/unify/data-graph/index.md deleted file mode 100644 index ce029ea33d..0000000000 --- a/src/unify/data-graph/index.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: Linked Audiences with Data Graph Overview -plan: unify -beta: true -hidden: true ---- - -> info "Linked Audiences is in public beta" -> Linked Audiences is in public beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. - -> warning "" -> Data Graph currently only supports workspaces in the United States. - -Use a Data Graph to expand your model beyond the profile to the entire universe of business data. [Linked Audiences](/docs/engage/audiences/linked-audiences/) works best with [Data Graph](/docs/unify/data-graph/data-graph/), and [Linked Events](/docs/unify/data-graph/linked-events/). - -Build a [Data Graph](/docs/unify/data-graph/data-graph/) that defines relationships between any data set in the warehouse and the Segment Profiles you send with Profiles Sync. - -You can then enrich your event streams with [Linked Events](/docs/unify/data-graph/linked-events/) and build advanced audiences and segmentation off of any data set you've mapped to the Data Graph with [Linked Audiences](/docs/engage/audiences/linked-audiences/). - -Using Data Graph, you only need to define the relationships between data sets once to make data accessible to marketers and business stakeholders to build targeted and personalized customer engagements. - -To get started with Data Graph, connect your data warehouse: - -- [Snowflake](/docs/unify/data-graph/setup-guides/snowflake-setup/) and [Databricks](/docs/unify/data-graph/setup-guides/databricks-setup/) are supported by both Linked Events and Linked Audiences. -> - [Redshift](/docs/unify/data-graph/setup-guides/redshift-setup/) and [BigQuery](/docs/unify/data-graph/setup-guides/BigQuery-setup/) are currently supported for Linked Events. diff --git a/src/unify/data-graph/setup-guides/BigQuery-setup.md b/src/unify/data-graph/setup-guides/BigQuery-setup.md index c68e7c5635..42ac5d80e0 100644 --- a/src/unify/data-graph/setup-guides/BigQuery-setup.md +++ b/src/unify/data-graph/setup-guides/BigQuery-setup.md @@ -3,6 +3,8 @@ title: BigQuery Setup beta: true plan: unify hidden: true +redirect_from: + - '/unify/linked-profiles/setup-guides/BigQuery-setup' --- > info "Linked Audiences is in public beta" diff --git a/src/unify/data-graph/setup-guides/databricks-setup.md b/src/unify/data-graph/setup-guides/databricks-setup.md index 9efcc099d2..8816eab578 100644 --- a/src/unify/data-graph/setup-guides/databricks-setup.md +++ b/src/unify/data-graph/setup-guides/databricks-setup.md @@ -3,6 +3,8 @@ title: Databricks Setup beta: true plan: unify hidden: true +redirect_from: + - '/unify/linked-profiles/setup-guides/databricks-setup' --- > info "Linked Audiences is in public beta" diff --git a/src/unify/data-graph/setup-guides/redshift-setup.md b/src/unify/data-graph/setup-guides/redshift-setup.md index 2a4f9b4fda..84fe8db4da 100644 --- a/src/unify/data-graph/setup-guides/redshift-setup.md +++ b/src/unify/data-graph/setup-guides/redshift-setup.md @@ -3,6 +3,8 @@ title: Redshift Setup beta: true plan: unify hidden: true +redirect_from: + - '/unify/linked-profiles/setup-guides/redshift-setup' --- > info "Linked Audiences is in public beta" diff --git a/src/unify/data-graph/setup-guides/snowflake-setup.md b/src/unify/data-graph/setup-guides/snowflake-setup.md index 482be9faf6..4902defdb3 100644 --- a/src/unify/data-graph/setup-guides/snowflake-setup.md +++ b/src/unify/data-graph/setup-guides/snowflake-setup.md @@ -3,6 +3,8 @@ title: Snowflake Setup plan: unify beta: true hidden: true +redirect_from: + - '/unify/linked-profiles/setup-guides/snowflake-setup' --- > info "Linked Audiences is in public beta"