在 Android 中跟踪核心播放 track-core-playback-on-android
本文档介绍 2.x 版本的 SDK 中的跟踪。
IMPORTANT
如果您实施的是 1.x 版本的 SDK,可以在此处下载适用于 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
实时内容的流类型。 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
。在调用trackSessionEnd
之后,任何其他track*
API 调用都将被忽略(除了用于新的媒体跟踪会话的trackSessionStart
之外)。 -
跟踪所有可能的暂停方案
识别媒体播放器中的媒体暂停事件并调用
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