Nachverfolgen der grundlegenden Wiedergabe auf Android

Letzte Aktualisierung: 2023-11-08
  • Erstellt für:
  • User
    Admin
    Developer

Diese Dokumentation behandelt das Tracking in der Version 2.x des SDK.

WICHTIG

Wenn Sie Version 1.x des SDK implementieren möchten, können Sie hier das 1.x-Entwicklerhandbuch für Android herunterladen: SDKs herunterladen.

  1. Tracking-Ersteinrichtung

    Identifizieren Sie, wenn der Benutzer die Wiedergabe auslöst (Benutzer klickt auf „Abspielen“ und/oder die automatische Wiedergabe ist aktiviert), und erstellen Sie eine MediaObject-Instanz.

    createMediaObject API

    Variablenname Beschreibung erforderlich
    name Medienname Ja
    mediaId Eindeutige Medienkennung Ja
    length Medienlänge Ja
    streamType Streamtyp (siehe StreamType-Konstanten unten) Ja
    mediaType Medientyp (siehe MediaType-Konstanten unten) Ja

    StreamType-Konstanten:

    Konstantenname Beschreibung
    VOD Streamtyp für Video on Demand
    LIVE Streamtyp für Live-Inhalt
    LINEAR Streamtyp für Linear-Inhalt
    AOD Streamtyp für Audio on Demand
    AUDIOBOOK Streamtyp für Hörbuch
    PODCAST Streamtyp für Podcast

    MediaType-Konstanten:

    Konstantenname Beschreibung
    Audio Medientyp für Audiostreams.
    Video Medientyp für Videostreams.
    MediaHeartbeat.createMediaObject(<MEDIA_NAME>,
      <MEDIA_ID>, <MEDIA_LENGTH>, <STREAM_TYPE>, <MEDIA_TYPE>);
    
  2. Metadaten anhängen

    Optional können Standard- bzw. benutzerdefinierte Metadatenobjekte über Kontextdatenvariablen an die Tracking-Sitzung angehängt werden.

    • Standard-Metadaten

      Standard-Metadaten in Android implementieren

      HINWEIS

      Das Anhängen des Standard-Metadatenobjekts an das Medienobjekt ist optional.

    • Benutzerspezifische Metadaten

      Erstellen Sie ein Wörterbuch für die benutzerdefinierten Variablen und fügen Sie die Daten für dieses Medium ein. Beispiel:

      HashMap<String, String> mediaMetadata =
        new HashMap<String, String>();
      mediaMetadata.put("isUserLoggedIn", "false");
      mediaMetadata.put("tvStation", "Sample TV Station");
      mediaMetadata.put("programmer", "Sample programmer");
      
  3. Absicht, die Wiedergabe zu starten, verfolgen

    Rufen Sie trackSessionStart in der Media Heartbeat-Instanz auf, um eine Mediensitzung zu verfolgen. Beispiel:

    public void onVideoLoad(Observable observable, Object data) {
        _heartbeat.trackSessionStart(mediaInfo, mediaMetadata);
    }
    
    TIPP

    Der zweite Wert ist der Name des benutzerdefinierten Medienmetadatenobjekts, den Sie in Schritt 2 erstellt haben.

    WICHTIG

    trackSessionStart verfolgt die Absicht des Benutzers, die Wiedergabe zu starten, und nicht den Anfang der Wiedergabe. Mit dieser API können Sie die Mediendaten/-Metadaten laden und die QoS-Metrik zur Ladezeit (zeitlicher Abstand zwischen trackSessionStart () und trackPlay) schätzen.

    HINWEIS

    Wenn Sie keine benutzerdefinierten Medienmetadaten verwenden, senden Sie einfach ein leeres Objekt für das zweite Argument in trackSessionStart.

  4. Tatsächlichen Wiedergabebeginn verfolgen

    Identifizieren Sie das Ereignis für den Anfang der Medienwiedergabe im Medienplayer, sobald der erste Frame des Mediums auf dem Bildschirm angezeigt wird, und rufen Sie trackPlay auf:

    // Video is rendered on the screen) and call trackPlay.
    public void onVideoPlay(Observable observable, Object data) {
        _heartbeat.trackPlay();
    }
    
  5. Ende der Wiedergabe verfolgen

    Identifizieren Sie das Ereignis für den Abschluss der Medienwiedergabe im Medienplayer, wenn der Inhalt bis zum Ende angesehen wurde, und rufen Sie trackComplete auf:

    public void onVideoComplete(Observable observable, Object data) {
        _heartbeat.trackComplete();
    }
    
  6. Ende der Sitzung verfolgen

    Identifizieren Sie das Ereignis für das Entladen/Schließen der Medienwiedergabe im Medienplayer, wenn der Benutzer das Medium schließt bzw. das Medium abgeschlossen ist und entladen wird, und rufen Sie trackSessionEnd auf:

    // Closes the media and/or the media completed and unloaded,
    // and call trackSessionEnd().
    public void onMainVideoUnload(Observable observable, Object data) {
        _heartbeat.trackSessionEnd();
    }
    
    WICHTIG

    trackSessionEnd markiert das Ende einer Medien-Tracking-Sitzung. Wenn die Sitzung erfolgreich bis zum Ende wiedergegeben wurde und der Anwender den Inhalt bis zum Schluss angesehen hat, müssen Sie trackComplete vor trackSessionEnd aufrufen. Jeder andere track*-API-Aufruf nach trackSessionEnd wird ignoriert, mit Ausnahme von trackSessionStart für eine neue Medien-Tracking-Sitzung.

  7. Alle möglichen Pausenszenarien verfolgen

    Identifizieren Sie das Ereignis im Medienplayer für angehaltene Videos und rufen Sie trackPause auf:

    public void onVideoPause(Observable observable, Object data) {
        _heartbeat.trackPause();
    }
    

    Pausenszenarien

    Identifizieren Sie alle Szenarios, in denen der Videoplayer angehalten wird, und stellen Sie sicher, dass trackPause korrekt aufgerufen wird. In allen folgenden Szenarios muss Ihre App trackPause() () aufrufen:

    • Der Benutzer drückt in der App die Pausetaste.
    • Die Wiedergabe wird vom Player selbst pausiert.
    • (Mobile Apps) - Der Benutzer bewegt die App in den Hintergrund, aber Sie möchten, dass die Sitzung der App geöffnet bleibt.
    • (Mobile Apps) - Eine beliebige Systemunterbrechung tritt ein, die dazu führt, dass eine App im Hintergrund ausgeführt wird. Beispielsweise erhält der Benutzer einen Anruf oder ein Pop-up aus einer anderen App, aber Sie möchten, dass die App-Sitzung fortgeführt wird, damit der Benutzer die Medien ab dem Zeitpunkt der Unterbrechung wieder fortsetzen kann.
  8. Identifizieren Sie das Ereignis aus dem Player bei wiedergegebenen und/oder nach einer Pause wiederaufgenommenen Medien und rufen Sie trackPlay auf.

    // trackPlay()
    public void onVideoPlay(Observable observable, Object data) {
        _heartbeat.trackPlay();
    }
    
    TIPP

    Diese Ereignisquelle kann mit der in Schritt 4 verwendeten identisch sein. Stellen Sie sicher, dass jeder trackPause()API-Aufruf mit einem nachfolgenden trackPlay()-API-Aufruf gepaart wird, wenn die Medienwiedergabe fortgesetzt wird.

Im Folgenden finden Sie weitere Informationen zum Tracking der Core-Wiedergabe:

Auf dieser Seite