Asset ID

This page covers data collection for the Asset ID variable. See Asset ID for the corresponding reporting dimension.

The asset ID variable is the unique identifier for the underlying media asset (for example, an episode ID, a movie ID, or a live event ID). Typically sourced from metadata authorities such as EIDR, TMS/Gracenote, or Rovi, but proprietary or in-house IDs are also accepted. Use it when you need to compare engagement across distribution platforms that may assign different content IDs to the same underlying asset.

NOTE
The XDM collection field uses uppercase ID: assetID.
Property
Value
Context data variable
a.media.asset
XDM collection field
xdm.mediaCollection.sessionDetails.assetID
Audience Manager trait
c_contextdata.a.media.asset
Required
No
Sent with
Session start, session close
Web SDK

Set assetID inside xdm.mediaCollection.sessionDetails when calling sendEvent:

code language-javascript
alloy("sendEvent", {
  xdm: {
    eventType: "media.sessionStart",
    mediaCollection: {
      sessionDetails: {
        assetID: "89745363"
      },
      playhead: 0
    }
  }
});
iOS

Pass the asset ID as a metadata key in the HashMap argument to trackSessionStart. Use MediaConstants.VideoMetadataKeys.ASSET_ID.

code language-swift
var metadata: [String: String] = [:]
metadata[MediaConstants.VideoMetadataKeys.ASSET_ID] = "89745363"

tracker.trackSessionStart(info: mediaObject, metadata: metadata)
Android

Pass the asset ID as a metadata key in the HashMap argument to trackSessionStart. Use MediaConstants.VideoMetadataKeys.ASSET_ID.

code language-kotlin
val metadata = HashMap<String, String>()
metadata[MediaConstants.VideoMetadataKeys.ASSET_ID] = "89745363"

tracker.trackSessionStart(mediaInfo, metadata)
Roku

Use createMediaSession to set assetID inside sessionDetails:

code language-brightscript
m.aepSdk.createMediaSession({
    "xdm": {
        "eventType": "media.sessionStart",
        "mediaCollection": {
            "sessionDetails": {
                "assetID": "89745363"
            },
            "playhead": 0
        }
    }
})
Media Edge API

Call the sessionStart endpoint with assetID inside xdm.mediaCollection.sessionDetails:

code language-json
{
  "events": [{
    "xdm": {
      "eventType": "media.sessionStart",
      "mediaCollection": {
        "sessionDetails": {
          "name": "video-123",
          "length": 128,
          "contentType": "vod",
          "playerName": "HTML5 Player",
          "channel": "Sports",
          "assetID": "89745363"
        },
        "playhead": 0
      }
    }
  }]
}

Legacy implementation types (Analytics-only)

Media SDK JS 3.x

Pass the asset ID in the contextData object using ADB.Media.VideoMetadataKeys.AssetId:

code language-javascript
var contextData = {};
contextData[ADB.Media.VideoMetadataKeys.AssetId] = "89745363";

tracker.trackSessionStart(mediaInfo, contextData);
Chromecast

Use ADBMobile.media.VideoMetadataKeys.ASSET_ID to set the asset ID in the StandardMediaMetadata property of the media object before calling trackSessionStart:

code language-javascript
var mediaInfo = ADBMobile.media.createMediaObject("My Video", "video-123", 128,
  ADBMobile.media.StreamType.VOD, ADBMobile.media.MediaType.Video);
var standardMetadata = {};
standardMetadata[ADBMobile.media.VideoMetadataKeys.ASSET_ID] = "89745363";
mediaInfo[ADBMobile.media.MediaObjectKey.StandardMediaMetadata] = standardMetadata;
ADBMobile.media.trackSessionStart(mediaInfo, null);
Media Collection API

Include media.assetId in the params object:

code language-json
{
  "playerTime": { "playhead": 0, "ts": 1699523820000 },
  "eventType": "sessionStart",
  "params": {
    "media.assetId": "89745363"
  }
}

See the Media Collection API sessions reference for the full request structure.

recommendation-more-help
media-analytics-help