Panoramica di tracciamento

IMPORTANTE

Questa documentazione descrive il tracciamento nella versione 2.x dell’SDK. Se stai implementando una versione 1.x dell’SDK, puoi scaricare le guide per sviluppatori 1.x qui: Scaricare gli SDK.

Eventi del lettore

Il tracciamento della riproduzione di base include il caricamento del supporto, l’avvio del supporto, la pausa del supporto e il completamento del supporto. Sebbene non sia obbligatorio, il buffering di tracciamento e la ricerca sono anche componenti di base utilizzati per tenere traccia della riproduzione dei contenuti. Nell’API del lettore multimediale, identificate gli eventi del lettore che corrispondono alle chiamate di tracciamento di Media SDK e codificate i gestori di eventi per chiamare le API di tracciamento e per compilare le variabili obbligatorie e facoltative.

Al caricamento del supporto

  • Creare l’oggetto multimediale
  • Compilare i metadati
  • Invito trackSessionStart;Ad esempio: trackSessionStart(mediaObject, contextData)

All’avvio del supporto

  • Chiamata trackPlay

In pausa/ripresa

  • Chiamata trackPause
  • Chiamata trackPlay quando la riproduzione riprende

Supporto completo

  • Chiamata trackComplete

In caso di interruzione del supporto

  • Chiamata trackSessionEnd

Quando inizia lo scorrimento

  • Chiamata trackEvent(SeekStart)

Quando lo scorrimento termina

  • Chiamata trackEvent(SeekComplete)

Quando inizia il buffering

  • Chiamata trackEvent(BufferStart);

Quando il buffering termina

  • Chiamata trackEvent(BufferComplete);
SUGGERIMENTO

La posizione dell’indicatore di riproduzione è impostata nel codice di configurazione e configurazione. Per ulteriori informazioni su getCurrentPlayheadTime, consulta Panoramica: Linee guida generali sull’implementazione

Implementate

  1. Configurazione iniziale tracciamento: identificate quando l’utente attiva l’intenzione di riproduzione (l’utente fa clic su play e/o la riproduzione automatica è attivata) e create un’ MediaObject istanza utilizzando le informazioni sui supporti per il nome del contenuto, l’ID del contenuto, la lunghezza del contenuto e il tipo di flusso.

    MediaObjectriferimento:

    Nome della variabile Descrizione Obbligatorio
    name Nome contenuto
    mediaid Identificatore univoco contenuto
    length Lunghezza contenuto
    streamType Tipo di flusso
    mediaType Tipo di supporto (contenuto audio o video)

    StreamTypecostanti:

    Nome costante Descrizione
    VOD Tipo di flusso per Video on Demand.
    LIVE Tipo di flusso per il contenuto live.
    LINEAR Tipo di flusso per il contenuto lineare.
    AOD Tipo di flusso per l’audio su richiesta
    AUDIOBOOK Tipo di flusso per la rubrica audio
    PODCAST Tipo di flusso per Podcast

    MediaTypecostanti:

    Nome costante Descrizione
    Audio Tipo di supporto per i flussi audio.
    Video Tipo di supporto per i flussi video.

    Il formato generale per la creazione di MediaObject MediaHeartbeat.createMediaObject(<MEDIA_NAME>, <MEDIA_ID>, <MEDIA_LENGTH>, <STREAM_TYPE>, <MEDIA_TYPE>);

  2. Allega metadati - (Facoltativo): allega oggetti metadati standard e/o personalizzati alla sessione di tracciamento tramite variabili di dati contestuali.

    • Metadati standard -

      NOTA

      Il collegamento dell’oggetto metadati standard all’oggetto multimediale è facoltativo.

      Creare un’istanza di un oggetto metdata standard, compilare le variabili desiderate e impostare l’oggetto metadati sull’oggetto Media Heartbeat.

      Consultate l’elenco completo dei metadati qui: Parametri audio e video.

    • Metadati personalizzati - Create un oggetto variabile per le variabili personalizzate e inserite i dati per questo contenuto.

  3. Tenere traccia dell’intenzione di avviare la riproduzione - Per iniziare a tracciare una sessione, invocare trackSessionStart l’istanza di Media Heartbeat.

    IMPORTANTE

    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 e per stimare la metrica QoS time-to-start (la durata tra trackSessionStart e trackPlay).

    NOTA

    Se non utilizzate metadati personalizzati, inviate semplicemente un oggetto vuoto per l’ data argomento in trackSessionStart.

  4. Tracciare l’inizio effettivo della riproduzione: identificate l’evento dal lettore multimediale per l’inizio della riproduzione, dove viene rappresentato sullo schermo il primo fotogramma del contenuto e richiamate trackPlay.

  5. Tracciare il completamento della riproduzione: identificate l’evento dal lettore multimediale per il completamento della riproduzione, in cui l’utente ha guardato il contenuto fino alla fine e chiamate trackComplete.

  6. Tracciare la fine della sessione : identificate l’evento dal lettore multimediale per lo scaricamento/la chiusura della riproduzione, in cui l’utente chiude il contenuto e/o il contenuto è stato completato e scaricato e chiamate trackSessionEnd.

    IMPORTANTE

    trackSessionEnd segna la fine di una sessione di tracciamento. Se la sessione è stata guardata con successo e l’utente ha guardato il contenuto fino alla fine, accertatevi che trackComplete venga chiamato prima trackSessionEnd. Qualsiasi altra chiamata track* API viene ignorata dopo trackSessionEnd, fatta eccezione per trackSessionStart una nuova sessione di tracciamento.

  7. Tenere traccia di tutti i possibili scenari di pausa - Identificare l’evento dal lettore multimediale per la pausa e la chiamata trackPause.

    Pausa scenari - Identificate tutti gli scenari in cui il lettore si mette in pausa e accertatevi che trackPause venga chiamato correttamente. Tutti gli scenari seguenti richiedono che la chiamata dell’app trackPause():

    • L’utente interrompe esplicitamente la pausa nell’app.
    • Il lettore si mette nello stato Pausa.
    • (App mobili) - L’utente mette l’applicazione in background, ma si desidera che l’app tenga aperta la sessione.
    • (App mobili) - Si verifica qualsiasi tipo di interruzione del sistema che causa il background di un’applicazione. Ad esempio, l’utente riceve una chiamata, o si verifica un pop-up da un’altra applicazione, ma si desidera che l’applicazione mantenga in vita la sessione per dare all’utente la possibilità di riprendere il contenuto dal punto di interruzione.
  8. Identificare l’evento dal lettore per la riproduzione e/o per la ripresa dalla pausa e dalla chiamata trackPlay.

    SUGGERIMENTO

    Può trattarsi della stessa origine evento utilizzata nel passaggio 4. Assicurati che ogni chiamata trackPause() API sia associata a una chiamata trackPlay() API seguente quando la riproduzione riprende.

  9. Ascoltare gli eventi di ricerca della riproduzione dal lettore multimediale. Nella notifica dell’evento di avvio della ricerca, tenete traccia della ricerca mediante l’ SeekStart evento.

  10. Alla ricerca della notifica completa dal lettore multimediale, tenete traccia della fine della ricerca mediante l’ SeekComplete evento.

  11. Ascoltare gli eventi di buffering della riproduzione dal lettore multimediale e, durante la notifica dell’evento di avvio del buffer, tenere traccia del buffering utilizzando l’ BufferStart evento.

  12. Nella notifica completa del buffer dal lettore multimediale, tenere traccia della fine del buffering utilizzando l’ BufferComplete evento.

Vedi esempi di ogni passaggio negli argomenti specifici per la piattaforma riportati di seguito e guarda i lettori di esempio inclusi con i tuoi SDK.

Per un semplice esempio di tracciamento della riproduzione, consultate questo utilizzo dell’SDK JavaScript 2.x in un lettore HTML5:

/* Call on media start */ 
if (e.type == "play") { 
 
    // Check for start of media 
    if (!sessionStarted) { 
        /* Set media info */     
        /* MediaHeartbeat.createMediaObject(<MEDIA_NAME>,  
                                            <MEDIA_ID>,  
                                            <MEDIA_LENGTH>, 
                                            <MEDIA_STREAMTYPE>,
                                            <MEDIA_MEDIATYPE>);*/ 
        var mediaInfo = MediaHeartbeat.createMediaObject( 
          document.getElementsByTagName('video')[0].getAttribute("name"),  
          document.getElementsByTagName('video')[0].getAttribute("id"),  
          video.duration, 
          MediaHeartbeat.StreamType.VOD); 
 
        /* Set custom context data */ 
        var customVideoMetadata = { 
            isUserLoggedIn: "false", 
            tvStation: "Sample TV station", 
            programmer: "Sample programmer" 
        }; 
 
        /* Set standard video metadata */     
        var standardVideoMetadata = {}; 
        standardVideoMetadata[MediaHeartbeat.VideoMetadataKeys.EPISODE] = "Sample Episode"; 
        standardVideoMetadata[MediaHeartbeat.VideoMetadataKeys.SHOW] = "Sample Show"; 
        mediaInfo.setValue(MediaHeartbeat.MediaObjectKey.StandardVideoMetadata,  
                           standardVideoMetadata);     
 
        // Start Session 
        this.mediaHeartbeat.trackSessionStart(mediaInfo, customVideoMetadata);    
 
        // Track play 
        this.mediaHeartbeat.trackPlay();  
        sessionStarted = true;     
 
    } else { 
        // Track play for resuming playack    
        this.mediaHeartbeat.trackPlay();  
    } 
}; 
 
/* Call on video complete */ 
if (e.type == "ended") { 
    console.log("video ended"); 
    this.mediaHeartbeat.trackComplete(); 
    this.mediaHeartbeat.trackSessionEnd(); 
    sessionStarted = false;     
}; 
 
/* Call on pause */ 
if (e.type == "pause") { 
    this.mediaHeartbeat.trackPause(); 
}; 
 
/* Call on scrub start */ 
if (e.type == "seeking") { 
    this.mediaHeartbeat.trackEvent(MediaHeartbeat.Event.SeekStart); 
}; 
     
/* Call on scrub stop */ 
if (e.type == "seeked") { 
    this.mediaHeartbeat.trackEvent(MediaHeartbeat.Event.SeekComplete); 
}; 
 
/* Call on buffer start */ 
if (e.type == “buffering”) { 
    this.mediaHeartbeat.trackEvent(MediaHeartbeat.Event.BufferStart); 
}; 
 
/* Call on buffer complete */ 
if (e.type == “buffered”) { 
    this.mediaHeartbeat.trackEvent(MediaHeartbeat.Event.BufferComplete); 
};

Convalida

Per informazioni sulla convalida dell’implementazione, vedi Convalida.

In questa pagina

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
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