Skip to content

Commit 868ef2d

Browse files
briemcnallysanscontextsanscontext
authored
[STRATCONN-319] Revamp Adobe Analytics docs (#990)
* Update Adobe Heartbeat docs * info formatting :) * Update getting started * Add identity resolution and setup/settings to side nav * Refactor using side nav tabs * Update images for AA Settings V2 * Change side nav title for implementing AA * Update Overview & Success Events * Rename images using - * Add eVar section * Update merchandising events * Update props * Update list variablese * Add external docs for list vars * Add hierarchy varrs * Add segment dest specific options * Update hyperlinks in table of contents * Remove provide feedback from images * Add more edits to implementation/settings page * Revamp the AA landing page * Fix images and add context data variable format chart to mobile page * Change context data variable table on heartbead page * Link to best practices LinkURL * First iteration on updating Identity Resolution tab * Add new decision tree * Update Identity Resolution * Update Identity Resolution cloud header size * Update best practices and fix merch events * Apply suggestions from code review add gh-based suggestions, will just commit the rest direct to branch * Assorted edits * more edits * edits with B * Fix eVar link to and add context data section * Update images with latest app deploy * Change intro to identity resolution and add settings images * Address some TODOs in settings section * Update todo for tabs with JSON settings and specify XML is SS only * Update Custom Video Metadata Co-authored-by: LRubin <[email protected]> * Change HB Adobe steps to numbers * Add JSON & XML example to eccommerce spec * Address comments in Remove Fallbacks for VisitorIds * small copy edits * more copy edits * a few more oopses * Fix typos * checkin * check in copy edits with B * Address final todos * Fix format * Change TOC on index to match side-nav * Change name to mapping Segment to AA * Fix broken links in settings.md * Fix broken links in identity.md Co-authored-by: sanscontext <[email protected]> Co-authored-by: LRubin <[email protected]>
1 parent 2ee77c0 commit 868ef2d

32 files changed

+1000
-624
lines changed

src/_data/sidenav/strat.yml

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,21 @@
11
---
22
sections:
33
- slug: adobe
4-
section_title: Adobe Integrations
4+
section_title: Adobe Analytics
55
section:
66
- path: /connections/destinations/catalog/adobe-analytics
77
title: Adobe Analytics destination
8+
- path: /connections/destinations/catalog/adobe-analytics/settings
9+
title: Mapping Segment to Adobe Analytics
10+
- path: /connections/destinations/catalog/adobe-analytics/identity
11+
title: Identity Resolution in Segment Adobe Analytics
812
- path: /connections/destinations/catalog/adobe-analytics/mobile
9-
title: Set up Adobe Analytics for mobile
13+
title: Adobe Analytics for mobile
1014
- path: /connections/destinations/catalog/adobe-analytics/heartbeat
11-
title: Set up Adobe Analytics Heartbeat
15+
title: Adobe Analytics Heartbeat
1216
- path: /connections/destinations/catalog/adobe-analytics/best-practices
1317
title: Adobe Analytics Best Practices
14-
- path: /connections/destinations/catalog/adobe-target
15-
title: Adobe Target destination
18+
1619

1720

1821
- slug: facebook

src/connections/destinations/catalog/adobe-analytics/best-practices.md

Lines changed: 33 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,17 @@ title: Adobe Analytics Best Practices
33
strat: adobe
44
---
55

6-
There are a few common questions that we've heard over time that are worth mentioning.
6+
This page contains best practices and tips for setting up and testing Adobe Analytics with Segment.
7+
8+
## Validating by Data by Component
9+
10+
The following list contains tools you can use to validate data coming from Segment and going to each different Adobe Analytics component
11+
12+
- **Analytics.js** - [Adobe Experience Cloud Debugger](https://chrome.google.com/webstore/detail/adobe-experience-cloud-de/ocdmogmohccmeicdhlhhgepeaijenapj) and Chrome Developer Tools
13+
- **Other Segment server libraries** - Segment's in-app [Event Tester Tool](/docs/connections/test-connections/)
14+
- **iOS Device mode** - Charles Proxy, DEBUG mode
15+
- **Android Device Mode** - Charles Proxy, VERBOSE logging
16+
717

818
## Reducing API calls by sending events on page or screen
919

@@ -19,7 +29,7 @@ For example, instead of sending the Product Viewed event as a `track` to AA, you
1929
}
2030
```
2131

22-
When the integration option `events` is passed in, we map the events and send them using the `<events>` tag. In the example above, we would build `<events>event35, scAdd</events>`.
32+
When the integration option `events` is passed in, Segment maps the events and sends them using the `<events>` tag. In the example above, the output would be `<events>event35, scAdd</events>`.
2333

2434
_Considerations_
2535

@@ -33,19 +43,20 @@ _Considerations_
3343
```
3444

3545
## Setting custom linkTypes, linkNames and linkUrls
36-
If you are setting up the Adobe Analytics destination in cloud-mode, you can pass in custom linkTypes, linkNames and linkURLs.
3746

38-
**Note**: If you pass in the `visitorId` in a destination specific `integration` object within your Segment `page` or `track` events, then the `visitorId` passed will persist on page or track calls that occur after an identify call. This will effectively supersede Segment setting the `visitorId` variable to your `userId` after an `identify` call.
47+
If you are setting up the Adobe Analytics destination in cloud-mode, you can pass in custom `linkTypes`, `linkNames` and `linkURLs`.
48+
49+
**Note**: If you pass in the `visitorId` in a destination-specific `integration` object in your Segment Page or Track events, the `visitorId` passed persists on Page or Track calls that occur after an Identify call. This effectively supersedes the `visitorId` variable Segment would set to your `userId` after an Identify call.
3950

40-
We know this is daunting territory, so don't hesitate to contact us directly for guidance!
51+
We know this is daunting territory, so don't hesitate to [contact us directly for guidance](https://segment.com/help/contact/)!
4152

42-
**Setting the event linkType**
53+
### Setting the event linkType
4354

44-
By default, Segment's integration with Adobe Analytics automatically sets an events linkType as a custom link or 'o' for 'other' within the s.tl() call. If you want to set the linkType of an event as download or exit links, you can pass in the following values within the `integrations.adobe analytics` object of your Segment event payload.
55+
By default, Segment's integration with Adobe Analytics automatically sets an events `linkType` as a custom link `o` for 'other' within the `s.tl()` call. To set the `linkType` of an event as download or exit link, you can pass in a different value in the `integrations.adobe analytics` object of your Segment event payload.
4556

46-
A value of `d` or `D` will map to download links and a value of `e` or `E` will map to exit links
57+
A value of `d` or `D` maps to "download" links, and a value of `e` or `E` maps to "exit" links
4758

48-
Below is a sample snippet of how you would set a Segment event as a download link type:
59+
The example below shows of how you would set a Segment event as a download link type:
4960

5061
```javascript
5162
"integrations": {
@@ -55,64 +66,40 @@ Below is a sample snippet of how you would set a Segment event as a download lin
5566
}
5667
```
5768

58-
If you pass in Segment events with a download (d or D) linkType, it will populate the Download link report in your Adobe Analytics reporting suite. If you pass in Segment events with a exit (e or E) linkType, it will populate the Exit link report in your Adobe Analytics reporting suite. Finally, if you pass in Segment event with either no linkType or a value of "o" or "O" in the integration.Adobe Analytics object, it will populate the custom link report in your Adobe Analytics reporting suite.
69+
If you pass in Segment events with a download (d or D) linkType, they appear the Download link report in your Adobe Analytics reporting suite. If you pass in Segment events with an "exit" (e or E) linkType, they appear in the Exit link report in your Adobe Analytics reporting suite. Finally, if you pass in Segment events with a value of `o` or `O`, or _no_ linkType in the `integration.Adobe Analytics` object, they appear in the custom link report in your Adobe Analytics reporting suite.
5970

60-
**Setting the event linkName**
71+
### Setting the event linkName
6172

62-
If you want to pass in a custom LinkName to Adobe Analytics, you can now define it by passing it as a string within the `integrations.Adobe Anlaytics`object of your Segment event. An example would be like the one below:
73+
To pass in a custom LinkName to Adobe Analytics, pass it as a string in the `integrations.Adobe Analytics` object of your Segment event. The example below sets the custom linkname to "Click me".
6374

6475
```javascript
6576
"integrations": {
6677
"Adobe Analytics": {
67-
"linkName": "some link name"
78+
"linkName": "Click me"
6879
}
6980
}
7081
```
7182

72-
If a custom linkName is not specified in the integration specific object in the payload, Segment will default to mapping `linkName` to the value from `(context.page.url)`. If there is no URL present Segment will set `linkName` to `No linkName provided`.
83+
If you don't specify a custom linkName in the integration specific object in the payload, Segment defaults to mapping `linkName` to the value from `(context.page.url)`. If no URL is present, Segment sets `linkName` to `No linkName provided`.
7384

74-
NOTE: The `useLegacyLinkName` setting in the UI will be respected if you have the setting enabled and you send a custom `linkName` in the integration specific object.
85+
> note ""
86+
> **Note**: If you enable the `useLegacyLinkName` setting in the UI, Segment prepends `Link Name -` to the value you specified in the integration-specific object.
7587
76-
**Setting the event LinkURL**
88+
### Setting the event LinkURL
7789

78-
If you want to pass in a custom LinkUrl to Adobe Analytics, you can do this by passing it as a string within the `integrations.Adobe Anlaytics`object of your Segment event. An example would be like the one below:
90+
To pass a custom LinkUrl to Adobe Analytics, pass it as a string in the `integrations.Adobe Analytics` object of your Segment event. The example below sets the custom linkURLs to "example.com/example".
7991

8092
```javascript
8193
"integrations": {
8294
"Adobe Analytics": {
83-
"linkUrl": "some link url"
95+
"linkUrl": "example.com/example"
8496
}
8597
}
8698
```
8799

88-
If a custom linkUrl is not specified in the integration specific object in the payload, Segment will default to mapping `linkUrl` to the `(context.page.url)`. If there is no URL present Segment will set `linkUrl` to `No linkUrl provided`.
89-
90-
91-
## Best practices for userId and sessioning
92-
You can enable **Drop Visitor ID** from the Segment app to prevent Adobe from creating a new user profile when you set `window.s.visitorID` with a custom value. However, this can break the links between anonymous and identified users inside your reports, if you're only using Analytics.js to send data to Adobe.
93-
94-
Adobe Analytics unfortunately counts every "effective" visitor ID as a *unique* visitor. There is no ability for Segment to alias, implicitly or explicitly, two effective IDs on your behalf.
95-
96-
Key to understanding the implications of this fact is an understanding of what Adobe Analytics means by **"effective" visitor ID**. To do so, we recommend reading [this section of their documentation](https://marketing.adobe.com/resources/help/en_US/sc/implement/xdevice_visid.html).
97-
98-
With analytics.js, we use the default auto-generated Adobe Analytics [`s_vi` cookie value](https://marketing.adobe.com/developer/documentation/data-insertion/c-visitor-id) as effective visitor ID until you `identify` your users. If you provide your Marketing Cloud ID Service Organization ID, then we'll set the MCVID and use that instead.
99-
100-
Once you `identify` your user, Segment sets the `visitorId` variable to your `userId`. This effectively creates a new user, which *does* have unique user implications. However, based on a thorough reading of their documentation and discussion with many customers, we believe this is the best practice because now you can seamlessly track this user across devices whenever they are logged in.
101-
102-
So if you'd like to track your users on the server as well, you have a few options. If you're only tracking logged-in users, sending their `userId` in your events ensures that the events are attributed to the proper user. If you're tracking anonymous users too, Segment sends the `s_vi` cookie from Adobe if you pass it under `context['Adobe Analytics'].visitorId` as the `visitorId`. Then we fallback on the `userId` and lastly the Segment `anonymousId`, which you'll notice is a different ID from the anonymous `s_vi` value used on the client (Adobe Analytics' auto-generated effective ID for anonymous users).
103-
104-
If you don't mind slightly inflated unique user counts, this may be acceptable, as all events in that anonymous user's session are still attributable to a single user ID. If you really do want to tie the anonymous event from the client side with your server side events, you could grab the `s_vi` cookie value from the client and pass it to your server. We respect any value passed in `context["Adobe Analytics"].visitorId` and pass that as the `visitorID` if provided. But keep in mind that if you go this route, you would probably need to manage the `s_vi` cookies for all your users since you always need to pass it with all your server side calls. Note that you can only parse the `s_vi` cookie if you have **1st party cookie** enabled in you reporting suite.
105-
106-
Thus our recommendation is to take the slightly inflated user count, and just use the Segment `userId` as the `visitorId`. Yes, you'll have two user profiles if you have any anonymous client side events, but you can always set up custom eVars to connect the few anonymous events to the right user.
107-
108-
If you're using the `marketingCloudVisitorID`, we recommend doing this and including it in `context["Adobe Analytics"].marketingCloudVisitorId`. Segment sends both the `userId` (or `anonymousId`, if the call is anonymous) in the `<visitorId>` tag and the MCVID in the `<marketingCloudVisitorID>` tag, and Adobe handles it from there.
109-
110-
**Note**: If you pass in the `visitorId` in a destination specific `integration` object within your Segment `page` or `track` events, then the `visitorId` persists on page or track calls that occur after an identify call. This effectively supersedes Segment setting the `visitorId` variable to your `userId` after an `identify` call.
111-
112-
<!-- TODO if you manually pass the visitorID in the Segment page or track call, then it sticks around after identify is called, and it prevents it from breaking - whatever you pass in the integrations object overrides what segment's adobe integration code logic does-->
113-
114-
We know this is daunting territory, so don't hesitate to contact us directly for guidance!
100+
If you don't specify a custom linkUrl in the integration specific object in the payload, Segment defaults to mapping `linkUrl` to the `(context.page.url)`. If no is URL present, Segment sets `linkUrl` to `No linkUrl provided`.
115101

116102
## Populating Custom Links report with server side data
117103

118-
Since we cannot automatically track page data for **server side** calls, if you want to populate the **Custom Links** report in Adobe Analytics, you must manually pass `context.page.url`.
104+
Since Segment cannot automatically track page data for **server side** calls, you must manually pass `context.page.url` if you want to populate the **Custom Links** report in Adobe Analytics.
105+
<!-- TODO this is a lot to parse. can we explain when you might do this? -->

0 commit comments

Comments
 (0)