Questa documentazione tratta il tracciamento nella versione 2.x dell’SDK.
Se stai implementando una versione 1.x dell’SDK, puoi scaricare la Guida per gli sviluppatori 1.x per Android qui: Scaricare gli 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
.
Nome variabile | Descrizione | Obbligatorio |
---|---|---|
name |
Nome file multimediale | Sì |
mediaId |
Identificatore univoco del file multimediale | Sì |
length |
Lunghezza del file multimediale | Sì |
streamType |
Tipo di flusso (vedi Costanti StreamType sotto) | Sì |
mediaType |
Tipo di file multimediale (vedi Costanti MediaType sotto) | Sì |
Costanti StreamType
:
Nome costante | Descrizione |
---|---|
VOD |
Tipo di flusso per Video on Demand. |
LIVE |
Tipo di flusso per il contenuto Live. |
LINEAR |
Tipo di flusso per contenuti Linear. |
AOD |
Tipo di flusso per audio on-demand |
AUDIOBOOK |
Tipo di flusso per audiolibro |
PODCAST |
Tipo di flusso per Podcast |
Costanti MediaType
:
Nome costante | Descrizione |
---|---|
Audio |
Tipo di file multimediale per flussi Audio. |
Video |
Tipo di file multimediale per i flussi Video. |
MediaHeartbeat.createMediaObject(<MEDIA_NAME>,
<MEDIA_ID>, <MEDIA_LENGTH>, <STREAM_TYPE>, <MEDIA_TYPE>);
Allega metadati
Facoltativamente, allega oggetti metadati standard e/o personalizzati alla sessione di tracciamento tramite variabili di dati di contesto.
Metadati standard
Implementazione dei metadati standard su Android
Il collegamento dell’oggetto metadati standard all’oggetto multimediale è facoltativo.
Metadati personalizzati
Crea un dizionario per le variabili personalizzate e compilalo con i dati per questo file multimediale. Ad esempio:
HashMap<String, String> mediaMetadata =
new HashMap<String, String>();
mediaMetadata.put("isUserLoggedIn", "false");
mediaMetadata.put("tvStation", "Sample TV Station");
mediaMetadata.put("programmer", "Sample programmer");
Tracciare l’intenzione di avviare la riproduzione
Per iniziare a tracciare una sessione multimediale, chiama trackSessionStart
sull’istanza Media Heartbeat. Ad esempio:
public void onVideoLoad(Observable observable, Object data) {
_heartbeat.trackSessionStart(mediaInfo, mediaMetadata);
}
Il secondo valore è il nome dell’oggetto metadati multimediali personalizzati creato al passaggio 2.
trackSessionStart
tiene traccia delle intenzioni di riproduzione dell’utente, non dell’inizio della riproduzione. Questa API viene utilizzata per caricare i dati/metadati multimediali e per stimare la metrica QoS del tempo per l’avvio (la durata tra trackSessionStart
e trackPlay
).
Se non utilizzi metadati multimediali personalizzati, è sufficiente inviare un oggetto vuoto per il secondo argomento in trackSessionStart
.
Tracciare l’inizio effettivo della riproduzione
Identifica l’evento dal lettore multimediale relativo all’inizio della riproduzione, dove viene eseguito il rendering del primo fotogramma del contenuto multimediale sullo schermo, e chiama trackPlay
:
// Video is rendered on the screen) and call trackPlay.
public void onVideoPlay(Observable observable, Object data) {
_heartbeat.trackPlay();
}
Tracciare il completamento della riproduzione
Identifica l’evento dal lettore multimediale relativo al completamento della riproduzione multimediale, in cui l’utente ha guardato il contenuto fino alla fine, e chiama trackComplete
:
public void onVideoComplete(Observable observable, Object data) {
_heartbeat.trackComplete();
}
Tracciare la fine della sessione
Identifica l’evento dal lettore multimediale relativo allo scaricamento/chiusura della riproduzione multimediale, in cui l’utente chiude il contenuto multimediale e/o il contenuto viene completato e scaricato, e chiama trackSessionEnd
:
// Closes the media and/or the media completed and unloaded,
// and call trackSessionEnd().
public void onMainVideoUnload(Observable observable, Object data) {
_heartbeat.trackSessionEnd();
}
trackSessionEnd
contrassegna il termine di una sessione di tracciamento dei contenuti multimediali. Se la sessione è stata guardata correttamente fino al completamento, in cui l’utente ha guardato il contenuto fino alla fine, assicurati che trackComplete
venga chiamato prima di trackSessionEnd
. Qualsiasi altra chiamata API track*
viene ignorata dopo trackSessionEnd
, tranne trackSessionStart
per una nuova sessione di tracciamento dei contenuti multimediali.
Tracciare tutti i possibili scenari di pausa
Identifica l’evento dal lettore multimediale relativo alla sospensione del contenuto multimediale e chiama trackPause
:
public void onVideoPause(Observable observable, Object data) {
_heartbeat.trackPause();
}
Scenari di sospensione
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 relativo alla riproduzione e/o la ripresa di contenuti multimediali dalla sospensione e chiama trackPlay
.
// trackPlay()
public void onVideoPlay(Observable observable, Object data) {
_heartbeat.trackPlay();
}
Potrebbe trattarsi della stessa origine evento utilizzata nel passaggio 4. Assicurati che ogni chiamata API di trackPause()
sia associata alla successiva chiamata API di trackPlay()
quando la riproduzione multimediale riprende.
Per ulteriori informazioni sul tracciamento della riproduzione core, consulta: