Timeline: Kapitel
Erstellt für:
- Benutzende
- Admin
- Entwickler
VOD, Pre-Roll-Anzeigen, Pausen, Puffern, Wiedergabe des Inhalts bis zum Ende
Die folgenden Diagramme illustrieren die Zeitleiste der Abspielleiste und die zugehörige Zeitleiste der Aktionen eines Benutzers. Die Details für jede Aktion und die zugehörigen Anforderungen sind unten aufgeführt.
Aktionsdetails
Aktion 1: Sitzung starten
Aktion | Aktions-Timeline (Sekunden) | Abspielleistenposition (Sekunden) | Client-Anfrage |
---|---|---|---|
Button zur automatischen Wiedergabe oder zur Wiedergabe gedrückt, Video wird geladen. | 0 | 0 | /api/v1/sessions |
Dieser Aufruf signalisiert die Absicht des Benutzers, ein Video abzuspielen. Er gibt eine Sitzungs-ID ({sid}
) an den Client zurück, die zur Identifikation aller nachfolgenden Tracking-Aufrufe innerhalb der Sitzung verwendet wird. Der Player-Status lautet noch nicht „Playing“ (Wiedergabe), sondern „Starting“ (Start). Erforderliche Sitzungsparameter müssen in der params
-Map des Anfrageinhalts angegeben werden. Am Backend generiert dieser Aufruf einen Adobe Analytics-Initiationsaufruf. Informationen zu Sitzungen finden Sie in der Dokumentation zur Mediensammlungs-API.
{
"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
}
}
Aktion 2: Start des Ping-Timers
Aktion | Aktions-Timeline (Sekunden) | Abspielleistenposition (Sekunden) | Client-Anfrage |
---|---|---|---|
App startet Ping-Ereignis-Timer | 0 | 0 |
Starten Sie Ihren Ping-Timer. Das erste Ping-Ereignis sollte dann nach 1 Sekunde ausgelöst werden, wenn Pre-roll-Anzeigen vorhanden sind, andernfalls nach 10 Sekunden.
Aktion 3: Start der Werbeunterbrechung
Aktion | Aktions-Timeline (Sekunden) | Abspielleistenposition (Sekunden) | Client-Anfrage |
---|---|---|---|
Verfolgen des Starts der Pre-Roll-Anzeigenunterbrechung | 0 | 0 | /api/v1/sessions/{sid}/events |
Anzeigen können nur innerhalb einer Werbeunterbrechung verfolgt werden.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "adBreakStart",
"params": {
"media.ad.podFriendlyName": "ad_pod1",
"media.ad.podIndex": 0, "media.ad.podSecond": 0
}
}
Aktion 4: Anzeigenstart
/api/v1/sessions/{sid}/events
Beginnen Sie mit dem Tracking der ersten Pre-Roll-Anzeige, die 15 Sekunden dauert, einschließlich anwenderspezifischer Metadaten mit diesem 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"
}
}
Aktion 5: Anzeigen-Pings
/api/v1/sessions/{sid}/events
Senden Sie jede Sekunde ein Ping-Ereignis an das Backend. (Nachfolgende Anzeigen-Pings werden im Interesse der Kürze nicht angezeigt.)
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "ping"
}
Aktion 6: Abschluss der Anzeige
/api/v1/sessions/{sid}/events
Verfolgen Sie das Ende der ersten Pre-Roll-Anzeige.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "adComplete"
}
Aktion 7: Anzeigenstart
/api/v1/sessions/{sid}/events
Verfolgen Sie den Start der zweiten Pre-Roll-Anzeige, die 7 Sekunden lang ist.
{
"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"
},
}
Aktion 8: Anzeigen-Pings
/api/v1/sessions/{sid}/events
Senden Sie jede Sekunde ein Ping-Ereignis an das Backend. (Nachfolgende Anzeigen-Pings werden im Interesse der Kürze nicht angezeigt.)
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "ping"
}
Aktion 9: Abschluss der Anzeige
/api/v1/sessions/{sid}/events
Verfolgen Sie das Ende der zweiten Pre-Roll-Anzeige.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "adComplete"
}
Aktion 10: Abschluss der Werbeunterbrechung
/api/v1/sessions/{sid}/events
Die Werbeunterbrechung ist vorüber. Während der Anzeigenunterbrechung blieb der Wiedergabestatus auf „Abspielen“.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "adBreakComplete"
}
Aktion 11: Inhalt abspielen
/api/v1/sessions/{sid}/events
Versetzen Sie den Player nach dem Ereignis adBreakComplete
mit dem Ereignis play
in den Status „Playing“ (Wiedergabe).
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "play"
}
Aktion 12: Kapitelstart
/api/v1/sessions/{sid}/events
Verfolgen Sie nach dem Wiedergabeereignis den Start des ersten Kapitels.
{
"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"
},
}
Aktion 13: Ping
/api/v1/sessions/{sid}/events
Pingen Sie das Backend alle 10 Sekunden an.
{
"playerTime": {
"playhead": 8,
"ts": "<timestamp>"
},
"eventType": "ping"
}
Aktion 14: Start der Pufferung
/api/v1/sessions/{sid}/events
Verfolgen Sie den Wechsel zum Status „Buffering“ (Puffern).
{
"playerTime": {
"playhead": 11,
"ts": "<timestamp>"
},
"eventType": "bufferStart"
}
Aktion 15: Ende der Pufferung (Abspielen)
/api/v1/sessions/{sid}/events
Puffern endet nach 3 Sekunden, sodass der Player wieder zum Status „Playing“ (Wiedergabe) wechselt. Sie müssen am Ende des Puffervorgangs ein weiteres Ereignis zum Verfolgen der Wiedergabe senden. Der play
-Aufruf nach einem bufferStart
stellt für das Backend einen „bufferEnd“-Aufruf dar. Ein bufferEnd
-Ereignis ist also nicht erforderlich.
{
"playerTime": {
"playhead": 11,
"ts": "<timestamp>"
},
"eventType": "play"
}
Aktion 16: Ping
/api/v1/sessions/{sid}/events
Pingen Sie das Backend alle 10 Sekunden an.
{
"playerTime": {
"playhead": 15,
"ts": "<timestamp>"
},
"eventType": "ping"
}
Aktion 17: Kapitelende
/api/v1/sessions/{sid}/events
Das erste Kapitel endet direkt vor der zweiten Werbeunterbrechung.
{
"playerTime": {
"playhead": 20,
"ts": "<timestamp>"
},
"eventType": "chapterComplete"
}
Aktion 18: Start der Werbeunterbrechung
/api/v1/sessions/{sid}/events
Mid-Roll-Anzeige mit einer Dauer von 8 Sekunden: Senden Sie adBreakStart
.
{
"playerTime": {
"playhead": 21,
"ts": "<timestamp>"
},
"eventType": "adBreakStart",
"params": {
"media.ad.podFriendlyName": "ad_pod2",
"media.ad.podIndex": 1, "media.ad.podSecond": 21
}
}
Aktion 19: Anzeigenstart
/api/v1/sessions/{sid}/events
Verfolgen Sie die Mid-Roll-Anzeige.
{
"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"
},
}
Aktion 20: Anzeigen-Pings
/api/v1/sessions/{sid}/events
Senden Sie jede Sekunde ein Ping-Ereignis an das Backend. (Nachfolgende Anzeigen-Pings werden im Interesse der Kürze nicht angezeigt.)
{
"playerTime": {
"playhead": 21,
"ts": "<timestamp>"
},
"eventType": "ping"
}
Aktion 21: Abschluss der Anzeige
/api/v1/sessions/{sid}/events
Die Mid-Roll-Anzeige ist abgeschlossen.
{
"playerTime": {
"playhead": 21,
"ts": "<timestamp>"
},
"eventType": "adComplete"
}
Aktion 22: Abschluss der Werbeunterbrechung
/api/v1/sessions/{sid}/events
Die Werbeunterbrechung ist abgeschlossen.
{
"playerTime": {
"playhead": 21,
"ts": "<timestamp>"
},
"eventType": "adBreakComplete"
}
Aktion 23: Kapitelstart
/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"
},
}
Aktion 24: Ping
/api/v1/sessions/{sid}/events
Pingen Sie das Backend alle 10 Sekunden an.
{
"playerTime": {
"playhead": 27,
"ts": "<timestamp>"
},
"eventType": "ping"
}
Aktion 25: Anhalten
/api/v1/sessions/{sid}/events
Durch die Benutzeraktion wechselt der Wiedergabestatus zu „paused“ (angehalten).
{
"playerTime": {
"playhead": 31,
"ts": "<timestamp>"
},
"eventType": "pauseStart"
}
Aktion 26: Ping
/api/v1/sessions/{sid}/events
Pingen Sie das Backend alle 10 Sekunden an. Der Player befindet sich weiterhin im Status „buffering“ (Puffern); der Nutzer hängt bei 20 Sekunden des Inhalts fest und ist würtend.
{
"playerTime": {
"playhead": 31,
"ts": "<timestamp>"
},
"eventType": "ping"
}
Aktion 27: Inhalt abspielen
/api/v1/sessions/{sid}/events
Ändern Sie den Wiedergabestatus zu „playing“ (Wiedergabe). Der play
-Aufruf nach einem pauseStart
stellt für das Backend einen „“-Aufruf dar. Ein resume
resume-Ereignis ist also nicht erforderlich.
{
"playerTime": {
"playhead": 31,
"ts": "<timestamp>"
},
"eventType": "play"
}
Aktion 28: Ping
/api/v1/sessions/{sid}/events
Pingen Sie das Backend alle 10 Sekunden an.
{
"playerTime": {
"playhead": 37,
"ts": "<timestamp>"
},
"eventType": "ping"
}
Aktion 29: Kapitelende
/api/v1/sessions/{sid}/events
Verfolgen Sie das Ende des zweiten und letzten Kapitels.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "chapterComplete"
}
Aktion 30: Abschluss der Sitzung
/api/v1/sessions/{sid}/events
Senden Sie sessionComplete
an das Backend, um anzugeben, dass der Benutzer den gesamten Inhalt abgespielt hat.
{
"playerTime": {
"playhead": 45,
"ts": "<timestamp>"
},
"eventType": "sessionComplete"
}
seekStart
und seekComplete
nicht explizit. Das liegt daran, dass bestimmte Player eine große Anzahl solcher Ereignisse generieren, wenn der Anwender durch das Video springt. So können einige Hunderte von Anwendern schnell die Netzwerkbandbreite des Backend-Service überlasten. Adobe unterstützt explizite Suchvorgänge für Ereignisse, indem die Heartbeat-Dauer basierend auf dem Geräte-Zeitstempel und nicht auf der Abspielposition berechnet wird.