比特率更改

本页介绍如何实施比特率更改事件。 查看相应报表变量的比特率更改(维度)比特率更改(量度)

比特率变化事件表示播放器已切换到不同的比特率。 首先更新QoE对象上的比特率值,然后触发比特率更改事件。 后端使用这些事件的计数来计算比特率更改维度和比特率更改量度,结果比特率值馈送平均比特率

属性
上下文数据变量
(无 — 由后端计数)
XDM事件类型
media.bitrateChange
Audience Manager特征
c_contextdata.a.media.qoe.bitrateChangeCount
必需
发送条件
比特率更改

建议的实施类型

Web SDK

使用sendEvent发送具有新比特率的media.bitrateChange事件:

code language-javascript
alloy("sendEvent", {
  xdm: {
    eventType: "media.bitrateChange",
    mediaCollection: {
      qoeDataDetails: {
        bitrate: 4500,
        droppedFrames: 0,
        framesPerSecond: 24,
        timeToStart: 0
      },
      sessionID: "{sid}",
      playhead: 120
    }
  }
});
iOS

使用新比特率更新QoE对象,然后触发比特率更改事件。

code language-swift
let qoeObject = Media.createQoEObjectWith(bitrate: 4500,
                                       startupTime: 0,
                                               fps: 24,
                                     droppedFrames: 0)
tracker.updateQoEObject(qoe: qoeObject)
tracker.trackEvent(event: MediaEvent.BitrateChange, info: nil, metadata: nil)
Android

使用新比特率更新QoE对象,然后触发比特率更改事件。

code language-kotlin
val qoeObject = Media.createQoEObject(4500L, 0.0, 24.0, 0L)
tracker.updateQoEObject(qoeObject)
tracker.trackEvent(Media.Event.BitrateChange, null, null)
Roku

使用带media.bitrateChangesendMediaEvent表示比特率更改。 在qoeDataDetails中包含新比特率:

code language-brightscript
m.aepSdk.sendMediaEvent({
    "xdm": {
        "eventType": "media.bitrateChange",
        "mediaCollection": {
            "qoeDataDetails": {
                "bitrate": 4500,
                "droppedFrames": 0,
                "framesPerSecond": 24,
                "timeToStart": 0
            },
            "playhead": 120
        }
    }
})
Media Edge API

使用更新的qoeDataDetails调用bitrateChange终结点:

code language-json
{
  "events": [{
    "xdm": {
      "eventType": "media.bitrateChange",
      "mediaCollection": {
        "qoeDataDetails": {
          "bitrate": 4500
        },
        "sessionID": "{sid}",
        "playhead": 120
      }
    }
  }]
}

旧版实施类型(仅限Analytics)

Media SDK JS 3.x

更新QoE对象并触发事件:

code language-javascript
var qoeObject = ADB.Media.createQoEObject(4500, 0, 24, 0);
tracker.updateQoEObject(qoeObject);
tracker.trackEvent(ADB.Media.Event.BitrateChange);
Chromecast

使用新比特率更新QoS对象,然后触发比特率更改事件:

code language-javascript
var qosInfo = ADBMobile.media.createQoSObject(
  4500,  // bitrate (kbps)
  0,     // startupTime
  24,    // fps
  0      // droppedFrames
);
ADBMobile.media.updateQoSObject(qosInfo);
ADBMobile.media.trackEvent(ADBMobile.media.Event.BitrateChange);
媒体收集API

使用新比特率发送bitrateChange POST请求:

code language-json
{
  "playerTime": { "playhead": 120, "ts": 1699523820000 },
  "eventType": "bitrateChange",
  "params": {
    "media.qoe.bitrate": 4500
  }
}

有关完整请求结构,请参阅媒体收集API事件引用

recommendation-more-help
media-analytics-help