追蹤播放器狀態
播放器狀態事件會追蹤檢視者在整個工作階段中與播放器控制項互動的方式。 核心媒體追蹤實作可選擇使用,且非必要。 五個可追蹤的狀態為: fullscreen、mute、closedCaptioning、pictureInPicture和inFocus。
播放器狀態事件有助於瞭解協助工具功能的使用情形,例如檢視器啟用隱藏式字幕或靜音的頻率。 此外,還可呈現全熒幕或內嵌檢視、子母畫面多工作業等檢視行為模式。
播放器事件
標準和自訂狀態
我們提供 5 種標準播放器狀態,您也可以新增自訂狀態。
ADB.Media.PlayerState.FullscreenfullScreenADB.Media.PlayerState.ClosedCaptioningclosedCaptioningADB.Media.PlayerState.MutemuteADB.Media.PlayerState.PictureInPicturepictureInPictureADB.Media.PlayerState.InFocusinFocus如需包括XDM路徑和量度定義的完整變數參考,請參閱播放器狀態變數。
自訂狀態:您可以建立自訂狀態來擷取應用程式特有的其他播放器行為。 如需建立自訂狀態物件的詳細資訊,請參閱媒體API參考: createStateObject。
實作步驟
準則
- 一個視訊工作階段 最多能有 10 個播放器狀態。
- 可使用任意的狀態組合。
- 如果傳遞了多個播放器狀態,只有前10個會保留,並轉送給下游的媒體後端。
- 10個狀態的上限適用於所有狀態,無論其為開啟或關閉。
- 狀態可以多次開始和結束,並計為單一狀態。 例如,
closedCaptioning可以啟動和停止五次,但計為一種狀態。 - 所有播放器狀態都會列入計算 (不分割)
- 系統會分別擷取每個播放工作階段的播放器狀態。 播放器狀態不會跨播放計算。
- 狀態停止後,不會維護應用程式狀態的相關知識。 狀態結束後,狀態必須重新開始才能繼續追蹤。
同時更新多個狀態
在XDM平台上,可在statesStart和statesEnd中使用陣列將多個狀態變更批次處理為單一statesUpdate呼叫。 在行動SDK上,每個狀態變更都需要個別呼叫。
下列範例會同時啟動靜音和子母畫面,然後轉換為全熒幕。
建議的實作型別
| code language-javascript |
|---|
|
行動SDK不支援批次處理程式 — 針對每個狀態變更傳送個別呼叫。
| code language-swift |
|---|
|
行動SDK不支援批次處理程式 — 針對每個狀態變更傳送個別呼叫。
| code language-kotlin |
|---|
|
| code language-brightscript |
|---|
|
| code language-sh |
|---|
|
舊版實作型別(僅限Analytics)
多項狀態變更需要個別呼叫。
| code language-javascript |
|---|
|
多項狀態變更需要個別呼叫。
| code language-javascript |
|---|
|
| code language-json |
|---|
|
長時間暫停
當視訊工作階段的暫停持續時間超過30分鐘時,API需要新的工作階段。 產生新的工作階段ID並保留所有作用中狀態,以便在新的sessionStart呼叫後立即透過stateStart個事件還原。
sessionStart → stateStart (fullscreen) → stateStart (mute) → pauseStart → (pings for 30 minutes) → sessionEnd
傳送sessionEnd之後,開始新的工作階段並立即重新傳送作用中狀態:
sessionStart → stateStart (fullscreen) → stateStart (mute) → ... other API events
狀態量度
系統會針對每個追蹤狀態運算三個量度,並在媒體關閉呼叫時傳送至Adobe Analytics:
a.media.states.[state.name].set = truetrue (若狀態在播放期間設定至少一次)a.media.states.[state.name].count = 4a.media.states.[state.name].time = 240