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
实施详细信息
adBreakComplete 事件后,使用 play 事件将播放器置于“正在播放”状态。
示例请求正文
{
    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 - 广告结束

操作
操作时间轴(秒)
播放头位置(秒)
客户端请求
跟踪中置广告 1 结束
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 根据设备时间戳而不是播放头位置来计算心率持续时间,以明确支持搜寻事件。