Diese Dokumentation behandelt das Tracking in der Version 2.x des SDK.
Wenn Sie Version 1.x des SDK implementieren möchten, können Sie hier das 1.x-Entwicklerhandbuch für Android herunterladen: SDKs herunterladen.
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.
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>);
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
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");
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);
}
Der zweite Wert ist der Name des benutzerdefinierten Medienmetadatenobjekts, den Sie in Schritt 2 erstellt haben.
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.
Wenn Sie keine benutzerdefinierten Medienmetadaten verwenden, senden Sie einfach ein leeres Objekt für das zweite Argument in trackSessionStart
.
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();
}
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();
}
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();
}
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.
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:
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();
}
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: