Tracciare la riproduzione di base su Android

Questa documentazione tratta il tracciamento nella versione 2.x dell’SDK.

IMPORTANTE

Se stai implementando una versione 1.x dell’SDK, puoi scaricare la Guida per gli sviluppatori 1.x per Android qui: Scaricare gli SDK

  1. 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.

    API createMediaObject

    Nome variabile Descrizione Obbligatorio
    name Nome file multimediale
    mediaId Identificatore univoco del file multimediale
    length Lunghezza del file multimediale
    streamType Tipo di flusso (vedi Costanti StreamType sotto)
    mediaType Tipo di file multimediale (vedi Costanti MediaType sotto)

    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>);
    
  2. 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

      NOTA

      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");
      
  3. 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);
    }
    
    SUGGERIMENTO

    Il secondo valore è il nome dell’oggetto metadati multimediali personalizzati creato al passaggio 2.

    IMPORTANTE

    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).

    NOTA

    Se non utilizzi metadati multimediali personalizzati, è sufficiente inviare un oggetto vuoto per il secondo argomento in trackSessionStart.

  4. 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();
    }
    
  5. 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();
    }
    
  6. 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();
    }
    
    IMPORTANTE

    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.

  7. 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 verrà sospeso e assicurati che trackPause venga chiamato correttamente. Tutti gli scenari seguenti richiedono che l’app chiami trackPause():

    • L’utente mette esplicitamente in pausa l’app.
    • Il lettore si mette in pausa da solo.
    • (App per dispositivi mobili) - L’utente mette l’applicazione in background, ma desideri che l’app mantenga aperta la sessione.
    • (App per dispositivi mobili) - Può verificarsi qualsiasi tipo di interruzione di sistema che porta l’applicazione in background. Ad esempio, l’utente riceve una chiamata oppure la notifica da un’altra applicazione, ma desideri che l’applicazione mantenga aperta la sessione per dare all’utente l’opportunità di riprendere l’elemento multimediale dal punto in cui è stato interrotto.
  8. 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();
    }
    
    SUGGERIMENTO

    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:

In questa pagina