跟踪播放器状态
播放器状态事件跟踪查看者在整个会话期间与播放器控件的交互方式。 核心媒体跟踪实施不需要这些参数,但这是可选参数。 五个可跟踪的状态是: fullscreen、mute、closedCaptioning、pictureInPicture和inFocus。
播放器状态事件有助于了解辅助功能用法,例如查看器启用隐藏式字幕或静音的频率。 此外,它们还可揭示查看行为模式,例如全屏与内联查看以及画中画多任务处理。
播放器事件
标准状态和自定义状态
有五个标准播放器状态可用,而且您可以添加自己的自定义状态。
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调用。 在Mobile SDK上,每个状态更改都需要单独的调用。
以下示例将静音和画中画结合使用,然后转换为全屏。
建议的实施类型
| code language-javascript |
|---|
|
Mobile SDK不支持批量处理 — 请为每个状态更改发送单独的调用。
| code language-swift |
|---|
|
Mobile 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 = truetruea.media.states.[state.name].count = 4a.media.states.[state.name].time = 240