XDM object variable mapping to Adobe Analytics
- Topics:
- Implementation Basics
CREATED FOR:
- Admin
- Developer
The following table shows the XDM variables that the Adobe Experience Platform Edge Network automatically maps into Adobe Analytics. If you use these XDM field paths, no additional configuration is necessary to send data to Adobe Analytics. These fields are included in the Adobe Analytics ExperienceEvent Template field group. Use of these fields are recommended if you intend to send data to both Adobe Analytics and Adobe Experience Platform.
If your organization plans to move to Customer Journey Analytics, Adobe recommends instead using the data object to send data directly to Adobe Analytics without conforming to a schema. This strategy allows your organization to use your own schema, instead of using the Adobe Analytics ExperienceEvent Template (which is less applicable to Customer Journey Analytics). See Data object variable mapping to Adobe Analytics for a similar mapping table.
Value priorities
Most XDM object fields in this table coincide with a data object field. If you set both a given XDM object field and its respective data object field, the data object field takes priority. If you use both the XDM object field and the data object field, Adobe recommends setting custom events using the data object field. If the field data.__adobe.analytics.events is present, it overwrites all XDM object fields related commerce and custom events.
XDM object field mapping
Previous updates to this table can be found on this page’s commit history on GitHub.
xdm.application.isClosexdm.application.isInstallxdm.application.closeTypeclose (A lifecycle session ends and a pause event was received for the previous session) and unknown (A lifecycle session ends without a pause event). Helps set the mobile lifecycle metric Crashes metric.xdm.application.isInstallxdm.application.isLaunchxdm.application.namexdm.application.isUpgradexdm.application.versionxdm.application.sessionLengthxdm.commerce.checkouts.idxdm.commerce.checkouts.valuexdm.commerce.order.currencyCodexdm.commerce.order.purchaseIDxdm.commerce.order.payments[0].transactionIDxdm.commerce.productListAdds.idxdm.commerce.productListAdds.valuexdm.commerce.productListOpens.idxdm.commerce.productListOpens.valuexdm.commerce.productListRemovals.idxdm.commerce.productListRemovals.valuexdm.commerce.productListViews.idxdm.commerce.productListViews.valuexdm.commerce.productViews.idxdm.commerce.productViews.valuexdm.commerce.purchases.valuexdm.device.modelxdm.device.colorDepthxdm.device.screenHeightxdm.device.screenWidthxdm.device.typexdm.environment.browserDetails.acceptLanguagexdm.environment.browserDetails.cookiesEnabledY (the browser accepts cookies) and N (the browser rejects cookies).xdm.environment.browserDetails.javaEnabledxdm.environment.browserDetails.userAgentUser-Agent HTTP request header. You can map this field to an eVar if you would like to use it in reports.xdm.environment.browserDetails.viewportHeightxdm.environment.browserDetails.viewportWidthxdm.environment.carrierxdm.environment.connectionTypexdm.environment._dc.languagea.locale. Used only if xdm.environment.language is not set. Adobe recommends using this field over xdm.environment.language.xdm.environment.ipV4X-Forwarded-For HTTP header.xdm.environment.languagea.locale. Adobe recommends using xdm.environment._dc.language instead.xdm.environment.operatingSystemxdm.environment.operatingSystemVersionxdm._experience.analytics.customDimensions.eVars.eVar1[...]xdm._experience.analytics.customDimensions.eVars.eVar250xdm._experience.analytics.customDimensions.hierarchies.hier1[...]xdm._experience.analytics.customDimensions.hierarchies.hier5xdm._experience.analytics.customDimensions.listProps.prop1.delimiter[...]xdm._experience.analytics.customDimensions.listProps.prop75.delimiterxdm._experience.analytics.customDimensions.listProps.prop1.values[...]xdm._experience.analytics.customDimensions.listProps.prop75.valuesxdm._experience.analytics.customDimensions.lists.list1.list[].value[...]xdm._experience.analytics.customDimensions.lists.list3.list[].valuevalue strings in each respective list[] array to its respective List variable. The delimiter is automatically chosen based on the value set in Report suite settings.xdm._experience.analytics.customDimensions.props.prop1[...]xdm._experience.analytics.customDimensions.props.prop75xdm._experience.analytics.event1to100.event1.id[...]xdm._experience.analytics.event901to1000.event1000.idevent678, use xdm._experience.analytics.event601to700.event678.id.xdm._experience.analytics.event1to100.event1.value[...]xdm._experience.analytics.event901to1000.event1000.valueevent567 is xdm._experience.analytics.event501to600.event567.value.xdm.identityMap.ECID[0].idxdm.marketing.trackingCodexdm.media.mediaTimed.completes.valuexdm.media.mediaTimed.dropBeforeStart.valuea.media.view, a.media.timePlayed, a.media.playxdm.media.mediaTimed.federated.valuexdm.media.mediaTimed.firstQuartiles.valuexdm.media.mediaTimed.mediaSegmentView.valuexdm.media.mediaTimed.midpoints.valuexdm.media.mediaTimed.pauseTime.valuexdm.media.mediaTimed.pauses.valuexdm.mediaCollection.sessionDetails.assetIDxdm.mediaCollection.sessionDetails.friendlyNamexdm.mediaCollection.sessionDetails.originatorxdm.mediaCollection.sessionDetails.episodexdm.mediaCollection.sessionDetails.genrexdm.mediaCollection.sessionDetails.ratingxdm.mediaCollection.sessionDetails.seasonxdm.mediaCollection.sessionDetails.namexdm.mediaCollection.sessionDetails.showxdm.mediaCollection.sessionDetails.showTypexdm.mediaCollection.sessionDetails.lengthxdm.media.mediaTimed.primaryAssetViewDetails.@idxdm.mediaCollection.sessionDetails.channelxdm.mediaCollection.sessionDetails.contentTypexdm.mediaCollection.sessionDetails.networkxdm.media.mediaTimed.primaryAssetViewDetails.mediaSegmentView.valuexdm.mediaCollection.sessionDetails.playerNamexdm.mediaCollection.sessionDetails.appVersionxdm.mediaCollection.sessionDetails.feedxdm.mediaCollection.sessionDetails.streamFormatxdm.media.mediaTimed.progress10.valuexdm.media.mediaTimed.progress95.valuexdm.mediaCollection.sessionDetails.hasResumexdm.media.mediaTimed.starts.valuexdm.media.mediaTimed.thirdQuartiles.valuexdm.media.mediaTimed.timePlayed.valuexdm.media.mediaTimed.totalTimePlayed.valuexdm.placeContext.geo._schema.latitudexdm.placeContext.geo._schema.longitudexdm.placeContext.geo.postalCodexdm.placeContext.geo.stateProvincexdm.placeContext.localTimet_time_info in Data feeds.xdm.productListItems[]._experience.analytics.customDimensions.eVars.eVar1[...]xdm.productListItems[]._experience.analytics.customDimensions.eVars.eVar250xdm.productListItems[]._experience.analytics.event1to100.event1.value[...]xdm.productListItems[]._experience.analytics.event901-1000.event1000.valuexdm.productListItems[].productCategories[].categoryIDxdm.productListItems[].namexdm.productListItems[].priceTotalxdm.productListItems[].quantityxdm.productListItems[].SKUxdm.web.webInteraction.URLxdm.web.webInteraction.namexdm.web.webInteraction.typexdm.web.webInteraction.typeother (Custom links), download (Download links), and exit (Exit links).xdm.web.webPageDetails.URLxdm.web.webPageDetails.isErrorPagexdm.web.webPageDetails.namexdm.web.webPageDetails.serverxdm.web.webPageDetails.siteSectionxdm.web.webReferrer.URLMapping other XDM fields to Analytics variables
If there are any dimensions or metrics that you want to add to Adobe Analytics, you can do so through Context data variables.
Implicit mapping
Any XDM field elements that are not automatically mapped are sent to Adobe Analytics as context data with the prefix a.x.. You can then map this context data variable to the desired Analytics variable using processing rules. For example, if you send the following event:
alloy("event",{
"xdm":{
"_atag":{
"search":{
"term":"Example search term"
}
}
}
})
The Web SDK sends that data to Adobe Analytics as the context data variable a.x._atag.search.term. You can then use a processing rule to assign that context data variable value to the desired Analytics variable, such as an eVar:
Explicit mapping
You can also explicitly map XDM field elements as context data. Any XDM field element that is explicitly mapped, using the contextData element, is sent to Adobe Analytics as context data without a prefix. You can then map this context data variable to the desired Analytics variable using processing rules. For example, if you send the following event:
alloy("event",{
"xdm":{
"_atag":{
"analytics": {
"contextData" : {
"someValue" : "1"
}
}
}
}
})
The Web SDK sends that data to Adobe Analytics as the context data variable somevalue with value 1. You can then use a processing rule to assign that context data variable value to the desired Analytics variable, such as an eVar: