Show Menu
TOPICS×

タイムライン 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
実装の詳細
広告内にある間、バックエンドに対する ping を 1 秒ごとに実行します。
リクエスト本文のサンプル
{ playerTime: { playhead: 0, ts: <timestamp> }, eventType:ping }

アクション 5.2 - 広告 ping 2

アクション
アクションタイムライン(秒)
再生ヘッドの位置(秒)
クライアントリクエスト
アプリが ping イベントを送信する
2
0
/api/v1/sessions/{sid}/events
実装の詳細
広告内にある間、バックエンドに対する ping を 1 秒ごとに実行します。
リクエスト本文のサンプル
{ playerTime: { playhead: 0, ts: <timestamp> }, eventType:ping }

アクション 5.3 - 広告 ping 3

アクション
アクションタイムライン(秒)
再生ヘッドの位置(秒)
クライアントリクエスト
アプリが ping イベントを送信する
3
0
/api/v1/sessions/{sid}/events
実装の詳細
広告内にある間、バックエンドに対する ping を 1 秒ごとに実行します。
簡略にするために、タイムラインの後続の広告では、一連の 1 秒の 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 秒の 2 番目のプリロール広告の開始を追跡します。
リクエスト本文のサンプル
{ 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
実装の詳細
バックエンドに対する ping を 1 秒ごとに実行します。
リクエスト本文のサンプル
{ playerTime: { playhead: 0, ts: <timestamp> }, eventType:ping }

アクション 9 - 広告完了

アクション
アクションタイムライン(秒)
再生ヘッドの位置(秒)
クライアントリクエスト
プリロール広告 #2 の完了を追跡する
22
0
/api/v1/sessions/{sid}/events
実装の詳細
2 番目のプリロール広告の終わりを追跡します。
リクエスト本文のサンプル
{ 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
実装の詳細
バックエンドに対する ping を 10 秒ごとに実行します。
リクエスト本文のサンプル
{ 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 秒後に終了するので、プレーヤーを「再生中」状態に戻します。バッファリングが終了したら再生イベントの追跡をもう 1 件送信する必要があります。
bufferStart
の後の
play
呼び出しがバックエンドへの「bufferEnd」呼び出しと解釈されるので、
bufferEnd
イベントは必要ありません。
リクエスト本文のサンプル
{ playerTime: { playhead: 11, ts: <timestamp> }, eventType:play }

アクション 15 - ping

アクション
アクションタイムライン(秒)
再生ヘッドの位置(秒)
クライアントリクエスト
アプリが ping イベントを送信する
40
15
/api/v1/sessions/{sid}/events
実装の詳細
バックエンドに対する ping を 10 秒ごとに実行します。
リクエスト本文のサンプル
{ 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
実装の詳細
バックエンドに対する ping を 10 秒ごとに実行します。
リクエスト本文のサンプル
{ 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
実装の詳細
バックエンドに対する ping を 10 秒ごとに実行します。
リクエスト本文のサンプル
{ 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
実装の詳細
バックエンドに対する ping を 10 秒ごとに実行します。プレーヤーはまだ「バッファリング」状態になっています。ユーザーは、コンテンツの 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
実装の詳細
バックエンドに対する ping を 10 秒ごとに実行します。
リクエスト本文のサンプル
{ playerTime: { playhead: 37, ts: <timestamp> }, eventType:ping }

アクション 26 - セッション完了

アクション
アクションタイムライン(秒)
再生ヘッドの位置(秒)
クライアントリクエスト
ユーザーがコンテンツを最後まで視聴する
88
45
/api/v1/sessions/{sid}/events
実装の詳細
sessionComplete
をバックエンドに送信して、ユーザーがコンテンツ全体の視聴を終了したことを示します。
リクエスト本文のサンプル
{ playerTime: { playhead: 45, ts: <timestamp> }, eventType:sessionComplete }
シークイベントがない-
メディアコレクション API では、
seekStart
および
seekComplete
イベントの明示的なサポートはありません。これは、特定のプレーヤーではエンドユーザーがスクラビングすると、これらのイベントが大量に生成され、数百人のユーザーであってもバックエンドサービスのネットワーク帯域幅のボトルネックになり得るからです。アドビでは、再生ヘッドの位置ではなく、デバイスのタイムスタンプに基づいてハートビート期間を計算することで、シークイベントの明示的なサポートの代わりとしています。