Zeitlicher Ablauf 1: Wiedergabe bis zum Ende des Inhalts timeline-view-to-end-of-content
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 Action-1
/api/v1/sessionsDieser Aufruf signalisiert die Anwenderintention, 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. Informationen zu Sitzungen finden Sie in der Dokumentation zur Mediensammlungs-API.
Am Backend generiert dieser Aufruf einen Adobe Analytics-Initiationsaufruf.
{
"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 Action-2
/api/v1/sessions/{sid}/eventsStarten Sie den Ping-Timer Ihrer App. 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 Action-3
/api/v1/sessions/{sid}/eventsAnzeigen 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 Action-4
/api/v1/sessions/{sid}/eventsBeginnen 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"
}
}
HINWEIS: Zwischen AdBreakStart- und AdStart-Ereignissen sollten keine zusätzlichen Wiedergabeereignisse auftreten.
Aktion 5: Anzeigen-Pings Action-5
Aktion 5.1 - Anzeigen-Ping 1 Action-5-1
/api/v1/sessions/{sid}/eventsSenden Sie innerhalb einer Anzeige jede Sekunde ein Ping-Ereignis an das Backend.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "ping"
}
Aktion 5.2 - Anzeigen-Ping 2 Action-5-2
/api/v1/sessions/{sid}/eventsSenden Sie innerhalb einer Anzeige jede Sekunde ein Ping-Ereignis an das Backend.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "ping"
}
Aktion 5.3 - Anzeigen-Ping 3 Action-5-3
/api/v1/sessions/{sid}/eventsSenden Sie innerhalb einer Anzeige jede Sekunde ein Ping-Ereignis an das Backend.
>im Interesse der Kürze …
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "ping"
}
Aktion 6: Abschluss der Anzeige Action-6
/api/v1/sessions/{sid}/eventsVerfolgen Sie das Ende der ersten Pre-Roll-Anzeige.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "adComplete"
}
Aktion 7: Anzeigenstart Action-7
/api/v1/sessions/{sid}/eventsVerfolgen 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 Action-8
/api/v1/sessions/{sid}/eventsSenden Sie jede Sekunde ein Ping-Ereignis an das Backend.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "ping"
}
Aktion 9: Abschluss der Anzeige Action-9
/api/v1/sessions/{sid}/eventsVerfolgen Sie das Ende der zweiten Pre-Roll-Anzeige.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "adComplete"
}
Aktion 10: Abschluss der Werbeunterbrechung Action-10
/api/v1/sessions/{sid}/eventsDie Werbeunterbrechung ist vorbei.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "adBreakComplete"
}
Aktion 11: Inhalt abspielen Action-11
/api/v1/sessions/{sid}/eventsVersetzen 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: Ping Action-12
/api/v1/sessions/{sid}/eventsPingen Sie das Backend alle 10 Sekunden an.
{
"playerTime": {
"playhead": 8,
"ts": "<timestamp>"
},
"eventType": "ping"
}
Aktion 13: Start der Pufferung Action-13
/api/v1/sessions/{sid}/eventsVerfolgen Sie den Wechsel des Players zum Status „Buffering“ (Puffern).
{
"playerTime": {
"playhead": 11,
"ts": "<timestamp>"
}, "eventType": "bufferStart"
}
Aktion 14: Ende der Pufferung Action-14
/api/v1/sessions/{sid}/eventsPuffern 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 15: Ping Action-15
/api/v1/sessions/{sid}/eventsPingen Sie das Backend alle 10 Sekunden an.
{
"playerTime": {
"playhead": 15,
"ts": "<timestamp>"
}, "eventType": "ping"
}
Aktion 16: Start der Werbeunterbrechung Action-16
/api/v1/sessions/{sid}/eventsMid-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 17: Anzeigenstart Action-17
/api/v1/sessions/{sid}/eventsVerfolgen 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 18: Anzeigen-Ping Action-18
/api/v1/sessions/{sid}/eventsPingen Sie das Backend alle 10 Sekunden an.
{
"playerTime": {
"playhead": 21,
"ts": "<timestamp>"
}, "eventType": "ping"
}
Aktion 19: Abschluss der Anzeige Action-19
/api/v1/sessions/{sid}/eventsDie Mid-Roll-Anzeige ist abgeschlossen.
{
"playerTime": {
"playhead": 21,
"ts": "<timestamp>"
},
"eventType": "adComplete"
}
Aktion 20: Abschluss der Werbeunterbrechung Action-20
/api/v1/sessions/{sid}/eventsDie Werbeunterbrechung ist abgeschlossen.
{
"playerTime": {
"playhead": 21,
"ts": "<timestamp>"
},
"eventType": "adBreakComplete"
}
Aktion 21: Ping Action-21
/api/v1/sessions/{sid}/eventsPingen Sie das Backend alle 10 Sekunden an.
{
"playerTime": {
"playhead": 27,
"ts": "<timestamp>"
},
"eventType": "ping"
}
Aktion 22: Anhalten Action-22
/api/v1/sessions/{sid}/eventsDurch die Benutzeraktion wechselt der Wiedergabestatus zu „Paused“ (Pause).
{
"playerTime": {
"playhead": 31,
"ts": "<timestamp>"
},
"eventType": "pauseStart"
}
Aktion 23: Ping Action-23
/api/v1/sessions/{sid}/eventsPingen 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 24: Abspielen Action-24
/api/v1/sessions/{sid}/eventsÄndern Sie den Wiedergabestatus zu „playing“ (Wiedergabe). Der play-Aufruf nach einem pauseStart stellt für das Backend einen „resume“-Aufruf dar. Ein resume-Ereignis ist also nicht erforderlich.
{
"playerTime": {
"playhead": 31,
"ts": "<timestamp>"
}, "eventType": "play"
}
Aktion 25: Ping Action-25
/api/v1/sessions/{sid}/eventsPingen Sie das Backend alle 10 Sekunden an.
{
"playerTime": {
"playhead": 37,
"ts": "<timestamp>"
}, "eventType": "ping"
}
Aktion 26: Abschluss der Sitzung Action-26
/api/v1/sessions/{sid}/eventsSenden 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.