Stream format

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

The stream format variable identifies the quality tier of the stream (typically "HD" or "SD", but any string is accepted). Set it when you want to break out engagement, completion, or quality by delivery quality tier.

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

Web SDK

Set streamFormat inside mediaCollection.sessionDetails when calling sendEvent:

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

Mobile SDK

Pass the stream format as a metadata key in the HashMap argument to trackSessionStart. Use MediaConstants.VideoMetadataKeys.STREAM_FORMAT.

iOS (Swift)

var metadata: [String: String] = [:]
metadata[MediaConstants.VideoMetadataKeys.STREAM_FORMAT] = "HD"

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

Android (Kotlin)

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

tracker.trackSessionStart(mediaInfo, metadata)

Roku (BrightScript)

Use createMediaSession to set streamFormat inside sessionDetails:

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

Media Edge API

Call the sessionStart endpoint with streamFormat inside mediaCollection.sessionDetails:

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

Media SDK

Pass the stream format in the contextData object using ADB.Media.VideoMetadataKeys.StreamFormat:

var contextData = {};
contextData[ADB.Media.VideoMetadataKeys.StreamFormat] = "HD";

tracker.trackSessionStart(mediaInfo, contextData);

Media Collection API

Include media.streamFormat in the params object of your sessionStart POST request:

{
  "playerTime": { "playhead": 0, "ts": 1699523820000 },
  "eventType": "sessionStart",
  "params": {
    "media.streamFormat": "HD"
  }
}

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

recommendation-more-help
media-analytics-help