Dropped frames

This page covers data collection for the Dropped frames variable. See Dropped frames for the corresponding reporting dimension and metric.

The dropped frames variable is the running count of frames the player has dropped during the session. Set it on the QoE object and update the value whenever the player reports new drops. The backend reports the latest value at session close.

Property
Value
Context data variable
a.media.qoe.droppedFrameCount
XDM collection field
mediaCollection.qoeDataDetails.droppedFrames
Audience Manager trait
c_contextdata.a.media.qoe.droppedFrameCount
Required
No
Sent with
Quality events (bitrate change, buffer start, error), session close

Web SDK

Set droppedFrames inside mediaCollection.qoeDataDetails when calling sendEvent:

alloy("sendEvent", {
  xdm: {
    eventType: "media.bitrateChange",
    mediaCollection: {
      qoeDataDetails: {
        bitrate: 3200,
        droppedFrames: 3
      },
      sessionID: "{sid}",
      playhead: 90
    }
  }
});

Mobile SDK

Pass dropped frames as the fourth argument to createQoEObject. Update the tracker before any quality event fires.

iOS (Swift)

let qoeObject = Media.createQoEObjectWith(bitrate: 3200,
                                       startupTime: 0,
                                               fps: 24,
                                     droppedFrames: 3)

tracker.updateQoEObject(qoe: qoeObject)

Android (Kotlin)

val qoeObject = Media.createQoEObject(3200L,
                                      0.0,
                                      24.0,
                                      3L)

tracker.updateQoEObject(qoeObject)

Roku (BrightScript)

Set droppedFrames inside mediaCollection.qoeDataDetails when calling sendMediaEvent:

m.aepSdk.sendMediaEvent({
    "xdm": {
        "eventType": "media.bitrateChange",
        "mediaCollection": {
            "qoeDataDetails": {
                "bitrate": 3200,
                "droppedFrames": 3
            },
            "playhead": 90
        }
    }
})

Media Edge API

Call the bitrateChange endpoint with droppedFrames inside mediaCollection.qoeDataDetails:

{
  "events": [{
    "xdm": {
      "eventType": "media.bitrateChange",
      "mediaCollection": {
        "qoeDataDetails": {
          "droppedFrames": 3
        },
        "sessionID": "{sid}",
        "playhead": 90
      }
    }
  }]
}

Media SDK

Pass dropped frames as the fourth argument to ADB.Media.createQoEObject:

var qoeObject = ADB.Media.createQoEObject(3200, 0, 24, 3);
tracker.updateQoEObject(qoeObject);

Media Collection API

Include media.qoe.droppedFrames in the params object:

{
  "playerTime": { "playhead": 90, "ts": 1699523820000 },
  "eventType": "bitrateChange",
  "params": {
    "media.qoe.droppedFrames": 3
  }
}

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

recommendation-more-help
media-analytics-help