Timeline 1: visualizza fino alla fine del contenuto

VOD, annunci pre-roll, messa in pausa, buffering, visualizzazione del contenuto alla fine

I seguenti diagrammi illustrano la timeline della testina di riproduzione e la sequenza temporale 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

Azione Timeline azione (secondi) Posizione della testina di riproduzione (secondi) Richiesta client
Pulsante Riproduzione automatica o Riproduzione premuto, il video inizia a caricarsi. 0 0 /api/v1/sessions

Dettagli 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 giocatore non è ancora "in riproduzione", ma è invece "in partenza".

I parametri di sessione obbligatori devono essere inclusi nella params mappa 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 2 - Avvio timer ping

Azione Timeline azione (secondi) Posizione della testina di riproduzione (secondi) Richiesta client
L'app avvia il timer dell'evento 0 0 /api/v1/sessions/{sid}/events

Dettagli di implementazione

Avvia il timer ping dell'app. Il primo evento ping dovrebbe quindi attivarsi di 1 secondo in se ci sono annunci pre-roll, 10 secondi in caso contrario.

Azione 3 - Avvio dell'interruzione dell'annuncio

Azione Timeline azione (secondi) Posizione della testina di riproduzione (secondi) Richiesta client
Traccia inizio pre-roll annuncio 0 0 /api/v1/sessions/{sid}/events

Dettagli implementazione

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 4 - Avvio dell'annuncio

Azione Timeline azione (secondi) Posizione della testina di riproduzione (secondi) Richiesta client
Traccia l'inizio dell'annuncio pre-roll n. 1 0 0 /api/v1/sessions/{sid}/events

Dettagli implementazione

Inizia a tenere traccia del primo annuncio pre-roll, che è lungo 15 secondi. Inclusione di metadati personalizzati con questo adStart .

Corpo della richiesta di esempio

{
    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"
    }
}

Azione 5: ping di annunci

Azione 5.1 - Annunci ping 1

Azione Timeline azione (secondi) Posizione della testina di riproduzione (secondi) Richiesta client
L'app invia un evento ping 1 0 /api/v1/sessions/{sid}/events

Dettagli implementazione

Effettua il ping del backend ogni 1 secondo all’interno di un annuncio.

Corpo della richiesta di esempio

{
    playerTime: {
        playhead: 0,
        ts: <timestamp>
    },
    eventType:ping
}

Azione 5.2 - Annunci ping 2

Azione Timeline azione (secondi) Posizione della testina di riproduzione (secondi) Richiesta client
L'app invia un evento ping 2 0 /api/v1/sessions/{sid}/events

Dettagli implementazione

Effettua il ping del backend ogni 1 secondo all’interno di un annuncio.

Corpo della richiesta di esempio

{
    playerTime: {
        playhead: 0,
        ts: <timestamp>
    },
    eventType:ping
}

Azione 5.3 - Annunci ping 3

Azione Timeline azione (secondi) Posizione della testina di riproduzione (secondi) Richiesta client
L'app invia un evento ping 3 0 /api/v1/sessions/{sid}/events

Dettagli implementazione

Effettua il ping del backend ogni 1 secondo all’interno di un annuncio.

NOTA

Gli annunci successivi nella timeline ignorano la visualizzazione della serie di ping di un secondo
nell'interesse della brevità…

Corpo della richiesta di esempio

{
    playerTime: {
        playhead: 0,
        ts: <timestamp>
    },
    eventType:ping
}

Azione 6 - Annuncio completo

Azione Timeline azione (secondi) Posizione della testina di riproduzione (secondi) Richiesta client
Tracciamento annuncio pre-roll n. 1 completato 15 0 /api/v1/sessions/{sid}/events

Dettagli implementazione

Monitora la fine del primo annuncio pre-roll.

Corpo della richiesta di esempio

{
    playerTime: {
        playhead: 0,
        ts: <timestamp>
    },
    eventType:adComplete
}

Azione 7 - Avvio dell'annuncio

Azione Timeline azione (secondi) Posizione della testina di riproduzione (secondi) Richiesta client
Traccia l'inizio dell'annuncio pre-roll n. 2 15 0 /api/v1/sessions/{sid}/events

Dettagli implementazione

Tieni traccia dell’inizio del secondo annuncio pre-roll, che è lungo 7 secondi.

Corpo della richiesta di esempio

{
    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"
    },
}

Azione 8 - Elementi ad ping

Azione Timeline azione (secondi) Posizione della testina di riproduzione (secondi) Richiesta client
L'app invia un evento ping 20 0 /api/v1/sessions/{sid}/events

Dettagli implementazione

Eseguire il ping del backend ogni 1 secondo.

Corpo della richiesta di esempio

{
    playerTime: {
        playhead: 0,
        ts: <timestamp>
    },
    eventType:ping
}

Azione 9 - Annuncio completo

Azione Timeline azione (secondi) Posizione della testina di riproduzione (secondi) Richiesta client
Tracciamento annuncio pre-roll n. 2 completo 22 0 /api/v1/sessions/{sid}/events

Dettagli implementazione

Monitora la fine del secondo annuncio pre-roll.

Corpo della richiesta di esempio

{
    playerTime: {
        playhead: 0,
        ts: <timestamp>
    },
    eventType:adComplete
}

Azione 10 - Completamento dell’interruzione dell’annuncio

Azione Timeline azione (secondi) Posizione della testina di riproduzione (secondi) Richiesta client
Tracciamento pre-roll annuncio completato 22 0 /api/v1/sessions/{sid}/events

Dettagli implementazione

La pausa pubblicitaria è finita. Durante la pausa pubblicitaria, lo stato di gioco è rimasto "play".

Corpo della richiesta di esempio

{
    playerTime: {
        playhead: 0,
        ts: <timestamp>
    },
    eventType:adBreakComplete
}

Azione 11 - Riprodurre il contenuto

Azione Timeline azione (secondi) Posizione della testina di riproduzione (secondi) Richiesta client
Tracciare un evento di riproduzione 22 0 /api/v1/sessions/{sid}/events

Dettagli implementazione

Dopo l'evento adBreakComplete , inserisci il lettore nello stato di "riproduzione" utilizzando l'evento play .

Corpo della richiesta di esempio

{
    playerTime: {
        playhead: 0,
        ts: <timestamp>
    },
    eventType:play
}

Azione 12 - Ping

Azione Timeline azione (secondi) Posizione della testina di riproduzione (secondi) Richiesta client
L'app invia un evento ping 30 8 /api/v1/sessions/{sid}/events

Dettagli implementazione

Esegui il ping del backend ogni 10 secondi.

Corpo della richiesta di esempio

{
    playerTime: {
        playhead: 8,
        ts: <timestamp>
    },
    eventType:ping
}

Azione 13 - Avvio del buffer

Azione Timeline azione (secondi) Posizione della testina di riproduzione (secondi) Richiesta client
Si è verificato un evento di avvio del buffer 33 11 /api/v1/sessions/{sid}/events

Dettagli implementazione

Monitora lo spostamento del lettore allo stato di "buffering".

Corpo della richiesta di esempio

{
    playerTime: {
        playhead: 11,
        ts: <timestamp>
    }, eventType:bufferStart
}

Azione 14 - Fine buffer

Azione Timeline azione (secondi) Posizione della testina di riproduzione (secondi) Richiesta client
Buffering terminato, l’app tiene traccia della ripresa del contenuto 36 11 /api/v1/sessions/{sid}/events

Dettagli implementazione

Il buffering termina dopo 3 secondi, quindi riportare il lettore allo stato di "riproduzione". Devi inviare un altro evento di riproduzione del brano che esce dal buffering. La play chiamata dopo una chiamata bufferStart deduce una chiamata "bufferEnd" al back-end, quindi non è necessario un bufferEnd evento.

Corpo della richiesta di esempio

{
    playerTime: {
        playhead: 11,
        ts: <timestamp>
    },
    eventType:play
}

Azione 15 - Ping

Azione Timeline azione (secondi) Posizione della testina di riproduzione (secondi) Richiesta client
L'app invia un evento ping 40 15 /api/v1/sessions/{sid}/events

Dettagli implementazione

Esegui il ping del backend ogni 10 secondi.

Corpo della richiesta di esempio

{
    playerTime: {
        playhead: 15,
        ts: <timestamp>
    }, eventType:ping
}

Azione 16 - Avvio ad break

Azione Timeline azione (secondi) Posizione della testina di riproduzione (secondi) Richiesta client
Tracciamento inizio interruzione annuncio mid-roll 46 21 /api/v1/sessions/{sid}/events

Dettagli implementazione

Media roll con una durata di 8 secondi: invia adBreakStart .

Corpo della richiesta di esempio

{
    playerTime: {
        playhead: 21,
        ts: <timestamp>
    },
    eventType:adBreakStart,
    params: {
        "media.ad.podFriendlyName": "ad_pod2",
        "media.ad.podIndex": 1,
        "media.ad.podSecond": 21
    }
}

Azione 17 - Inizio dell’annuncio

Azione Timeline azione (secondi) Posizione della testina di riproduzione (secondi) Richiesta client
Traccia avvio annuncio mid-roll n. 3 46 21 /api/v1/sessions/{sid}/events

Dettagli implementazione

Tieni traccia dell’annuncio mid-roll.

Corpo della richiesta di esempio

{
    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"
    },
}

Azione 18 - ping di annunci

Azione Timeline azione (secondi) Posizione della testina di riproduzione (secondi) Richiesta client
L'app invia un evento ping 50 21 /api/v1/sessions/{sid}/events

Dettagli implementazione

Esegui il ping del backend ogni 10 secondi.

Corpo della richiesta di esempio

{
    playerTime: {
        playhead: 21,
        ts: <timestamp>
    }, eventType:ping
}

Azione 19 - Annuncio completo

Azione Timeline azione (secondi) Posizione della testina di riproduzione (secondi) Richiesta client
Tracciamento annuncio mid-roll n. 1 completato 54 21 /api/v1/sessions/{sid}/events

Dettagli implementazione

L'annuncio mid-roll è completo.

Corpo della richiesta di esempio

{
    playerTime: {
        playhead: 21,
        ts: <timestamp>
    },
    eventType:adComplete
}

Azione 20 - Annuncio interrotto completato

Azione Timeline azione (secondi) Posizione della testina di riproduzione (secondi) Richiesta client
Tracciamento interruzione annuncio mid-roll completato 54 21 /api/v1/sessions/{sid}/events

Dettagli implementazione

L'interruzione pubblicitaria è completa.

Corpo della richiesta di esempio

{
    playerTime: {
        playhead: 21,
        ts: <timestamp>
    },
    eventType:adBreakComplete
}

Azione 21 - Ping

Azione Timeline azione (secondi) Posizione della testina di riproduzione (secondi) Richiesta client
L'app invia un evento ping 60 27 /api/v1/sessions/{sid}/events

Dettagli implementazione

Esegui il ping del backend ogni 10 secondi.

Corpo della richiesta di esempio

{
    playerTime: {
        playhead: 27,
        ts: <timestamp>
    },
    eventType:ping
}

Azione 22 - Pausa

Azione Timeline azione (secondi) Posizione della testina di riproduzione (secondi) Richiesta client
Pausa utente premuto 64 31 /api/v1/sessions/{sid}/events

Dettagli implementazione

L'azione dell'utente sposta lo stato di riproduzione su "messo in pausa".

Corpo della richiesta di esempio

{
    playerTime: {
        playhead: 31,
        ts: <timestamp>
    },
    eventType:pauseStart
}

Azione 23 - Ping

Azione Timeline azione (secondi) Posizione della testina di riproduzione (secondi) Richiesta client
L'app invia un evento ping 70 31 /api/v1/sessions/{sid}/events

Dettagli implementazione

Esegui il ping del backend ogni 10 secondi. Il lettore è ancora nello stato "buffering"; l’utente rimane bloccato a 20 secondi di contenuto. Fumare…

Corpo della richiesta di esempio

{
    playerTime: {
        playhead: 31,
        ts: <timestamp>
    }, eventType:ping
}

Azione 24 - Gioco

Azione Timeline azione (secondi) Posizione della testina di riproduzione (secondi) Richiesta client
L'utente ha premuto Play per riprendere il contenuto principale 74 31 /api/v1/sessions/{sid}/events

Dettagli implementazione

Sposta lo stato di riproduzione su "riproduzione". La play chiamata dopo una chiamata pauseStart deduce una chiamata di "ripresa" al back-end, quindi non è necessario un resume evento.

Corpo della richiesta di esempio

{
    playerTime: {
        playhead: 31,
        ts: <timestamp>
    }, eventType:play
}

Azione 25 - Ping

Azione Timeline azione (secondi) Posizione della testina di riproduzione (secondi) Richiesta client
L'app invia un evento ping 80 37 /api/v1/sessions/{sid}/events

Dettagli implementazione

Esegui il ping del backend ogni 10 secondi.

Corpo della richiesta di esempio

{
    playerTime: {
        playhead: 37,
        ts: <timestamp>
    }, eventType:ping
}

Azione 26 - Sessione completa

Azione Timeline azione (secondi) Posizione della testina di riproduzione (secondi) Richiesta client
L’utente termina di guardare il contenuto alla fine. 88 45 /api/v1/sessions/{sid}/events

Dettagli implementazione

Invia sessionComplete al backend per indicare che l'utente ha terminato di guardare l'intero contenuto.

Corpo della richiesta di esempio

{
    playerTime: {
        playhead: 45,
        ts: <timestamp>
    }, eventType:sessionComplete
}
NOTA

Niente Eventi di ricerca? - Non è disponibile alcun supporto esplicito nell’API Media Collection per gli eventi seekStart o seekComplete. Questo perché alcuni giocatori generano un numero molto elevato di tali eventi quando l'utente finale sta pulendo, e diverse centinaia di utenti potrebbero facilmente strozzare la larghezza di banda di rete di un servizio back-end. L'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 dell'indicatore di riproduzione.

In questa pagina