Timeline 1 - Visualizza fino alla fine del contenuto timeline-view-to-end-of-content
VOD, annunci pre-roll, pausa, buffering, visualizzazione del contenuto fino alla fine
I seguenti diagrammi illustrano la timeline della testina di riproduzione e la timeline corrispondente delle azioni di un utente. Di seguito sono riportati i dettagli di ciascuna azione e le relative richieste.
Dettagli azione
Azione 1 - Avvia sessione Action-1
/api/v1/sessions
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”.
I parametri di sessione obbligatori devono essere inclusi nella mappa params
nel corpo della richiesta. Per informazioni sulle sessioni, consulta la documentazione delle API di Media Collection.
Nel backend, questa chiamata genera una chiamata di avvio 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
}
}
Azione 2 - Avvio timer del ping Action-2
/api/v1/sessions/{sid}/events
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 3 - Avvio dell’interruzione pubblicitaria Action-3
/api/v1/sessions/{sid}/events
Gli annunci possono essere tracciati solo all’interno di un’interruzione pubblicitaria.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType":"adBreakStart",
"params": {
"media.ad.podFriendlyName": "ad_pod1",
"media.ad.podIndex": 0,
"media.ad.podSecond": 0
}
}
Azione 4 - Avvio dell’annuncio Action-4
/api/v1/sessions/{sid}/events
Inizia il tracciamento del primo annuncio pre-roll, che è lungo 15 secondi. Inclusione di metadati personalizzati con questo 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"
}
}
NOTA: tra gli eventi AdBreakStart e AdStart non devono esserci altri eventi di riproduzione.
Azione 5: ping annuncio Action-5
Azione 5.1 - Ping annuncio 1 Action-5-1
/api/v1/sessions/{sid}/events
Effettua il ping del backend ogni 1 secondo all’interno di un annuncio.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "ping"
}
Azione 5.2 - Ping annuncio 2 Action-5-2
/api/v1/sessions/{sid}/events
Effettua il ping del backend ogni 1 secondo all’interno di un annuncio.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "ping"
}
Azione 5.3 - Ping annuncio 3 Action-5-3
/api/v1/sessions/{sid}/events
Effettua il ping del backend ogni 1 secondo all’interno di un annuncio.
per brevità…
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "ping"
}
Azione 6 - Annuncio completato Action-6
/api/v1/sessions/{sid}/events
Traccia la fine del primo annuncio pre-roll.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "adComplete"
}
Azione 7 - Avvio dell’annuncio Action-7
/api/v1/sessions/{sid}/events
Traccia l’inizio del secondo annuncio pre-roll, che ha una durata di 7 secondi.
{
"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"
},
}
Azione 8 - Ping dell’annuncio Action-8
/api/v1/sessions/{sid}/events
Esegui il ping del backend ogni 1 secondo.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "ping"
}
Azione 9 - Annuncio completato Action-9
/api/v1/sessions/{sid}/events
Traccia la fine del secondo annuncio pre-roll.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "adComplete"
}
Azione 10 - Completamento dell’interruzione pubblicitaria Action-10
/api/v1/sessions/{sid}/events
L’interruzione pubblicitaria è terminata. Durante l’interruzione pubblicitaria, lo stato della riproduzione è rimasto “in esecuzione”.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "adBreakComplete"
}
Azione 11 - Riproduci il contenuto Action-11
/api/v1/sessions/{sid}/events
Dopo l’evento adBreakComplete
, imposta il lettore nello stato di “riproduzione” utilizzando l’evento play
.
{
"playerTime": {
"playhead": 0,
"ts": "<timestamp>"
},
"eventType": "play"
}
Azione 12 - Ping Action-12
/api/v1/sessions/{sid}/events
Esegui il ping del backend ogni 10 secondi.
{
"playerTime": {
"playhead": 8,
"ts": "<timestamp>"
},
"eventType": "ping"
}
Azione 13 - Avvio del buffer Action-13
/api/v1/sessions/{sid}/events
Traccia lo spostamento del lettore allo stato di “buffering”.
{
"playerTime": {
"playhead": 11,
"ts": "<timestamp>"
}, "eventType": "bufferStart"
}
Azione 14 - Fine buffer Action-14
/api/v1/sessions/{sid}/events
Il buffering termina dopo 3 secondi, quindi riporta il lettore allo stato di “riproduzione”. Devi inviare un altro evento di riproduzione del tracciamento proveniente dal buffering. La chiamata play
dopo bufferStart
implica una chiamata “bufferEnd” al back-end, quindi non è necessario un evento bufferEnd
.
{
"playerTime": {
"playhead": 11,
"ts": "<timestamp>"
},
"eventType": "play"
}
Azione 15 - Ping Action-15
/api/v1/sessions/{sid}/events
Esegui il ping del backend ogni 10 secondi.
{
"playerTime": {
"playhead": 15,
"ts": "<timestamp>"
}, "eventType": "ping"
}
Azione 16 - Avvio dell’interruzione pubblicitaria Action-16
/api/v1/sessions/{sid}/events
Annuncio mid-roll con una durata di 8 secondi: invia adBreakStart
.
{
"playerTime": {
"playhead": 21,
"ts": "<timestamp>"
},
"eventType": "adBreakStart",
"params": {
"media.ad.podFriendlyName": "ad_pod2",
"media.ad.podIndex": 1,
"media.ad.podSecond": 21
}
}
Azione 17 - Inizio annuncio Action-17
/api/v1/sessions/{sid}/events
Tracciamento dell’annuncio mid-roll.
{
"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"
},
}
Azione 18 - Ping dell’annuncio Action-18
/api/v1/sessions/{sid}/events
Esegui il ping del backend ogni 10 secondi.
{
"playerTime": {
"playhead": 21,
"ts": "<timestamp>"
}, "eventType": "ping"
}
Azione 19 - Annuncio completo Action-19
/api/v1/sessions/{sid}/events
L’annuncio mid-roll è completo.
{
"playerTime": {
"playhead": 21,
"ts": "<timestamp>"
},
"eventType": "adComplete"
}
Azione 20 - Interruzione pubblicitaria completata Action-20
/api/v1/sessions/{sid}/events
L’interruzione pubblicitaria è stata completata.
{
"playerTime": {
"playhead": 21,
"ts": "<timestamp>"
},
"eventType": "adBreakComplete"
}
Azione 21 - Ping Action-21
/api/v1/sessions/{sid}/events
Esegui il ping del backend ogni 10 secondi.
{
"playerTime": {
"playhead": 27,
"ts": "<timestamp>"
},
"eventType": "ping"
}
Azione 22 - Pausa Action-22
/api/v1/sessions/{sid}/events
L’azione dell’utente sposta lo stato di riproduzione su “messo in pausa”.
{
"playerTime": {
"playhead": 31,
"ts": "<timestamp>"
},
"eventType": "pauseStart"
}
Azione 23 - Ping Action-23
/api/v1/sessions/{sid}/events
Esegui il ping del backend ogni 10 secondi. Il lettore è ancora in stato di “buffering”; l’utente rimane bloccato a 20 secondi di contenuto. Furente…
{
"playerTime": {
"playhead": 31,
"ts": "<timestamp>"
}, "eventType": "ping"
}
Azione 24 - Play Action-24
/api/v1/sessions/{sid}/events
Sposta lo stato di riproduzione su “in riproduzione”. La chiamata play
dopo pauseStart
deduce una chiamata di “ripresa” al back end, quindi non è necessario un evento resume
.
{
"playerTime": {
"playhead": 31,
"ts": "<timestamp>"
}, "eventType": "play"
}
Azione 25 - Ping Action-25
/api/v1/sessions/{sid}/events
Esegui il ping del backend ogni 10 secondi.
{
"playerTime": {
"playhead": 37,
"ts": "<timestamp>"
}, "eventType": "ping"
}
Azione 26 - Sessione completa Action-26
/api/v1/sessions/{sid}/events
Invia sessionComplete
al backend per indicare che l’utente ha terminato di guardare l’intero contenuto.
{
"playerTime": {
"playhead": 45,
"ts": "<timestamp>"
}, "eventType": "sessionComplete"
}
seekStart
o seekComplete
. Alcuni utenti generano un numero molto elevato di tali eventi nel momento in cui l’utente finale esegue la pulizia. Inoltre, è probabile che le diverse centinaia di utenti causino un bottleneck della larghezza di banda di un servizio back-end. Adobe si basa su un supporto esplicito per gli eventi di ricerca, calcolando la durata dell’heartbeat in base alla marca temporale del dispositivo, anziché alla posizione della testina di riproduzione.