本文档介绍 2.x 版本的 SDK 中的跟踪。
如果您实施的是 1.x 版本的 SDK,可以在此处下载 1.x 开发人员指南:下载 SDK
初始跟踪设置
识别用户何时触发播放意图(用户点击“播放”和/或自动播放开启)并创建 MediaObject
实例。
MediaObject
引用:
变量名称 | 描述 | 必需 |
---|---|---|
name |
视频名称 | 是 |
mediaid |
视频唯一标识符 | 是 |
length |
视频长度 | 是 |
streamType |
流类型(请参阅下面的 StreamType 常量) | 是 |
mediaType |
媒体类型(请参阅下面的 MediaType 常量) | 是 |
StreamType
常量:
常量名称 | 描述 |
---|---|
MEDIA_STREAM_TYPE_VOD |
点播视频的流类型。 |
MEDIA_STREAM_TYPE_LIVE |
实时内容的流类型。 |
MEDIA_STREAM_TYPE_LINEAR |
线性内容的流类型。 |
MEDIA_STREAM_TYPE_AOD |
点播音频的流类型。 |
MEDIA_STREAM_TYPE_AUDIOBOOK |
有声读物的流类型。 |
MEDIA_STREAM_TYPE_PODCAST |
播客的流类型。 |
MediaType
常量:
常量名称 | 描述 |
---|---|
MEDIA_STREAM_TYPE_AUDIO |
音频流的媒体类型。 |
MEDIA_STREAM_TYPE_VIDEO |
视频流的媒体类型。 |
为包含 VOD 内容的视频创建媒体信息对象:
mediaInfo = adb_media_init_mediainfo(
"<MEDIA_NAME>",
"<MEDIA_ID>",
600,
ADBMobile().MEDIA_STREAM_TYPE_VOD,
ADBMobile().MEDIA_TYPE_VIDEO
)
或
mediaInfo = adb_media_init_mediainfo()
mediaInfo.name = "<MEDIA_NAME>"
mediaInfo.id = "<MEDIA_ID>"
mediaInfo.length = 600
mediaInfo.streamType = ADBMobile().MEDIA_STREAM_TYPE_VOD
mediaInfo.mediaType = ADBMobile().MEDIA_TYPE_VIDEO
为包含 AOD 内容的视频创建媒体信息对象:
mediaInfo = adb_media_init_mediainfo(
"<MEDIA_NAME>",
"<MEDIA_ID>",
600,
ADBMobile().MEDIA_STREAM_TYPE_AOD,
ADBMobile().MEDIA_TYPE_AUDIO
)
或
mediaInfo = adb_media_init_mediainfo()
mediaInfo.name = "<MEDIA_NAME>"
mediaInfo.id = "<MEDIA_ID>"
mediaInfo.length = 600
mediaInfo.streamType = ADBMobile().MEDIA_STREAM_TYPE_AOD
mediaInfo.mediaType = ADBMobile().MEDIA_TYPE_AUDIO
附加元数据
(可选)通过上下文数据变量将标准和/或自定义元数据对象附加到跟踪会话。
<div class="extension note">
<div>注意</div>
<div>
<p>将标准视频元数据对象附加到媒体对象是可选的。</p>
</div>
</div>
自定义元数据
为自定义变量创建变量对象,然后使用此视频的数据进行填充。例如:
mediaContextData = {}
mediaContextData["cmk1"] = "cmv1"
mediaContextData["cmk2"] = "cmv2"
跟踪开始播放的意图
要开始跟踪媒体会话,请在媒体心率实例中调用 trackSessionStart
:
ADBMobile().mediaTrackSessionStart(mediaInfo,mediaContextData)
第二个值是您在步骤 2 中创建的自定义视频元数据对象名称。
trackSessionStart
跟踪的是用户的播放意图,而不是播放的开始。此 API 用于加载视频数据/元数据并评估开启 QoS 量度的时间(trackSessionStart
和 trackPlay
之间的持续时间)。
如果不使用自定义视频元数据,则只需在 trackSessionStart
中为 data
参数发送一个空对象,如上面 iOS 示例中注释掉的行所示。
跟踪播放的实际开始事件
识别视频播放器中的视频播放开始事件(视频的第一帧呈现在屏幕上)并调用 trackPlay
:
ADBMobile().mediaTrackPlay()
更新播放头值
当媒体播放头发生变化时,通过调用 mediaUpdatePlayhead
API。
对于视频点播 (VOD),该值以从媒体项开头开始的秒数指定。
对于直播,如果播放器不提供有关内容持续时间的信息,则该值可以指定为自当天 UTC 午夜开始的秒数。
ADBMobile().mediaUpdatePlayhead(position)
调用 mediaUpdatePlayhead
API:
mediaUpdatePlayhead
API至少每秒执行一次。跟踪播放的结束事件
识别视频播放器中的视频播放结束事件(用户一直观看至内容的结尾)并调用 trackComplete
:
ADBMobile().mediaTrackComplete()
跟踪会话的结束事件
识别视频播放器中的视频播放卸载/关闭事件(用户关闭视频和/或视频已结束并卸载)并调用 trackSessionEnd
:
ADBMobile().mediaTrackSessionEnd()
trackSessionEnd
标记视频跟踪会话的结尾。如果会话成功观看至结束(用户一直观看内容至结尾),请确保先调用 trackComplete
,之后再调用 trackSessionEnd
。在调用 trackSessionEnd
之后,任何其他 track*
API 调用都将被忽略(除了用于新的视频跟踪会话的 trackSessionStart
之外)。
跟踪所有可能的暂停方案
识别视频播放器中的视频暂停事件并调用 trackPause
:
ADBMobile().mediaTrackPause()
暂停方案
识别视频播放器将会暂停的任何方案,并确保正确调用了 trackPause
。以下方案均要求应用程序调用 trackPause()
:
识别播放器中的视频播放事件和/或视频在暂停后继续播放的事件并调用 trackPlay
:
ADBMobile().mediaTrackPlay()
这可能与步骤 4 中所使用的事件源相同。请确保当视频播放继续时,每个 trackPause()
API 调用均与随后的一个 trackPlay()
API 调用相配对。