XDM reporting schema
When you send media tracking events using the Adobe Experience Platform Edge Network, the Media Analytics backend processes those events and writes computed Experience Events to Platform datasets. Understanding which events reach Platform, and what the backend computes for you, helps you validate your implementation and build accurate reports in Customer Journey Analytics or Adobe Analytics.
Two distinct XDM schemas are used in different parts of the collection and reporting pipeline:
xdm.mediaCollectionxdm.mediaReportingFields present in mediaReporting but absent from the mediaCollection payload are derived from the full sequence of events in a session. You never send these fields; Adobe generates them.
Events that write to Platform datasets
Of the 12 trackable event types, only five generate individual Experience Event writes to datasets:
Backend-computed fields
The following fields appear in mediaReporting payloads but are never part of the collection payload. The backend derives them from the full event sequence.
Session-level (appear on sessionComplete):
xdm.mediaReporting.sessionDetails.timePlayedxdm.mediaReporting.sessionDetails.totalTimePlayedxdm.mediaReporting.sessionDetails.uniqueTimePlayedxdm.mediaReporting.sessionDetails.averageMinuteAudiencetimePlayed divided by content lengthxdm.mediaReporting.sessionDetails.estimatedStreamsxdm.mediaReporting.sessionDetails.adCountxdm.mediaReporting.sessionDetails.chapterCountxdm.mediaReporting.sessionDetails.pauseCount / xdm.mediaReporting.sessionDetails.pauseTimexdm.mediaReporting.sessionDetails.hasProgress10 … xdm.mediaReporting.sessionDetails.hasProgress95xdm.mediaReporting.sessionDetails.hasSegmentViewxdm.mediaReporting.sessionDetails.isCompleted / xdm.mediaReporting.sessionDetails.isPlayedxdm.mediaReporting.sessionDetails.secondsSinceLastCallxdm.mediaReporting.sessionDetails.segment[0-1])Ad-level (appear on adComplete):
xdm.mediaReporting.advertisingDetails.timePlayedxdm.mediaReporting.advertisingDetails.isCompletedChapter-level (appear on chapterComplete):
xdm.mediaReporting.chapterDetails.timePlayedxdm.mediaReporting.chapterDetails.isCompletedxdm.mediaReporting.chapterDetails.isStartedQoE (aggregated on sessionComplete):
xdm.mediaReporting.qoeDataDetails.bitrateAveragexdm.mediaReporting.qoeDataDetails.bitrateAverageBucketxdm.mediaReporting.qoeDataDetails.bitrateChangeCountxdm.mediaReporting.qoeDataDetails.errorCountxdm.mediaReporting.qoeDataDetails.droppedFramesxdm.mediaReporting.qoeDataDetails.playerSdkErrorsxdm.mediaReporting.qoeDataDetails.hasErrorImpactedStreamsxdm.mediaReporting.qoeDataDetails.hasDroppedFrameImpactedStreamsxdm.mediaReporting.qoeDataDetails.hasBitrateChangeImpactedStreamsDownloaded content
For sessions tracked using the downloaded endpoint, the backend automatically sets xdm.mediaReporting.sessionDetails.isDownloaded to true on the sessionStart reporting event. All other reporting events for downloaded sessions follow the same schema as live sessions. Use this field in CJA or Adobe Analytics to filter or segment downloaded playback.
See Downloaded endpoint in the Media Edge API reference for collection implementation details.
Validate your implementation
After sending events through the Media Edge API, verify your data landed correctly using one of the following methods:
Adobe Experience Platform dataset preview
- In CX Enterprise, navigate to Datasets and select your streaming media dataset.
- Select Preview dataset to see the most recently ingested Experience Events.
- Confirm that
eventTypevalues such asmedia.sessionStartandmedia.sessionCompleteappear with populatedmediaReportingfields.
Customer Journey Analytics dataset inspection
- In CJA, open the connection associated with your streaming media dataset.
- Select Add datasets and inspect the schema to confirm the
mediaReportingfields are mapped to the expected dimensions and metrics.
Adobe Analytics processing rules (if using Analytics destination)
For Adobe Analytics report suites receiving data via the Analytics source connector, you can use Processing Rules to map mediaReporting context data variables to custom props or eVars. The isDownloaded flag is available as a.media.downloaded.
XDM payload examples
The following examples show the complete mediaReporting XDM structure for each reporting event as written to Platform datasets. The _{tenantName} property represents your organization’s tenant namespace for any custom fields.
| code language-json |
|---|
|
| code language-json |
|---|
|
| code language-json |
|---|
|
| code language-json |
|---|
|
| code language-json |
|---|
|
Sessions tracked using the downloaded endpoint follow the same reporting schema with one key difference: xdm.mediaReporting.sessionDetails.isDownloaded is set to true on the sessionStart reporting event. All other event types are identical to the live content examples above.
| code language-json |
|---|
|