# Setting Up Adobe Analytics in RudderStack

To enable sending data to Adobe Analytics, you will first need to add it as a destination in RudderStack. Once the destination is configured and enabled, events from RudderStack will start flowing to Adobe Analytics.

Before configuring Adobe Analytics as a destination, verify if the source platform supports sending events to RudderStack, by referring to the table below:

| **Connection Mode** | **Web**       | **Mobile**    | **Server**    |
| ------------------- | ------------- | ------------- | ------------- |
| **Device Mode**     | **Supported** | **Supported** | **-**         |
| **Cloud Mode**      | **Supported** | **Supported** | **Supported** |

To know more about the difference between Cloud mode and Device mode in RudderStack, read the [RudderStack connection modes](https://rudderstack.com/docs/rudderstack-cloud/rudderstack-connection-modes/) guide.

Once you've confirmed that the source platform supports sending data to Adobe Analytics, follow these steps:

* Choose a source for which you would like to add Adobe Analytics as a destination.
* From the list of destinations, select **Adobe Analytics**. Assign a name to the destination and click on **Next**.
* Enter the relevant **Connection Settings** by referring to the following section.

## Connection Settings

This section lists all the relevant connection settings to successfully set up Adobe Analytics as a destination in RudderStack.

![](https://876606571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lq5Ea6fHVg3dSxMCgyQ%2Fuploads%2Fgit-blob-0ec92e11b2c44e022ef41078f5a272a111f560d2%2Fadobe-1.png?alt=media) ![](https://876606571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lq5Ea6fHVg3dSxMCgyQ%2Fuploads%2Fgit-blob-0a18a96bb77ae2b03ec85b08d7c37ec08e90d8e8%2FAdobe-2.png?alt=media)

* **Tracking Server URL**: The `trackingServer` variable determines the location an image request is sent. Eg: If url is [`http://abc.a.b`](http://abc.a.b) ,the tracking server URL will be `abc.a.b`.

**If this variable is defined incorrectly, your implementation may experience data loss.**

For more information on this setting, refer to the [Adobe Analytics documentation](https://experienceleague.adobe.com/docs/analytics/implementation/vars/config-vars/trackingserver.html?lang=en).

* **Tracking Server Secure URL**: The `trackingServerSecure` variable determines the location an image request is sent over HTTPS. If this variable is not defined correctly, your implementation can experience data loss.

For more information on this setting, refer to the [Adobe Analytics documentation](https://experienceleague.adobe.com/docs/analytics/implementation/vars/config-vars/trackingserversecure.html?lang=en).

* **Report Suite ID**(s): The Report Suite ID can be found in your Adobe Analytics Settings page. Multiple IDs can be separated by commas. For example: `ab.cd`,`ef.gh`,`ij.kl`.
* **Check for Heartbeat calls to be made over HTTPS**: If this setting is enabled and the Heartbeat Tracking Server URL is present, the SSL value will be set to `true` so that the calls go over HTTPs.
* **Heartbeat Tracking Server URL**: If assigned, this will be used as tracking server URL instead of the URL assigned in the **Tracking Server URL** field. RudderStack will set all heartbeat configurations if this URL is present.

For more information on this setting, refer to the [Adobe Analytics documentation](https://experienceleague.adobe.com/docs/media-analytics/using/sdk-implement/setup/setup-overview.html?lang=en).

* **Adobe Heartbeat Settings**: This setting is used to map your RudderStack video events to Adobe Heartbeat Events. Find more information on how this mapping is done in the [**Adobe Analytics Heartbeat Measurement**](https://rudderstack.com/docs/destinations/analytics/adobe-analytics/adobe-analytics-heartbeat/) page.
* **Adobe Analytics Javascript SDK URL/Heartbeat SDK URL**: Add your proxy URL where you will be hosting the `adobe-analytics-js.js` and `adobe-analytics-js-heartbeat.js`. By default, we host them at <https://cdn.rudderlabs.com/adobe-analytics-js/adobe-analytics-js.js> and <https://cdn.rudderlabs.com/adobe-analytics-js/adobe-analytics-js-heartbeat.js> respectively.

### Identity Resolution

![](https://876606571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lq5Ea6fHVg3dSxMCgyQ%2Fuploads%2Fgit-blob-e4b25358ffd20a22e7a777cf7378a8f689b87efc%2Fimage%20\(110\).png?alt=media) ![](https://876606571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lq5Ea6fHVg3dSxMCgyQ%2Fuploads%2Fgit-blob-23edb0da317f050b9faf4c5e0f2636459f273eee%2FAdobe-3.png?alt=media)

* **Marketing Cloud Organization ID**: If you want to use `visitorAPI.js`, enter this field. For example: `99887766ABC@AdobeOrg`.
* **Drop Visitor ID**: If enabled, RudderStack does not assign the `userId` to `visitorID`.

For more information on this setting, refer to the [Adobe Analytics documentation](https://experienceleague.adobe.com/docs/id-service/using/implementation/setup-analytics.html?lang=en#section-6053a6b7c16c466a9f9fdbf9cb9db3df).

### Timestamps

* **Timestamp Option**: Adobe Analytics has Report Suites that accepts timestamped, non-timestamped or hybrid data. Note that `window.s.timestamp` will be affected. Also depending on this value, `visitorID` will be set if the drop visitor id is off.
* If the timestamp option is disabled, then `visitorID` will be set.
* If timestamp option is set to hybrid and the Prefer Visitor ID setting is on, then `visitorID` will be set.
* For all other cases, RudderStack does not set a `visitorID`.

Also note the following regarding timestamps:

* If the timestamp option is enabled, then timestamp will be set.
* If the timestamp option is hybrid and Prefer Visitor ID is off, then timestamp will be set.
* **Send Both Timestamp and VisitorID for Timestamp Optional Reporting Suites**: This setting lets you choose whether to send both the timestamp and the visitor ID when sending server-side events, in case you are using the [Timestamps Optional Reporting Suite](https://experienceleague.adobe.com/docs/analytics/admin/admin-tools/timestamp-optional.html?lang=en).

Enabling this setting might lead the data to be out of order. Hence, it is not recommended by Adobe. In order to make it work, you need to enable the **Optional Timestamp** setting in **Reporting Suites**.

* **No Fallbacks for Visitor ID**: Enabling this setting removes the fallbacks. However, it is applicable only for the server-side events when the **Drop Visitor ID** setting is disabled and **marketingCloudId** is sent in the Adobe Analytics integration object. The priority order of setting the Adobe Analytics visitor ID is the destination-specific setting for `visitorId`, followed by `userId`, then `anonymousId`.
* **Prefer Visitor ID**: Adobe does not allow sending both `visitorID` and timestamp. Hence, this option is used when the timestamp option is set as hybrid. Also, note that if this option is enabled, `visitorID` will be set. If disabled, the timestamp value will be set.

For more information on this setting, refer to the [Adobe Analytics documentation](https://experienceleague.adobe.com/docs/analytics/implementation/vars/page-vars/timestamp.html?lang=en).

* **Enable pageName for Track Events**: When enabled, RudderStack only tracks events by sending a `pageName`.

### Mappings

![](https://876606571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lq5Ea6fHVg3dSxMCgyQ%2Fuploads%2Fgit-blob-83c834f4251ac9a87f28c3ebb9453ee7fdacbe58%2Fimage%20\(111\).png?alt=media) ![](https://876606571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lq5Ea6fHVg3dSxMCgyQ%2Fuploads%2Fgit-blob-433caf65cf2f488a9547b97d7a81a44b27c501d5%2Fmapping-adobe.png?alt=media)

* **Map Rudder Events to Adobe Custom Events**: This setting allows you to add one or multiple custom Adobe events separated by comma.
* **Map Rudder Context data to Adobe Context Data**: Context data variables allow you to you define custom variables on each page that the processing rules apply and can read. Instead of explicitly assigning values to the analytics variables, you can send your data in via these context data variables. The processing rules take the values from the context data variables and pass them into the respective analytics variables.

This setting allows you to map the key present under the context/properties of the RudderStack message to the property name you want to send to the Adobe context data. An example is as shown below:

```javascript
"context": {
  "contextProperties": {
    "prop1": "val1",
    "prop2": "val2"
  }
}
```

If you want to set `prop1` to Adobe's context data `property1`, then map with `contextProperties.prop1` --> `property1`.

If you want to send top level properties `anonymousId`, `messageId`, `event` then simply enter the key.

For more information on this setting, refer to the [Adobe Analytics documentation](https://experienceleague.adobe.com/docs/analytics/implementation/vars/page-vars/contextdata.html?lang=en).

* **Add Prefix for Context Data**: If you would like to prefix your RudderStack properties before sending them as `contextData`, you can enter a prefix here which will be automatically appended.
* **Map Rudder Properties to Adobe eVars**: eVars are custom variables that you can use as per your requirement. Each eVar is a string containing custom values specific to your organization, with a maximum length of 255 bytes. Note that values longer than 255 bytes are automatically truncated when sent to Adobe.

This setting lets you map any RudderStack property with the eVar you want.

Only enter the index number of the eVar you want to set.

For more information on this setting, refer to the [Adobe Analytics documentation](https://experienceleague.adobe.com/docs/analytics/implementation/vars/page-vars/evar.html?lang=en).

![](https://876606571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lq5Ea6fHVg3dSxMCgyQ%2Fuploads%2Fgit-blob-21d8e11f72e7fd4a2ca1660ad0ead39c7ee531f3%2Fimage%20\(108\).png?alt=media)

* **Map Rudder Properties to Adobe Hierarchy properties**: Hierarchy variables are the custom variables that allow you to see a site’s structure. By default, Adobe supports up to 5 hierarchy variables in your implementation.

This setting lets you map any RudderStack property with the hierarchy variable you want.

Only enter the index number of the hierarchy variable that you want to set.

For more information on this setting, refer to the [Adobe Analytics documentation](https://experienceleague.adobe.com/docs/analytics/implementation/vars/page-vars/hier.html?lang=en).

* **Map Rudder Properties to Adobe list properties**: List variables are custom variables that you can use as per your requirement. They work similarly to eVars, except they can contain multiple values. Also, list variables do not have a character limit.

This setting lets you map any RudderStack property with the list you want.

Enter only the index number of the list you want to set to. The list properties should be an array/string separated by commas. Otherwise, they will be dropped.

For more information, refer to the [Adobe Analytics documentation](https://experienceleague.adobe.com/docs/analytics/implementation/vars/page-vars/list.html?lang=en).

* **Map Rudder Property with Delimiters for list properties**: The list variables need to be sent as a string. So if there is a list of properties, it needs to be delimited. RudderStack lets you set any of the delimiters from `, ; / : |`.

![](https://876606571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lq5Ea6fHVg3dSxMCgyQ%2Fuploads%2Fgit-blob-fe4dad1f82feb78a12369430c4357405e4610e7a%2Fimage%20\(109\).png?alt=media)

* **Map Rudder Properties to Adobe Custom properties**: Props are custom variables that you can use as per your requirement. This setting lets you map any RudderStack property with the prop you want to set it to.

Enter only the index number of the prop you want to set.

For more information, refer to the [Adobe Analytics documentation](https://experienceleague.adobe.com/docs/analytics/implementation/vars/page-vars/prop.html?lang=en).

* **Map Rudder Property with Delimiters for Adobe Custom properties**: The property variables need to be sent as a string. So if there is a list of properties, it needs to be delimited. RudderStack lets you set any of the delimiters from `, ; / : |`.

### Merchandise Event Level Settings

* **Map Rudder Events to Adobe Merchandise events**: This setting lets you map the RudderStack event with the currency/purchase type of the Adobe event. For example: `event5`.
* **Increment or Currency Properties to add to merchandise events at event level**: The RudderStack property that has a currency/counter value should be added here. This will then be used to create the event string like `purchase,event5=19.9`. RudderStack automatically sets the `currencyCode` value. (The default value is USD).

For more information, refer to the [Adobe Analytics documentation](https://experienceleague.adobe.com/docs/analytics/implementation/vars/page-vars/events/events-overview.html?lang=en).

### Merchandise Product Level Settings

![](https://876606571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lq5Ea6fHVg3dSxMCgyQ%2Fuploads%2Fgit-blob-0c8668f3fe2700586910126dca38ca3941251b77%2Fimage%20\(107\).png?alt=media)

* **Map Rudder Events to Adobe Merchandise events**: This setting lets you map a RudderStack event with a currency/purchase type of an Adobe event.
* **Properties to add to merchandise events at product level**: With this setting, the RudderStack property that has a currency/counter value should be added. This will be used to create a product string like `[category][item][quantity][total][incrementor][merchString]`.

![](https://876606571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lq5Ea6fHVg3dSxMCgyQ%2Fuploads%2Fgit-blob-f5a8987e2ff72166485db609e23e51a44b767642%2Fimage%20\(105\).png?alt=media)

* **Map Rudder Properties to eVars at product level**: Lets you map the RudderStack properties you want to set to eVars.

Set only the index. The eVars will be appended with `|` and sent along with the product string.

For more information, refer to the [Adobe Analytics documentation](https://experienceleague.adobe.com/docs/analytics/implementation/vars/page-vars/evar-merchandising.html?lang=en).

* **Product Identifier**: Adobe Analytics accepts only a single product identifier. This setting lets you choose from a SKU/ID/Name of the product.

## Contact Us

For more information on any of the sections covered in this guide, you can [**contact us**](mailto:%20docs@rudderstack.com) or start a conversation in our [**Slack**](https://rudderstack.com/join-rudderstack-slack-community) community.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://rudderlabs.gitbook.io/rudderlabs-1/docs/destinations/analytics/adobe-analytics/setting-up-adobe-analytics-in-rudderstack.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
