Episode

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

The episode variable is the episode number within the season (typically a string integer like "13"). Pair with Show and Season so engagement can be broken out by individual episode.

Property
Value
Context data variable
a.media.episode
XDM collection field
mediaCollection.sessionDetails.episode
Required
No
Sent with
Session start, session close

Web SDK

Set episode inside mediaCollection.sessionDetails when calling sendEvent:

alloy("sendEvent", {
  xdm: {
    eventType: "media.sessionStart",
    mediaCollection: {
      sessionDetails: {
        episode: "13"
      },
      playhead: 0
    }
  }
});

Mobile SDK

Pass the episode number as a metadata key in the HashMap argument to trackSessionStart. Use MediaConstants.VideoMetadataKeys.EPISODE.

iOS (Swift)

var metadata: [String: String] = [:]
metadata[MediaConstants.VideoMetadataKeys.EPISODE] = "13"

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

Android (Kotlin)

val metadata = HashMap<String, String>()
metadata[MediaConstants.VideoMetadataKeys.EPISODE] = "13"

tracker.trackSessionStart(mediaInfo, metadata)

Roku (BrightScript)

Use createMediaSession to set episode inside sessionDetails:

m.aepSdk.createMediaSession({
    "xdm": {
        "eventType": "media.sessionStart",
        "mediaCollection": {
            "sessionDetails": {
                "episode": "13"
            },
            "playhead": 0
        }
    }
})

Media Edge API

Call the sessionStart endpoint with episode inside mediaCollection.sessionDetails:

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

Media SDK

Pass the episode in the contextData object using ADB.Media.VideoMetadataKeys.Episode:

var contextData = {};
contextData[ADB.Media.VideoMetadataKeys.Episode] = "13";

tracker.trackSessionStart(mediaInfo, contextData);

Media Collection API

Include media.episode in the params object:

{
  "playerTime": { "playhead": 0, "ts": 1699523820000 },
  "eventType": "sessionStart",
  "params": {
    "media.episode": "13"
  }
}

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

recommendation-more-help
media-analytics-help