時間軸 1 - 檢視到內容結尾 timeline-view-to-end-of-content
VOD、前段廣告、暫停、緩衝、檢視內容到結束為止
下列圖表說明播放點時間軸和使用者動作的對應時間軸。以下呈現每個動作的詳細資料及其隨附要求。
動作詳細資料
動作 1 - 開始工作階段 Action-1
/api/v1/sessions
這個呼叫代表 使用者有意願播放 影片。
它會傳回工作階段 ID ({sid}
),給予用來識別工作階段中所有後續追蹤呼叫的用戶端。播放器狀態尚未進入「正在播放」,而是「正在開始」。
要求內容的 params
對應必須包含強制工作階段參數。如需有關工作階段的資訊,請參閱 Media Collection API 文件。
在後端,這個呼叫會產生 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 計時器 Action-2
/api/v1/sessions/{sid}/events
啟動應用程式的 Ping 計時器。如果有前段廣告,第一個 Ping 事件則應在 1 秒引發;如果沒有,則為 10 秒。
動作 3 - 廣告插播開始 Action-3
/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 - 廣告開始 Action-4
/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://example.com",
"media.ad.placementId": "sample_placement"
},
"customMetadata": {
"myCustomData1": "CustomData1",
"myCustomData2": "CustomData2"
}
}
注意:在 AdBreakStart 和 AdStart 事件之間不應有任何額外的播放事件。
動作 5 - 廣告 Ping Action-5
動作 5.1 - 廣告 Ping 1 Action-5-1
/api/v1/sessions/{sid}/events
在廣告內時,每隔 1 秒 Ping 後端一次。
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "ping"
}
動作 5.2 - 廣告 Ping 2 Action-5-2
/api/v1/sessions/{sid}/events
在廣告內時,每隔 1 秒 Ping 後端一次。
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "ping"
}
動作 5.3 - 廣告 Ping 3 Action-5-3
/api/v1/sessions/{sid}/events
在廣告內時,每隔 1 秒 Ping 後端一次。
…
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "ping"
}
動作 6 - 廣告完成 Action-6
/api/v1/sessions/{sid}/events
追蹤第一個前段廣告的結尾。
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "adComplete"
}
動作 7 - 廣告開始 Action-7
/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://example.com",
"media.ad.placementId": "sample_placement2"
},
}
動作 8 - 廣告 Ping Action-8
/api/v1/sessions/{sid}/events
每隔 1 秒 Ping 後端一次。
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "ping"
}
動作 9 - 廣告完成 Action-9
/api/v1/sessions/{sid}/events
追蹤第二個前段廣告的結尾。
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "adComplete"
}
動作 10 - 廣告插播完成 Action-10
/api/v1/sessions/{sid}/events
廣告插播結束。
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "adBreakComplete"
}
動作 11 - 播放內容 Action-11
/api/v1/sessions/{sid}/events
在 adBreakComplete
事件之後,使用 play
事件將播放器置於「正在播放」狀態。
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "play"
}
動作 12 - Ping Action-12
/api/v1/sessions/{sid}/events
每隔 10 秒 Ping 後端一次。
{
"playerTime": {
"playhead": 8,
"ts": "<timestamp>"
},
"eventType": "ping"
}
動作 13 - 緩衝開始 Action-13
/api/v1/sessions/{sid}/events
追蹤播放器到「緩衝處理」狀態的轉變。
{
"playerTime": {
"playhead": 11,
"ts": "<timestamp>"
}, "eventType": "bufferStart"
}
動作 14 - 緩衝結束 Action-14
/api/v1/sessions/{sid}/events
緩衝在 3 秒後結束,因此請讓播放器回復「正在播放」狀態。您必須傳送另一個追蹤播放事件來結束緩衝狀態。bufferStart
之後的 play
呼叫意味著傳送「bufferEnd」呼叫到後端,因此不需要 bufferEnd
事件。
{
"playerTime": {
"playhead": 11,
"ts": "<timestamp>"
},
"eventType": "play"
}
動作 15 - Ping Action-15
/api/v1/sessions/{sid}/events
每隔 10 秒 Ping 後端一次。
{
"playerTime": {
"playhead": 15,
"ts": "<timestamp>"
}, "eventType": "ping"
}
動作 16 - 廣告插播開始 Action-16
/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 - 廣告開始 Action-17
/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://example.com",
"media.ad.placementId": "sample_placement2"
},
}
動作 18 - 廣告 Ping Action-18
/api/v1/sessions/{sid}/events
每隔 10 秒 Ping 後端一次。
{
"playerTime": {
"playhead": 21,
"ts": "<timestamp>"
}, "eventType": "ping"
}
動作 19 - 廣告完成 Action-19
/api/v1/sessions/{sid}/events
中段廣告完成。
{
"playerTime": {
"playhead": 21,
"ts": "<timestamp>"
},
"eventType": "adComplete"
}
動作 20 - 廣告插播完成 Action-20
/api/v1/sessions/{sid}/events
廣告插播完成。
{
"playerTime": {
"playhead": 21,
"ts": "<timestamp>"
},
"eventType": "adBreakComplete"
}
動作 21 - Ping Action-21
/api/v1/sessions/{sid}/events
每隔 10 秒 Ping 後端一次。
{
"playerTime": {
"playhead": 27,
"ts": "<timestamp>"
},
"eventType": "ping"
}
動作 22 - 暫停 Action-22
/api/v1/sessions/{sid}/events
使用者的動作將播放狀態改變為「已暫停」。
{
"playerTime": {
"playhead": 31,
"ts": "<timestamp>"
},
"eventType": "pauseStart"
}
動作 23 - Ping Action-23
/api/v1/sessions/{sid}/events
每隔 10 秒 Ping 後端一次。播放器仍處於「正在緩衝」狀態;使用者卡在內容的 20 秒處。非常憤怒…
{
"playerTime": {
"playhead": 31,
"ts": "<timestamp>"
}, "eventType": "ping"
}
動作 24 - 播放 Action-24
/api/v1/sessions/{sid}/events
將播放狀態改變為「正在播放」。pauseStart
之後的 play
呼叫意味著傳送「resume」呼叫到後端,因此不需要 resume
事件。
{
"playerTime": {
"playhead": 31,
"ts": "<timestamp>"
}, "eventType": "play"
}
動作 25 - Ping Action-25
/api/v1/sessions/{sid}/events
每隔 10 秒 Ping 後端一次。
{
"playerTime": {
"playhead": 37,
"ts": "<timestamp>"
}, "eventType": "ping"
}
動作 26 - 工作階段完成 Action-26
/api/v1/sessions/{sid}/events
傳送 sessionComplete
到後端,指出使用者已完成所有內容的觀賞。
{
"playerTime": {
"playhead": 45,
"ts": "<timestamp>"
}, "eventType": "sessionComplete"
}
seekStart
或 seekComplete
事件的支援並不明確。這是因為特定播放器會在使用者拖曳時,產生大量這類事件,若有數百位使用者這麼做,即可輕易造成後端服務的網路頻寬產生瓶頸。Adobe 會根據裝置時間戳記 (而非播放點位置) 計算心率持續時間,以明確支援搜尋事件。