在 Android 上追蹤核心播放 track-core-playback-on-android
本文件涵蓋 SDK 2.x 版中的追蹤。
IMPORTANT
若您正在實作 SDK 1.x 版,您可以在此處下載適用於 Android 的 1.x 開發人員指南:下載 SDK
-
初始追蹤設定
識別使用者何時觸發播放的意圖 (使用者點擊「播放」及/或開啟自動播放) 並建立
MediaObject
例項。table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 3-align-center 7-align-center 11-align-center 15-align-center 19-align-center 23-align-center 變數名稱 說明 必填 name
媒體名稱 是 mediaId
媒體唯一識別碼 是 length
媒體長度 是 streamType
資料流類型 (請參閱下列 StreamType 常數) 是 mediaType
媒體類型 (請參閱下列 MediaType 常數) 是 StreamType
常數:table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 常數名稱 說明 VOD
隨選視訊的資料流類型。 LIVE
Live 內容的資料流類型。 LINEAR
Linear 內容的資料流類型。 AOD
隨選音效的資料流類型 AUDIOBOOK
有聲書的資料流類型 PODCAST
播客的資料流類型 MediaType
常數:table 0-row-2 1-row-2 2-row-2 常數名稱 說明 Audio
音效資料流的媒體類型。 Video
視訊資料流的媒體類型。 code language-none MediaHeartbeat.createMediaObject(<MEDIA_NAME>, <MEDIA_ID>, <MEDIA_LENGTH>, <STREAM_TYPE>, <MEDIA_TYPE>);
-
附加中繼資料
可選擇透過內容資料變數,將標準和/或自訂中繼資料物件附加到追蹤工作階段。
-
標準中繼資料
note note NOTE 將標準中繼資料物件附加到媒體物件為選用。 - 媒體中繼資料索引鍵 API 參考 - 標準中繼資料索引鍵 - Android
- 請在此處參閱完整的可用視訊中繼資料組:音效和視訊參數
-
自訂中繼資料
為自訂變數建立字典,並為此媒體填入資料。例如:
code language-java HashMap<String, String> mediaMetadata = new HashMap<String, String>(); mediaMetadata.put("isUserLoggedIn", "false"); mediaMetadata.put("tvStation", "Sample TV Station"); mediaMetadata.put("programmer", "Sample programmer");
-
-
追蹤開始播放的意圖
若要開始追蹤媒體工作階段,請呼叫媒體心率例項上的
trackSessionStart
。例如:code language-java public void onVideoLoad(Observable observable, Object data) { _heartbeat.trackSessionStart(mediaInfo, mediaMetadata); }
note tip TIP 秒數值是您在步驟 2 建立的自訂媒體中繼資料物件名稱。 note important IMPORTANT trackSessionStart
會追蹤使用者的播放意圖,而非播放的開始。此 API 用來載入媒體資料/中繼資料,以及估計開始 QoS 量度所需的時間 (trackSessionStart
與trackPlay
之間的時間)。note note NOTE 如果您未使用自訂媒體中繼資料,只要為 trackSessionStart
中的第二個引數傳送空白物件即可。 -
追蹤實際的播放開始
識別來自媒體播放器的媒體播放開始 (在畫面上轉譯了媒體的第一個時間格) 事件,並呼叫
trackPlay
:code language-java // Video is rendered on the screen) and call trackPlay. public void onVideoPlay(Observable observable, Object data) { _heartbeat.trackPlay(); }
-
追蹤播放完成
識別來自媒體播放器的媒體播放完成 (使用者已觀看內容至結尾) 事件,並呼叫
trackComplete
:code language-java public void onVideoComplete(Observable observable, Object data) { _heartbeat.trackComplete(); }
-
追蹤工作階段結尾
識別來自媒體播放器的媒體播放卸載/關閉 (使用者關閉媒體和/或媒體完成及卸載) 事件,並呼叫
trackSessionEnd
:code language-java // Closes the media and/or the media completed and unloaded, // and call trackSessionEnd(). public void onMainVideoUnload(Observable observable, Object data) { _heartbeat.trackSessionEnd(); }
note important IMPORTANT trackSessionEnd
會標記媒體追蹤工作階段的結尾。如果成功觀看工作階段至完成 (使用者觀看了內容至結尾),請確定在trackComplete
之前呼叫trackSessionEnd
。除了新媒體追蹤工作階段的trackSessionStart
外,在trackSessionEnd
之後會忽略任何其他track*
API 呼叫。 -
追蹤所有可能的暫停情況
識別來自媒體播放器媒體暫停的事件,並呼叫
trackPause
:code language-java public void onVideoPause(Observable observable, Object data) { _heartbeat.trackPause(); }
暫停情況
識別視訊播放器將暫停的任何案例,並確定正確呼叫
trackPause
。以下情形都要求應用程式呼叫trackPause()
:- 使用者明確在應用程式中點擊暫停。
- 播放器自行進入「暫停」狀態。
- (行動應用程式) - 使用者讓應用程式進入背景,但您希望應用程式保持工作階段開啟。
- (行動應用程式) - 發生任何類型的系統中斷,導致應用程式進入背景。例如,使用者接聽電話、或發生來自另一個應用程式的彈出視窗,但您希望應用程式維持工作階段進行中,讓使用者能夠從中斷點復原媒體。
-
識別來自播放器的媒體播放事件,和/或來自暫停的媒體恢復事件,並呼叫
trackPlay
。code language-java // trackPlay() public void onVideoPlay(Observable observable, Object data) { _heartbeat.trackPlay(); }
note tip TIP 這可能與在步驟 4 使用的事件來源相同。確保媒體播放恢復時,每個 trackPause()
API 呼叫都與下列trackPlay()
API 呼叫成對。
如需有關追蹤核心播放的詳細資訊,請參閱下列內容:
- 追蹤案例:沒有廣告的 VOD 播放
- 完整追蹤範例的 Android SDK 包含範例播放器。
recommendation-more-help
c8eee520-cef5-4f8c-a38a-d4952cfae4eb