Tracciare la riproduzione di base in Roku track-core-playback-on-roku

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

IMPORTANT
Se stai implementando una versione 1.x di SDK, puoi scaricare le guide per sviluppatori 1.x qui: Scarica 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.

    Specifihe di MediaObject:

    table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 3-align-center 7-align-center 11-align-center 15-align-center 19-align-center 23-align-center
    Nome variabile Descrizione Obbligatorio
    name Nome del video
    mediaid Identificatore univoco del video
    length Lunghezza video
    streamType Tipo di flusso (vedi Costanti StreamType sotto)
    mediaType Tipo di file multimediale (vedi Costanti MediaType sotto)

    StreamTypeCostanti:

    table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2
    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

    MediaTypeCostanti:

    table 0-row-2 1-row-2 2-row-2
    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:

    code language-none
     mediaInfo = adb_media_init_mediainfo(
      "<MEDIA_NAME>",
      "<MEDIA_ID>",
      600,
      ADBMobile().MEDIA_STREAM_TYPE_VOD,
      ADBMobile().MEDIA_TYPE_VIDEO
    )
    

    oppure

    code language-none
    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:

    code language-none
    mediaInfo = adb_media_init_mediainfo(
     "<MEDIA_NAME>",
     "<MEDIA_ID>",
     600,
     ADBMobile().MEDIA_STREAM_TYPE_AOD,
     ADBMobile().MEDIA_TYPE_AUDIO
    )
    

    oppure

    code language-none
    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
    
  2. Allega metadati

    Facoltativamente, allega oggetti metadati standard e/o personalizzati alla sessione di tracciamento tramite variabili di dati di contesto.

    • Metadati standard

Implementare metadati standard in Roku

 <div class="extension note">
 <div>NOTE</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:

    code language-none
    mediaContextData = {}
    mediaContextData["cmk1"] = "cmv1"
    mediaContextData["cmk2"] = "cmv2"
    
  1. Tracciare l’intenzione di inizio riproduzione

    Per iniziare a tracciare una sessione multimediale, chiama trackSessionStart sull’istanza Media Heartbeat:

    code language-none
    ADBMobile().mediaTrackSessionStart(mediaInfo,mediaContextData)
    
    note tip
    TIP
    Il secondo valore corrisponde al nome dell’oggetto metadati video personalizzato creato nel passaggio 2.
    note important
    IMPORTANT
    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).
    note note
    NOTE
    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.
  2. 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.

    code language-none
    ADBMobile().mediaTrackPlay()
    
  3. 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.

    code language-none
    ADBMobile().mediaUpdatePlayhead(position)
    
    note note
    NOTE
    Quando richiami il mediaUpdatePlayhead API:
    • Quando si utilizzano i marcatori di avanzamento, è necessario specificare la durata del contenuto e la testina di riproduzione deve essere aggiornata come numero di secondi dall’inizio dell’elemento multimediale, a partire da 0.
    • Quando utilizzi gli SDK per contenuti multimediali, devi chiamare mediaUpdatePlayhead API almeno una volta al secondo.
  4. 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.

    code language-none
    ADBMobile().mediaTrackComplete()
    
  5. 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.

    code language-none
    ADBMobile().mediaTrackSessionEnd()
    
    note important
    IMPORTANT
    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.
  6. Tracciare tutti gli scenari di pausa possibili

    Identifica l’evento dal lettore video per la pausa video e la chiamata trackPause:

    code language-none
    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:

    • 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 si desidera invece che l’app mantenga aperta la sessione.
    • (App per dispositivi mobili): si verifica una qualsiasi interruzione del sistema causando l’esecuzione in background dell’applicazione. 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 il video dal punto in cui è stato interrotto.
  7. Identifica l’evento dal lettore per la riproduzione video e/o la ripresa del video dalla pausa ed effettua una chiamata trackPlay.

    code language-none
    ADBMobile().mediaTrackPlay()
    
    note tip
    TIP
    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().
recommendation-more-help
c8eee520-cef5-4f8c-a38a-d4952cfae4eb