位元速率變更

本頁說明如何實作位元速率變更事件。 檢視對應報表變數的位元速率變更 (維度)位元速率變更 (量度)

位元速率變更事件表示播放器已切換至不同的位元速率。 請先更新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

使用sendMediaEvent搭配media.bitrateChange表示位元速率變更。 在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