时间轴 1 - 观看到内容的结尾

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 /api/v1/sessions/{sid}/events

实施详细信息

启动应用程序的 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: &lt;timestamp&gt;
    },
    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

操作 5.1 - 广告 Ping 1

操作 操作时间轴(秒) 播放头位置(秒) 客户端请求
应用程序发送 Ping 事件 1 0 /api/v1/sessions/{sid}/events

实施详细信息

在广告中,每 1 秒对后端执行一次 Ping 操作。

示例请求正文

{
    playerTime: {
        playhead: 0,
        ts: <timestamp>
    },
    eventType:ping
}

操作 5.2 - 广告 Ping 2

操作 操作时间轴(秒) 播放头位置(秒) 客户端请求
应用程序发送 Ping 事件 2 0 /api/v1/sessions/{sid}/events

实施详细信息

在广告中,每 1 秒对后端执行一次 Ping 操作。

示例请求正文

{
    playerTime: {
        playhead: 0,
        ts: <timestamp>
    },
    eventType:ping
}

操作 5.3 - 广告 Ping 3

操作 操作时间轴(秒) 播放头位置(秒) 客户端请求
应用程序发送 Ping 事件 3 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 事件 20 0 /api/v1/sessions/{sid}/events

实施详细信息

每 1 秒对后端执行一次 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 - Ping

操作 操作时间轴(秒) 播放头位置(秒) 客户端请求
应用程序发送 Ping 事件 30 8 /api/v1/sessions/{sid}/events

实施详细信息

每 10 秒对后端执行一次 Ping 操作。

示例请求正文

{
    playerTime: {
        playhead: 8,
        ts: <timestamp>
    },
    eventType:ping
}

操作 13 - 缓冲开始

操作 操作时间轴(秒) 播放头位置(秒) 客户端请求
发生缓冲开始事件 33 11 /api/v1/sessions/{sid}/events

实施详细信息

跟踪播放器向“正在缓冲”状态的转变

示例请求正文

{
    playerTime: {
        playhead: 11,
        ts: <timestamp>
    }, eventType:bufferStart
}

操作 14 - 缓冲结束

操作 操作时间轴(秒) 播放头位置(秒) 客户端请求
缓冲结束后,应用程序将跟踪内容的恢复 36 11 /api/v1/sessions/{sid}/events

实施详细信息

缓冲在 3 秒后结束,因此请将播放器恢复到“正在播放”状态。您必须发送来自缓冲的另一个跟踪播放事件。bufferStart后的play调用一定会对后端进行“bufferEnd”调用,因此不需要 bufferEnd 事件。

示例请求正文

{
    playerTime: {
        playhead: 11,
        ts: <timestamp>
    },
    eventType:play
}

操作 15 - Ping

操作 操作时间轴(秒) 播放头位置(秒) 客户端请求
应用程序发送 Ping 事件 40 15 /api/v1/sessions/{sid}/events

实施详细信息

每 10 秒对后端执行一次 Ping 操作。

示例请求正文

{
    playerTime: {
        playhead: 15,
        ts: <timestamp>
    }, eventType:ping
}

操作 16 - 广告时间开始

操作 操作时间轴(秒) 播放头位置(秒) 客户端请求
跟踪中置广告时间开始 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
    }
}

操作 17 - 广告开始

操作 操作时间轴(秒) 播放头位置(秒) 客户端请求
跟踪中置广告 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"
    },
}

操作 18 - 广告 Ping

操作 操作时间轴(秒) 播放头位置(秒) 客户端请求
应用程序发送 Ping 事件 50 21 /api/v1/sessions/{sid}/events

实施详细信息

每 10 秒对后端执行一次 Ping 操作。

示例请求正文

{
    playerTime: {
        playhead: 21,
        ts: <timestamp>
    }, eventType:ping
}

操作 19 - 广告结束

操作 操作时间轴(秒) 播放头位置(秒) 客户端请求
跟踪中置广告 1 结束 54 21 /api/v1/sessions/{sid}/events

实施详细信息

中置广告完成。

示例请求正文

{
    playerTime: {
        playhead: 21,
        ts: <timestamp>
    },
    eventType:adComplete
}

操作 20 - 广告时间结束

操作 操作时间轴(秒) 播放头位置(秒) 客户端请求
跟踪中置广告时间结束 54 21 /api/v1/sessions/{sid}/events

实施详细信息

广告时间结束。

示例请求正文

{
    playerTime: {
        playhead: 21,
        ts: <timestamp>
    },
    eventType:adBreakComplete
}

操作 21 - Ping

操作 操作时间轴(秒) 播放头位置(秒) 客户端请求
应用程序发送 Ping 事件 60 27 /api/v1/sessions/{sid}/events

实施详细信息

每 10 秒对后端执行一次 Ping 操作。

示例请求正文

{
    playerTime: {
        playhead: 27,
        ts: <timestamp>
    },
    eventType:ping
}

操作 22 - 暂停

操作 操作时间轴(秒) 播放头位置(秒) 客户端请求
用户按下“暂停” 64 31 /api/v1/sessions/{sid}/events

实施详细信息

用户的操作将播放状态转变为“已暂停”。

示例请求正文

{
    playerTime: {
        playhead: 31,
        ts: <timestamp>
    },
    eventType:pauseStart
}

操作 23 - Ping

操作 操作时间轴(秒) 播放头位置(秒) 客户端请求
应用程序发送 Ping 事件 70 31 /api/v1/sessions/{sid}/events

实施详细信息

每 10 秒对后端执行一次 Ping 操作。播放器仍处于“正在缓冲”状态;用户停滞在内容的第 20 秒处。用户非常恼火…

示例请求正文

{
    playerTime: {
        playhead: 31,
        ts: <timestamp>
    }, eventType:ping
}

操作 24 - 播放

操作 操作时间轴(秒) 播放头位置(秒) 客户端请求
用户按“播放”恢复主内容 74 31 /api/v1/sessions/{sid}/events

实施详细信息

将播放状态转变为“正在播放”。pauseStart后的play调用一定会对后端进行“resume”调用,因此不需要 resume 事件。

示例请求正文

{
    playerTime: {
        playhead: 31,
        ts: <timestamp>
    }, eventType:play
}

操作 25 - Ping

操作 操作时间轴(秒) 播放头位置(秒) 客户端请求
应用程序发送 Ping 事件 80 37 /api/v1/sessions/{sid}/events

实施详细信息

每 10 秒对后端执行一次 Ping 操作。

示例请求正文

{
    playerTime: {
        playhead: 37,
        ts: <timestamp>
    }, eventType:ping
}

操作 26 - 会话结束

操作 操作时间轴(秒) 播放头位置(秒) 客户端请求
用户完成对内容的观看。 88 45 /api/v1/sessions/{sid}/events

实施详细信息

sessionComplete 发送到后端,以表明用户完成了对整个内容的观看。

示例请求正文

{
    playerTime: {
        playhead: 45,
        ts: <timestamp>
    }, eventType:sessionComplete
}
注意

无搜寻事件?- 媒体收集 API 中没有明确支持 seekStartseekComplete 事件。这是因为在终端用户进行清理时,某些播放器会生成大量此类事件,而几百个用户很容易就会阻塞后端服务的网络带宽。Adobe 根据设备时间戳而不是播放头位置来计算心率持续时间,以明确支持搜寻事件。

On this page

Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now