Questa documentazione tratta il tracciamento nella versione 2.x dell’SDK.
Se stai implementando una versione 1.x di SDK, puoi scaricare le guide per sviluppatori 1.x qui: Scarica SDK
Configurazione del tracciamento iniziale
Identifica quando l’utente attiva l’intenzione di riproduzione (l’utente fa clic su play e/o l’esecuzione automatica è attiva) e crea un’istanza MediaObject
.
Specifihe di MediaObject
:
Nome variabile | Descrizione | Obbligatorio |
---|---|---|
name |
Nome del video | Sì |
mediaid |
Identificatore univoco del video | Sì |
length |
Lunghezza video | Sì |
streamType |
Tipo di flusso (vedi Costanti StreamType sotto) | Sì |
mediaType |
Tipo di file multimediale (vedi Costanti MediaType sotto) | Sì |
StreamType
Costanti:
Nome costante | Descrizione |
---|---|
MEDIA_STREAM_TYPE_VOD |
Tipo di flusso per Video on Demand. |
MEDIA_STREAM_TYPE_LIVE |
Tipo di flusso per il contenuto LIVE. |
MEDIA_STREAM_TYPE_LINEAR |
Tipo di flusso per contenuti LINEAR. |
MEDIA_STREAM_TYPE_AOD |
Tipo di flusso per audio on-demand |
MEDIA_STREAM_TYPE_AUDIOBOOK |
Tipo di flusso per audiolibro |
MEDIA_STREAM_TYPE_PODCAST |
Tipo di flusso per Podcast |
MediaType
Costanti:
Nome costante | Descrizione |
---|---|
MEDIA_STREAM_TYPE_AUDIO |
Tipo di file multimediale per flussi Audio. |
MEDIA_STREAM_TYPE_VIDEO |
Tipo di file multimediale per i flussi Video. |
Crea un oggetto informazioni multimediali per video con contenuto VOD:
mediaInfo = adb_media_init_mediainfo(
"<MEDIA_NAME>",
"<MEDIA_ID>",
600,
ADBMobile().MEDIA_STREAM_TYPE_VOD,
ADBMobile().MEDIA_TYPE_VIDEO
)
oppure
mediaInfo = adb_media_init_mediainfo()
mediaInfo.name = "<MEDIA_NAME>"
mediaInfo.id = "<MEDIA_ID>"
mediaInfo.length = 600
mediaInfo.streamType = ADBMobile().MEDIA_STREAM_TYPE_VOD
mediaInfo.mediaType = ADBMobile().MEDIA_TYPE_VIDEO
Crea un oggetto informazioni multimediali per video con contenuto AOD:
mediaInfo = adb_media_init_mediainfo(
"<MEDIA_NAME>",
"<MEDIA_ID>",
600,
ADBMobile().MEDIA_STREAM_TYPE_AOD,
ADBMobile().MEDIA_TYPE_AUDIO
)
oppure
mediaInfo = adb_media_init_mediainfo()
mediaInfo.name = "<MEDIA_NAME>"
mediaInfo.id = "<MEDIA_ID>"
mediaInfo.length = 600
mediaInfo.streamType = ADBMobile().MEDIA_STREAM_TYPE_AOD
mediaInfo.mediaType = ADBMobile().MEDIA_TYPE_AUDIO
Allega metadati
Facoltativamente, allega oggetti metadati standard e/o personalizzati alla sessione di tracciamento tramite variabili di dati di contesto.
Implementare metadati standard in Roku
<div class="extension note">
<div>NOTA</div>
<div>
<p>Il collegamento dell’oggetto metadati video standard all’oggetto multimediale è facoltativo.</p>
</div>
</div>
Metadati personalizzati
Crea un oggetto variabile per le variabili personalizzate e lo popola con i dati del video. Ad esempio:
mediaContextData = {}
mediaContextData["cmk1"] = "cmv1"
mediaContextData["cmk2"] = "cmv2"
Tracciare l’intenzione di inizio riproduzione
Per iniziare a tracciare una sessione multimediale, chiama trackSessionStart
sull’istanza Media Heartbeat:
ADBMobile().mediaTrackSessionStart(mediaInfo,mediaContextData)
Il secondo valore corrisponde al nome dell’oggetto metadati video personalizzato creato nel passaggio 2.
trackSessionStart
tiene traccia delle intenzioni dell’utente in merito alla riproduzione, non dell’inizio della riproduzione. Questa API viene utilizzata per caricare i dati/metadati video e per stimare la metrica QoS relativa al tempo di avvio (durata tra trackSessionStart
e trackPlay
).
Se non utilizzi metadati video personalizzati, invia semplicemente un oggetto vuoto per l’argomento data
in trackSessionStart
, come mostrato nella riga esterna di commento nell’esempio di iOS precedente.
Tracciare l’inizio effettivo della riproduzione
Identifica l’evento dal lettore video per l’inizio della riproduzione, in cui viene eseguito il rendering del primo fotogramma del video sullo schermo, quindi effettua una chiamata trackPlay
.
ADBMobile().mediaTrackPlay()
Aggiorna il valore dell'indicatore di riproduzione
Quando l'indicatore di riproduzione multimediale cambia, notifica l'SDK chiamando il mediaUpdatePlayhead
API.
Per il tracciamento dei video on-demand (VOD), il valore è specificato in secondi dall’inizio dell’elemento multimediale.
Per lo streaming live, se il lettore non fornisce informazioni sulla durata del contenuto, il valore può essere specificato come il numero di secondi trascorsi dalla mezzanotte UTC di quel giorno.
ADBMobile().mediaUpdatePlayhead(position)
Quando richiami il mediaUpdatePlayhead
API:
mediaUpdatePlayhead
API almeno una volta al secondo.Tracciare il completamento della riproduzione
Identifica l’evento dal lettore video per il completamento della riproduzione, in cui l’utente ha guardato il contenuto fino alla fine, ed effettua una chiamata trackComplete
.
ADBMobile().mediaTrackComplete()
Tracciamento della fine della sessione
Identifica l’evento dal lettore video per lo scaricamento/la chiusura della riproduzione, in cui l’utente chiude il video e/o il video viene completato e scaricato, quindi effettua una chiamata trackSessionEnd
.
ADBMobile().mediaTrackSessionEnd()
trackSessionEnd
indica la fine di una sessione di tracciamento video. Se la sessione è stata vista correttamente fino al completamento, per cui l’utente ha guardato il contenuto fino alla fine, assicurati che trackComplete
venga chiamato prima di trackSessionEnd
. Dopo trackSessionEnd
, qualsiasi chiamata API track*
viene ignorata, tranne che la chiamata trackSessionStart
per una nuova sessione di tracciamento video.
Tracciare tutti gli scenari di pausa possibili
Identifica l’evento dal lettore video per la pausa video e la chiamata trackPause
:
ADBMobile().mediaTrackPause()
Scenari di pausa
Identifica uno scenario in cui il lettore video si interrompe e verifica che trackPause
sia chiamato correttamente. I seguenti scenari richiedono tutti una chiamata trackPause()
dall’app:
Identifica l’evento dal lettore per la riproduzione video e/o la ripresa del video dalla pausa ed effettua una chiamata trackPlay
.
ADBMobile().mediaTrackPlay()
Potrebbe trattarsi della stessa origine evento utilizzata nel passaggio 4. Quando la riproduzione del video riprende, assicurati che ogni chiamata API trackPause()
sia associata alla seguente chiamata API trackPlay()
.