Show Menu
主题×

时间轴 3 - 章节

VOD、前置广告、暂停、缓冲、观看到内容的结尾

下图说明了播放头时间轴和用户操作的相应时间轴。每项操作及其随附请求的详细信息如下所述。

操作详细信息

操作 1 - 开始会话

操作
操作时间轴(秒)
播放头位置(秒)
客户端请求
按自动播放或播放按钮,视频开始加载。
0
0
/api/v1/sessions
实施详细信息
此调用表示​
用户播放视频的意图
。它会向客户端返回一个会话 ID (
{sid}
),用于标识会话中的所有后续跟踪调用。播放器状态不是“正在播放”,而是“正在启动”。 强制会话参数 必须包含在请求正文中的
params
映射中。在后端,此调用会生成一个 Adobe Analytics 启动调用。
示例请求正文
{ playerTime: { playhead: 0, ts: <timestamp> }, eventType:sessionStart, params: { "media.playerName": "sample-html5-api-player", "analytics.trackingServer": "[ _YOUR-TS_ ]", "analytics.reportSuite": "[ _YOUR_RSID_ ]", "analytics.visitorId": "[ _YOUR_VISITOR_ID_ ]", "media.contentType": "VOD", "media.length": 60.3333333333333, "media.id": "VA API Sample Player", "visitor.marketingCloudOrgId": "[YOUR_MCID]", "media.name": "ClickMe", "media.channel": "sample-channel", "media.sdkVersion": "va-api-0.0.0", "analytics.enableSSL": false } }

操作 2 - Ping 计时器启动

操作
操作时间轴(秒)
播放头位置(秒)
客户端请求
应用程序启动 Ping 事件计时器
0
0
实施详细信息
启动 Ping 计时器。如果有前置广告,则第一个 Ping 事件应在 1 秒后触发,否则应在 10 秒后触发。

操作 3 - 广告时间开始

操作
操作时间轴(秒)
播放头位置(秒)
客户端请求
跟踪前置广告时间开始
0
0
/api/v1/sessions/{sid}/events
实施详细信息
只能在广告时间期间跟踪广告。
示例请求正文
{ playerTime: { playhead: 0, ts: <timestamp> }, eventType:adBreakStart, params: { "media.ad.podFriendlyName": "ad_pod1", "media.ad.podIndex": 0, "media.ad.podSecond": 0 } }

操作 4 - 广告开始

操作
操作时间轴(秒)
播放头位置(秒)
客户端请求
跟踪前置广告 #1 开始
0
0
/api/v1/sessions/{sid}/events
实施详细信息
开始跟踪第一个前置广告,其时长为 15 秒。包括含此
adStart
的自定义元数据。
示例请求正文
{ playerTime: { playhead: 0, ts: <timestamp> }, eventType:adStart, params: { "media.ad.podFriendlyName": "ad_pod1", "media.ad.name": "Ad 1", "media.ad.id": "001", "media.ad.length": 15, "media.ad.podPosition": 1, "media.ad.playerName": "Sample Player", "media.ad.advertiser": "Ad Guys", "media.ad.campaignId": "1", "media.ad.creativeId": "42", "media.ad.siteId": "XYZ", "media.ad.creativeURL": "https://xyz_creative.com", "media.ad.placementId": "sample_placement" }, customMetadata: { "myCustomData1": "CustomData1", "myCustomData2": "CustomData2" } }

操作 5 - 广告 Ping

操作
操作时间轴(秒)
播放头位置(秒)
客户端请求
应用程序发送 Ping 事件
10
0
/api/v1/sessions/{sid}/events
实施详细信息
每 1 秒对后端执行一次 Ping 操作。(为简短起见,不显示后续广告 Ping。)
示例请求正文
{ playerTime: { playhead: 0, ts: <timestamp> }, eventType:ping }

操作 6 - 广告结束

操作
操作时间轴(秒)
播放头位置(秒)
客户端请求
跟踪前置广告 #1 完成
15
0
/api/v1/sessions/{sid}/events
实施详细信息
跟踪第一个前置广告的结束。
示例请求正文
{ playerTime: { playhead: 0, ts: <timestamp> }, eventType:adComplete }

操作 7 - 广告开始

操作
操作时间轴(秒)
播放头位置(秒)
客户端请求
跟踪前置广告 #2 开始
15
0
/api/v1/sessions/{sid}/events
实施详细信息
跟踪第二个前置广告的开始,其时长为 7 秒。
示例请求正文
{ playerTime: { playhead: 0, ts: <timestamp> }, eventType:adStart, params: { "media.ad.podFriendlyName": "ad_pod1", "media.ad.name": "Ad 2", "media.ad.id": "002", "media.ad.length": 7, "media.ad.podPosition": 1, "media.ad.playerName": "Sample Player", "media.ad.advertiser": "Ad Guys", "media.ad.campaignId": "2", "media.ad.creativeId": "44", "media.ad.siteId": "XYZ", "media.ad.creativeURL": "https://xyz_creative.com", "media.ad.placementId": "sample_placement2" }, }

操作 8 - 广告 Ping

操作
操作时间轴(秒)
播放头位置(秒)
客户端请求
应用程序发送 Ping 事件
16
0
/api/v1/sessions/{sid}/events
实施详细信息
每 1 秒对后端执行一次 Ping 操作。(为简短起见,不显示后续广告 Ping。)
示例请求正文
{ playerTime: { playhead: 0, ts: <timestamp> }, eventType:ping }

操作 9 - 广告结束

操作
操作时间轴(秒)
播放头位置(秒)
客户端请求
跟踪前置广告 #2 完成
22
0
/api/v1/sessions/{sid}/events
实施详细信息
跟踪第二个前置广告的结束。
示例请求正文
{ playerTime: { playhead: 0, ts: <timestamp> }, eventType:adComplete }

操作 10 - 广告时间结束

操作
操作时间轴(秒)
播放头位置(秒)
客户端请求
跟踪前置广告时间完成
22
0
/api/v1/sessions/{sid}/events
实施详细信息
广告时间结束。在整个广告时间内,播放状态始终为“正在播放”。
示例请求正文
{ playerTime: { playhead: 0, ts: <timestamp> }, eventType:adBreakComplete }

操作 11 - 播放内容

操作
操作时间轴(秒)
播放头位置(秒)
客户端请求
跟踪播放事件
22
0
/api/v1/sessions/{sid}/events
实施详细信息
After the
adBreakComplete
event, put the player in the "playing" state using the
play
event.
示例请求正文
{ playerTime: { playhead: 0, ts: <timestamp> }, eventType:play }

操作 12 - 章节开始

操作
操作时间轴(秒)
播放头位置(秒)
客户端请求
跟踪章节开始事件
23
1
/api/v1/sessions/{sid}/events
实施详细信息
播放事件后,跟踪第一个章节的开始。
示例请求正文
{ playerTime: { playhead: 0, ts: <timestamp> }, eventType:chapterStart, params: { "media.chapter.index": 1, "media.chapter.offset": 0, "media.chapter.length": 20, "media.chapter.friendlyName": "Chapter Uno" }, }

操作 13 - Ping

操作
操作时间轴(秒)
播放头位置(秒)
客户端请求
应用程序发送 Ping 事件
30
8
/api/v1/sessions/{sid}/events
实施详细信息
每 10 秒对后端执行一次 Ping 操作。
示例请求正文
{ playerTime: { playhead: 8, ts: <timestamp> }, eventType:ping }

操作 14 - 缓冲开始

操作
操作时间轴(秒)
播放头位置(秒)
客户端请求
发生缓冲开始事件
33
11
/api/v1/sessions/{sid}/events
实施详细信息
跟踪播放器向“正在缓冲”状态的转变。
示例请求正文
{ playerTime: { playhead: 11, ts: <timestamp> }, eventType:bufferStart }

操作 15 - 缓冲结束(播放)

操作
操作时间轴(秒)
播放头位置(秒)
客户端请求
缓冲结束,应用程序跟踪内容恢复
36
11
/api/v1/sessions/{sid}/events
实施详细信息
缓冲在 3 秒后结束,因此请将播放器恢复到“正在播放”状态。您必须发送来自缓冲的另一个跟踪播放事件。
bufferStart
后的
play
调用一定会对后端进行“bufferEnd”调用
,因此不需要
bufferEnd
事件。
示例请求正文
{ playerTime: { playhead: 11, ts: <timestamp> }, eventType:play }

操作 16 - Ping

操作
操作时间轴(秒)
播放头位置(秒)
客户端请求
应用程序发送 Ping 事件
40
15
/api/v1/sessions/{sid}/events
实施详细信息
每 10 秒对后端执行一次 Ping 操作。
示例请求正文
{ playerTime: { playhead: 15, ts: <timestamp> }, eventType:ping }

操作 17 - 章节结束

操作
操作时间轴(秒)
播放头位置(秒)
客户端请求
应用程序跟踪章节结束
45
20
/api/v1/sessions/{sid}/events
实施详细信息
第一个章节结束,正好在第二个广告时间之前。
示例请求正文
{ playerTime: { playhead: 20, ts: <timestamp> }, eventType:chapterComplete }

操作 18 - 广告时间开始

操作
操作时间轴(秒)
播放头位置(秒)
客户端请求
跟踪中置广告时间开始
46
21
/api/v1/sessions/{sid}/events
实施详细信息
持续时间为 8 秒的中置广告:发送
adBreakStart
示例请求正文
{ playerTime: { playhead: 21, ts: <timestamp> }, eventType:adBreakStart, params: { "media.ad.podFriendlyName": "ad_pod2", "media.ad.podIndex": 1, "media.ad.podSecond": 21 } }

操作 19 - 广告开始

操作
操作时间轴(秒)
播放头位置(秒)
客户端请求
跟踪中置广告 #3 开始
46
21
/api/v1/sessions/{sid}/events
实施详细信息
跟踪中置广告。
示例请求正文
{ playerTime: { playhead: 21, ts: <timestamp> }, eventType:adStart, params: { "media.ad.podFriendlyName": "ad_pod2", "media.ad.name": "Ad 3", "media.ad.id": "003", "media.ad.length": 8, "media.ad.podPosition": 2, "media.ad.playerName": "Sample Player", "media.ad.advertiser": "Ad Guys", "media.ad.campaignId": "7", "media.ad.creativeId": "40", "media.ad.siteId": "XYZ", "media.ad.creativeURL": "https://xyz_creative.com", "media.ad.placementId": "sample_placement2" }, }

操作 20 - 广告 Ping

操作
操作时间轴(秒)
播放头位置(秒)
客户端请求
应用程序发送 Ping 事件
47
21
/api/v1/sessions/{sid}/events
实施详细信息
每 1 秒对后端执行一次 Ping 操作。(为简短起见,不显示后续广告 Ping。)
示例请求正文
{ playerTime: { playhead: 21, ts: <timestamp> }, eventType:ping }

操作 21 - 广告结束

操作
操作时间轴(秒)
播放头位置(秒)
客户端请求
跟踪中置广告 #3 结束
54
21
/api/v1/sessions/{sid}/events
实施详细信息
中置广告完成。
示例请求正文
{ playerTime: { playhead: 21, ts: <timestamp> }, eventType:adComplete }

操作 22 - 广告时间结束

操作
操作时间轴(秒)
播放头位置(秒)
客户端请求
跟踪中置广告时间完成
54
21
/api/v1/sessions/{sid}/events
实施详细信息
广告时间结束。
示例请求正文
{ playerTime: { playhead: 21, ts: <timestamp> }, eventType:adBreakComplete }

操作 23 - 章节开始

操作
操作时间轴(秒)
播放头位置(秒)
客户端请求
跟踪章节 2 的开始
55
22
/api/v1/sessions/{sid}/events
实施详细信息
示例请求正文
{ playerTime: { playhead: 22, ts: <timestamp> }, eventType:chapterStart, params: { "media.chapter.index": 2, "media.chapter.offset": 22, "media.chapter.length": 22, "media.chapter.friendlyName": "Chapter Dos" }, }

操作 24 - Ping

操作
操作时间轴(秒)
播放头位置(秒)
客户端请求
应用程序发送 Ping 事件
60
27
/api/v1/sessions/{sid}/events
实施详细信息
每 10 秒对后端执行一次 Ping 操作。
示例请求正文
{ playerTime: { playhead: 27, ts: <timestamp> }, eventType:ping }

操作 25 - 暂停

操作
操作时间轴(秒)
播放头位置(秒)
客户端请求
用户按下了暂停
64
31
/api/v1/sessions/{sid}/events
实施详细信息
用户操作将播放状态转变为“已暂停”。
示例请求正文
{ playerTime: { playhead: 31, ts: <timestamp> }, eventType:pauseStart }

操作 26 - Ping

操作
操作时间轴(秒)
播放头位置(秒)
客户端请求
应用程序发送 Ping 事件
70
31
/api/v1/sessions/{sid}/events
实施详细信息
每 10 秒对后端执行一次 Ping 操作。播放器仍处于“正在缓冲”状态,用户一直停留在 20 秒的内容中。正在运转中...
示例请求正文
{ playerTime: { playhead: 31, ts: <timestamp> }, eventType:ping }

操作 27 - 播放内容

操作
操作时间轴(秒)
播放头位置(秒)
客户端请求
用户按下了“播放”以恢复主内容
74
31
/api/v1/sessions/{sid}/events
实施详细信息
将播放状态转变为“正在播放”。
pauseStart
后的
play
调用一定会对后端进行“resume”调用
,因此不需要
resume
事件。
示例请求正文
{ playerTime: { playhead: 31, ts: <timestamp> }, eventType:play }

操作 28 - Ping

操作
操作时间轴(秒)
播放头位置(秒)
客户端请求
应用程序发送 Ping 事件
80
37
/api/v1/sessions/{sid}/events
实施详细信息
每 10 秒对后端执行一次 Ping 操作。
示例请求正文
{ playerTime: { playhead: 37, ts: <timestamp> }, eventType:ping }

操作 29 - 章节结束

操作
操作时间轴(秒)
播放头位置(秒)
客户端请求
章节 2 结束
87
44
/api/v1/sessions/{sid}/events
实施详细信息
跟踪第二个和最后一个章节的结束
示例请求正文
{ playerTime: { playhead: 0, ts: <timestamp> }, eventType:chapterComplete }

操作 30 - 会话结束

操作
操作时间轴(秒)
播放头位置(秒)
客户端请求
用户完成观看内容的结尾。
88
45
/api/v1/sessions/{sid}/events
实施详细信息
sessionComplete
发送到后端,以表明用户完成了对整个内容的观看。
示例请求正文
{ playerTime: { playhead: 45, ts: <timestamp> }, eventType:sessionComplete }
无搜寻事件?-
媒体收集 API 中没有明确支持
seekStart
seekComplete
事件。这是因为当最终用户正在推移时,某些播放器会生成大量的此类事件,并且数百个用户可能会轻易地限制后端服务的网络带宽。Adobe 通过基于设备时间戳(而不是播放头位置)计算心率持续时间,来为搜寻事件提供明确的支持。