I seguenti diagrammi illustrano la tempistica della testina di riproduzione e la corrispondenza con le azioni di un utente. Di seguito sono riportati i dettagli di ciascuna azione e le relative richieste.
Azione | Timeline di azioni (secondi) | Posizione della testina di riproduzione (secondi) | Richiesta del client |
---|---|---|---|
Pulsante di riproduzione o riproduzione automatica premuto | 0 | 0 | /api/v1/sessions |
Dettagli di implementazione
Questa chiamata segnala l’intenzione dell’utente di riprodurre un video. Restituisce un ID sessione ({sid}
) al client utilizzato per identificare tutte le chiamate di tracciamento successive all’interno della sessione. Lo stato del lettore non è ancora “in riproduzione”, ma è “in avvio”. Parametri di sessione obbligatori devono essere inclusi nella mappa params
nel corpo della richiesta. Nel backend, questa chiamata genera una chiamata di avvio Adobe Analytics.
Corpo della richiesta di esempio
{
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
}
}
Azione | Timeline di azioni (secondi) | Posizione della testina di riproduzione (secondi) | Richiesta del client |
---|---|---|---|
L’app avvia il timer dell’evento ping | 0 | 0 |
Dettagli di implementazione
Avvia il timer ping dell’app. Il primo evento ping dovrebbe quindi attivarsi in 1 secondo se ci sono annunci pre-roll, 10 secondi in caso contrario.
Azione | Timeline di azioni (secondi) | Posizione della testina di riproduzione (secondi) | Richiesta del client |
---|---|---|---|
Tracciamento inizio dell’interruzione pubblicitaria pre-roll | 0 | 0 | /api/v1/sessions/{sid}/events |
Dettagli di implementazione
Gli annunci pre-roll devono essere tracciati. Gli annunci possono essere tracciati solo all’interno di un’interruzione pubblicitaria.
Corpo della richiesta di esempio
{
playerTime: {
playhead: 0,
ts: <timestamp>
},
eventType:adBreakStart, params: {
"media.ad.podFriendlyName": "ad_pod1",
"media.ad.podIndex": 0,
"media.ad.podSecond": 0
}
}
Azione | Timeline di azioni (secondi) | Posizione della testina di riproduzione (secondi) | Richiesta del client |
---|---|---|---|
Tracciamento dell’inizio dell’annuncio pre-roll n.1 | 0 | 0 | /api/v1/sessions/{sid}/events |
Dettagli di implementazione
Inizia un annuncio di 12 secondi.
Corpo della richiesta di esempio
{
playerTime: {
playhead: 0,
ts: <timestamp>
},
eventType:adStart, params: {
"media.ad.podFriendlyName": "ad_pod1",
"media.ad.name": "Ad 1",
"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": "1",
"media.ad.creativeId": "42",
"media.ad.siteId": "XYZ",
"media.ad.creativeURL": "https://xyz-creative.com",
"media.ad.placementId": "sample-placement2"
},
}
Azione | Timeline di azioni (secondi) | Posizione della testina di riproduzione (secondi) | Richiesta del client |
---|---|---|---|
L’app invia un evento ping | 1 | 0 | /api/v1/sessions/{sid}/events |
Dettagli di implementazione
Esegui il ping del backend ogni 1 secondo. (I successivi ping degli annunci non vengono visualizzati per brevità.)
Corpo della richiesta di esempio
{
playerTime: {
playhead: 0,
ts: <timestamp>
},
eventType:ping
}
Azione | Timeline di azioni (secondi) | Posizione della testina di riproduzione (secondi) | Richiesta del client |
---|---|---|---|
Traccia il completamento del 1° annuncio pre-roll | 12 | 0 | /api/v1/sessions/{sid}/events |
Dettagli di implementazione
Il primo annuncio pre-roll è finito.
Corpo della richiesta di esempio
{
playerTime: {
playhead: 0,
ts: <timestamp>
},
eventType:adComplete
}
Azione | Timeline di azioni (secondi) | Posizione della testina di riproduzione (secondi) | Richiesta del client |
---|---|---|---|
Tracciamento dell’annuncio pre-roll completato | 12 | 0 | /api/v1/sessions/{sid}/events |
Dettagli di implementazione
L’interruzione pubblicitaria è terminata. Durante la pausa annuncio, il lettore è rimasto in stato di “riproduzione”.
Corpo della richiesta di esempio
{
playerTime: {
playhead: 0,
ts: <timestamp>
},
eventType:adBreakComplete
}
Azione | Timeline di azioni (secondi) | Posizione della testina di riproduzione (secondi) | Richiesta del client |
---|---|---|---|
Tracciamento dell’evento di riproduzione | 12 | 0 | /api/v1/sessions/{sid}/events |
Dettagli di implementazione
Sposta il lettore sullo stato di “riproduzione”; inizia il tracciamento dell’avvio della riproduzione del contenuto.
Corpo della richiesta di esempio
{
playerTime: {
playhead: 0,
ts: <timestamp>
},
eventType:play,
qoeData: { bitrate: 10000 }
}
Azione | Timeline di azioni (secondi) | Posizione della testina di riproduzione (secondi) | Richiesta del client |
---|---|---|---|
L’app invia un evento ping | 20 | 8 | /api/v1/sessions/{sid}/events |
Dettagli di implementazione
Esegui il ping del backend ogni 10 secondi.
Corpo della richiesta di esempio
{
playerTime: {
playhead: 8ß,
ts: <timestamp>
},
eventType:ping
}
Azione | Timeline di azioni (secondi) | Posizione della testina di riproduzione (secondi) | Richiesta del client |
---|---|---|---|
L’app invia un evento ping | 30 | 18 | /api/v1/sessions/{sid}/events |
Dettagli di implementazione
Esegui il ping del backend ogni 10 secondi.
Corpo della richiesta di esempio
{
playerTime: {
playhead: 18,
ts: <timestamp>
},
eventType:ping
}
Azione | Timeline di azioni (secondi) | Posizione della testina di riproduzione (secondi) | Richiesta del client |
---|---|---|---|
Si verifica un errore, l’app invia informazioni sull’errore. | 32 | 20 | /api/v1/sessions/{sid}/events |
Dettagli di implementazione
Corpo della richiesta di esempio
{
playerTime: {
playhead: 20,
ts: <timestamp>
},
eventType:error
}
Azione | Timeline di azioni (secondi) | Posizione della testina di riproduzione (secondi) | Richiesta del client |
---|---|---|---|
L’app si ripristina dopo l’errore, l’utente preme Riproduci | 37 | 20 | /api/v1/sessions/{sid}/events |
Dettagli di implementazione
Corpo della richiesta di esempio
{
playerTime: {
playhead: 18,
ts: <timestamp>
},
eventType:play, qoeData: { bitrate: 10000 }
}
Azione | Timeline di azioni (secondi) | Posizione della testina di riproduzione (secondi) | Richiesta del client |
---|---|---|---|
L’app invia un evento ping | 40 | 28 | /api/v1/sessions/{sid}/events |
Dettagli di implementazione
Esegui il ping del backend ogni 10 secondi.
Corpo della richiesta di esempio
{
playerTime: {
playhead: 28,
ts: <timestamp>
},
eventType:ping
}
Azione | Timeline di azioni (secondi) | Posizione della testina di riproduzione (secondi) | Richiesta del client |
---|---|---|---|
Tracciamento avvio interruzione pubblicitaria mid-roll | 45 | 33 | /api/v1/sessions/{sid}/events |
Dettagli di implementazione
Annuncio mid-roll con una durata di 8 secondi: invia adBreakStart
.
Esempio di corpo della richiesta
{
playerTime: {
playhead: 33,
ts: <timestamp>
},
eventType:adBreakStart, params: {
"media.ad.podFriendlyName": "ad_pod2",
"media.ad.podIndex": 1,
"media.ad.podSecond": 33
}
}
Azione | Timeline di azioni (secondi) | Posizione della testina di riproduzione (secondi) | Richiesta del client |
---|---|---|---|
Avvio tracciamento annuncio mid-roll n.1 | 45 | 33 | /api/v1/sessions/{sid}/events |
Dettagli di implementazione
Tracciamento dell’annuncio mid-roll.
Esempio di corpo della richiesta
{
playerTime: { playhead: 33, ts: <timestamp>
},
eventType:adStart, params: {
"media.ad.podFriendlyName": "ad_pod1",
"media.ad.name": "Ad 1",
"media.ad.id": "002",
"media.ad.length": 8,
"media.ad.podPosition": 1,
"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"
},
}
Azione | Timeline di azioni (secondi) | Posizione della testina di riproduzione (secondi) | Richiesta del client |
---|---|---|---|
L’utente chiude l’app. L’app determina che l’utente ha abbandonato la visualizzazione e non ritorna alla sessione. | 48 | 33 | /api/v1/sessions/{sid}/events |
Dettagli di implementazione
Invia sessionEnd
al backend VA per indicare che la sessione deve essere chiusa immediatamente, senza ulteriore elaborazione.
Corpo della richiesta di esempio
{
playerTime: {
playhead: 33,
ts: <timestamp>
},
eventType:sessionEnd
}