Timeline 1: visualizza fino alla fine del contenuto

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

I diagrammi seguenti illustrano la timeline dell'indicatore di riproduzione e la cronologia delle azioni di un utente. I dettagli di ciascuna azione e le relative richieste sono presentati di seguito.

Dettagli azione

Azione 1 - Avvia sessione

Azione Timeline azione (secondi) Posizione dell'indicatore di riproduzione (secondi) Richiesta client
Riproduzione automatica o Pulsante Riproduci 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 lettore non è ancora "play", ma è invece "start".

I parametri di sessione obbligatori devono essere inclusi nella params mappa nel corpo della richiesta.

Sul back-end, questa chiamata genera una chiamata di avvio di 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 dell'indicatore di riproduzione (secondi) Richiesta client
L'app avvia il timer evento 0 0 /api/v1/sessions/{sid}/events

Dettagli di implementazione

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

Azione 3 - Avvio interruzione annuncio

Azione Timeline azione (secondi) Posizione dell'indicatore di riproduzione (secondi) Richiesta client
Avvio pre-roll e interruzione 0 0 /api/v1/sessions/{sid}/events

Dettagli implementazione

Gli annunci possono essere tracciati solo all'interno di un'interruzione di annuncio.

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 - Inizio annuncio

Azione Timeline azione (secondi) Posizione dell'indicatore di riproduzione (secondi) Richiesta client
Track pre-roll Ad #1 start 0 0 /api/v1/sessions/{sid}/events

Dettagli implementazione

Inizia il tracciamento del primo annuncio pre-roll, che dura 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 - Punti annuncio

Azione 5.1 - Annuncio ping 1

Azione Timeline azione (secondi) Posizione dell'indicatore di riproduzione (secondi) Richiesta client
L'app invia l'evento 1 0 /api/v1/sessions/{sid}/events

Dettagli implementazione

Ping the backend ogni 1 secondo all'interno di un annuncio.

Corpo della richiesta di esempio

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

Azione 5.2 - Annuncio ping 2

Azione Timeline azione (secondi) Posizione dell'indicatore di riproduzione (secondi) Richiesta client
L'app invia l'evento 2 0 /api/v1/sessions/{sid}/events

Dettagli implementazione

Ping the backend ogni 1 secondo all'interno di un annuncio.

Corpo della richiesta di esempio

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

Azione 5.3 - Annuncio ping 3

Azione Timeline azione (secondi) Posizione dell'indicatore di riproduzione (secondi) Richiesta client
L'app invia l'evento 3 0 /api/v1/sessions/{sid}/events

Dettagli implementazione

Ping the backend ogni 1 secondo all'interno di un annuncio.

NOTA

Gli annunci successivi nella timeline ignorano la 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 completato

Azione Timeline azione (secondi) Posizione dell'indicatore di riproduzione (secondi) Richiesta client
Track pre-roll Ad #1 completo 15 0 /api/v1/sessions/{sid}/events

Dettagli implementazione

Tieni traccia della fine del primo annuncio pre-roll.

Corpo della richiesta di esempio

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

Azione 7 - Inizio annuncio

Azione Timeline azione (secondi) Posizione dell'indicatore di riproduzione (secondi) Richiesta client
Track pre-roll Ad #2 start 15 0 /api/v1/sessions/{sid}/events

Dettagli implementazione

Tieni traccia dell’inizio del secondo annuncio pre-roll, che dura 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 - Punti annuncio

Azione Timeline azione (secondi) Posizione dell'indicatore di riproduzione (secondi) Richiesta client
L'app invia l'evento 20 0 /api/v1/sessions/{sid}/events

Dettagli implementazione

Ping il backend ogni 1 secondo.

Corpo della richiesta di esempio

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

Azione 9 - Annuncio completato

Azione Timeline azione (secondi) Posizione dell'indicatore di riproduzione (secondi) Richiesta client
Track pre-roll Ad #2 completo 22 0 /api/v1/sessions/{sid}/events

Dettagli implementazione

Tieni traccia della fine del secondo annuncio pre-roll.

Corpo della richiesta di esempio

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

Azione 10 - Fine annuncio

Azione Timeline azione (secondi) Posizione dell'indicatore di riproduzione (secondi) Richiesta client
Traccia pre-roll e interruzione completa 22 0 /api/v1/sessions/{sid}/events

Dettagli implementazione

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

Corpo della richiesta di esempio

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

Azione 11 - Riproduci contenuto

Azione Timeline azione (secondi) Posizione dell'indicatore di riproduzione (secondi) Richiesta client
Tracciare l’evento di riproduzione 22 0 /api/v1/sessions/{sid}/events

Dettagli implementazione

Dopo l’ adBreakComplete evento, mettere il lettore nello stato di "riproduzione" utilizzando l’ play evento.

Corpo della richiesta di esempio

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

Azione 12 - Ping

Azione Timeline azione (secondi) Posizione dell'indicatore di riproduzione (secondi) Richiesta client
L'app invia l'evento 30 8 /api/v1/sessions/{sid}/events

Dettagli implementazione

Eseguire il ping del backend ogni 10 secondi.

Corpo della richiesta di esempio

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

Azione 13 - Avvio buffer

Azione Timeline azione (secondi) Posizione dell'indicatore di riproduzione (secondi) Richiesta client
Si è verificato un evento di inizio buffer 33 11 /api/v1/sessions/{sid}/events

Dettagli implementazione

Tenere traccia dello spostamento del lettore allo stato "buffering".

Corpo della richiesta di esempio

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

Azione 14 - Fine buffer

Azione Timeline azione (secondi) Posizione dell'indicatore 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 il lettore torna allo stato di "riproduzione". È necessario inviare un altro evento di tracciamento che esce dal buffering. Laplaychiamata dopo una chiamatabufferStartdeduce 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 dell'indicatore di riproduzione (secondi) Richiesta client
L'app invia l'evento 40 15 /api/v1/sessions/{sid}/events

Dettagli implementazione

Eseguire il ping del backend ogni 10 secondi.

Corpo della richiesta di esempio

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

Azione 16 - Inizio interruzione annuncio

Azione Timeline azione (secondi) Posizione dell'indicatore di riproduzione (secondi) Richiesta client
Tracciamento avvio intermedio e interruzione 46 21 /api/v1/sessions/{sid}/events

Dettagli implementazione

Media roll con durata di 8 secondi: send 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 annuncio

Azione Timeline azione (secondi) Posizione dell'indicatore di riproduzione (secondi) Richiesta client
Track mid-roll Ad #3 start 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 - Aggiunta di annunci

Azione Timeline azione (secondi) Posizione dell'indicatore di riproduzione (secondi) Richiesta client
L'app invia l'evento 50 21 /api/v1/sessions/{sid}/events

Dettagli implementazione

Eseguire 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 dell'indicatore di riproduzione (secondi) Richiesta client
Track mid-roll Ad #1 completo 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 - Fine annuncio

Azione Timeline azione (secondi) Posizione dell'indicatore di riproduzione (secondi) Richiesta client
Tracciamento del mid-roll e interruzione 54 21 /api/v1/sessions/{sid}/events

Dettagli implementazione

L'interruzione dell'annuncio è completa.

Corpo della richiesta di esempio

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

Azione 21 - Ping

Azione Timeline azione (secondi) Posizione dell'indicatore di riproduzione (secondi) Richiesta client
L'app invia l'evento 60 27 /api/v1/sessions/{sid}/events

Dettagli implementazione

Eseguire 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 dell'indicatore di riproduzione (secondi) Richiesta client
Pausa utente 64 31 /api/v1/sessions/{sid}/events

Dettagli implementazione

L'azione dell'utente sposta lo stato di riproduzione su "Pausa".

Corpo della richiesta di esempio

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

Azione 23 - Ping

Azione Timeline azione (secondi) Posizione dell'indicatore di riproduzione (secondi) Richiesta client
L'app invia l'evento 70 31 /api/v1/sessions/{sid}/events

Dettagli implementazione

Eseguire il ping del backend ogni 10 secondi. Player è ancora nello stato "buffering"; l'utente rimane bloccato a 20 secondi di contenuto. Fuming…

Corpo della richiesta di esempio

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

Azione 24 - Riproduzione

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

Dettagli implementazione

Sposta lo stato di riproduzione su "play". Laplaychiamata dopo una chiamatapauseStartdeduce una chiamata di "ripresa" al back-end, per cui 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 dell'indicatore di riproduzione (secondi) Richiesta client
L'app invia l'evento 80 37 /api/v1/sessions/{sid}/events

Dettagli implementazione

Eseguire il ping del backend ogni 10 secondi.

Corpo della richiesta di esempio

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

Azione 26 - Sessione completata

Azione Timeline azione (secondi) Posizione dell'indicatore di riproduzione (secondi) Richiesta client
L'utente ha finito di guardare il contenuto alla fine. 88 45 /api/v1/sessions/{sid}/events

Dettagli implementazione

Inviate 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

Nessun evento di ricerca? - Non esiste alcun supporto esplicito nell'API di Media Collection per seekStart eventi o seekComplete eventi. Questo perché alcuni lettori generano un numero molto elevato di eventi di questo tipo quando l'utente finale sta scorrendo, e diverse centinaia di utenti potrebbero facilmente strozzare la larghezza di banda di rete di un servizio back-end. Adobe supporta esplicitamente gli eventi di ricerca elaborando la durata del heartbeat in base alla marca temporale del dispositivo, anziché alla posizione dell'indicatore di riproduzione.

In questa pagina

Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now