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 sich hier die Entwicklerhandbücher 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.
MediaObject
-Referenz:
Variablenname | Beschreibung | erforderlich |
---|---|---|
name |
Videoname | Ja |
mediaid |
Eindeutige ID des Videos | Ja |
length |
Videolänge | Ja |
streamType |
Streamtyp (siehe StreamType-Konstanten unten) | Ja |
mediaType |
Medientyp (siehe MediaType-Konstanten unten) | Ja |
StreamType
-Konstanten:
Konstantenname | Beschreibung |
---|---|
MEDIA_STREAM_TYPE_VOD |
Streamtyp für Video on Demand |
MEDIA_STREAM_TYPE_LIVE |
Streamtyp für Live-Inhalt |
MEDIA_STREAM_TYPE_LINEAR |
Streamtyp für Linear-Inhalt |
MEDIA_STREAM_TYPE_AOD |
Streamtyp für Audio on Demand |
MEDIA_STREAM_TYPE_AUDIOBOOK |
Streamtyp für Hörbuch |
MEDIA_STREAM_TYPE_PODCAST |
Streamtyp für Podcast |
MediaType
-Konstanten:
Konstantenname | Beschreibung |
---|---|
MEDIA_STREAM_TYPE_AUDIO |
Medientyp für Audiostreams. |
MEDIA_STREAM_TYPE_VIDEO |
Medientyp für Videostreams. |
Erstellen Sie ein Medieninformationsobjekt für Videos mit VOD-Inhalt:
mediaInfo = adb_media_init_mediainfo(
"<MEDIA_NAME>",
"<MEDIA_ID>",
600,
ADBMobile().MEDIA_STREAM_TYPE_VOD,
ADBMobile().MEDIA_TYPE_VIDEO
)
oder
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
Erstellen Sie ein Medieninformationsobjekt für Videos mit AOD-Inhalt:
mediaInfo = adb_media_init_mediainfo(
"<MEDIA_NAME>",
"<MEDIA_ID>",
600,
ADBMobile().MEDIA_STREAM_TYPE_AOD,
ADBMobile().MEDIA_TYPE_AUDIO
)
oder
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
Metadaten anhängen
Optional können Standard- bzw. benutzerdefinierte Metadatenobjekte über Kontextdatenvariablen an die Tracking-Sitzung angehängt werden.
Standard-Metadaten in Roku implementieren
<div class="extension note">
<div>HINWEIS</div>
<div>
<p>Das Anhängen des Standard-Video-Metadatenobjekts an das Medienobjekt ist optional.</p>
</div>
</div>
Benutzerspezifische Metadaten
Erstellen Sie ein Variablenobjekt für die benutzerdefinierten Variablen und fügen Sie die Daten für dieses Video ein. Beispiel:
mediaContextData = {}
mediaContextData["cmk1"] = "cmv1"
mediaContextData["cmk2"] = "cmv2"
Absicht, die Wiedergabe zu starten, verfolgen
Rufen Sie trackSessionStart
in der Media Heartbeat-Instanz auf, um eine Mediensitzung zu verfolgen:
ADBMobile().mediaTrackSessionStart(mediaInfo,mediaContextData)
Der zweite Wert ist der Name des benutzerdefinierten Video-Metadatenobjekts, 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 Videodaten/-Metadaten laden und die QoS-Metrik zur Ladezeit (zeitlicher Abstand zwischen trackSessionStart
() und trackPlay
) schätzen.
Wenn Sie keine benutzerdefinierten Video-Metadaten verwenden, senden Sie einfach ein leeres Objekt für das data
-Argument in trackSessionStart
, wie in der Kommentarzeile im obigen iOS-Beispiel gezeigt.
Tatsächlichen Wiedergabebeginn verfolgen
Identifizieren Sie das Ereignis für den Anfang der Videowiedergabe im Videoplayer (wenn das erste Videobild auf dem Bildschirm angezeigt wird) und rufen Sie trackPlay
() auf:
ADBMobile().mediaTrackPlay()
Abspielkopfwert aktualisieren
Wenn sich die Abspielleiste der Medien ändert, benachrichtigen Sie das SDK, indem Sie die mediaUpdatePlayhead
API.
Bei Video-on-demand (VOD) wird der Wert in Sekunden ab Beginn des Medienelements angegeben.
Wenn der Player beim Livestreaming keine Informationen zur Inhaltsdauer bereitstellt, kann der Wert als Anzahl der Sekunden seit Mitternacht (UTC) des Tages angegeben werden.
ADBMobile().mediaUpdatePlayhead(position)
Beachten Sie Folgendes beim Aufrufen der mediaUpdatePlayhead
API:
mediaUpdatePlayhead
API mindestens einmal pro SekundeEnde der Wiedergabe verfolgen
Identifizieren Sie das Ereignis für den Abschluss der Videowiedergabe im Videoplayer (wenn der Inhalt bis zum Ende angesehen wurde) und rufen Sie trackComplete
() auf:
ADBMobile().mediaTrackComplete()
Ende der Sitzung verfolgen
Identifizieren Sie das Ereignis für das Entfernen/Schließen der Videowiedergabe im Videoplayer (wenn der Benutzer das Video schließt und/oder das Video abgeschlossen ist und aus dem Player entfernt wird) und rufen Sie trackSessionEnd
() auf:
ADBMobile().mediaTrackSessionEnd()
trackSessionEnd
markiert das Ende einer Video-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 Video-Tracking-Sitzung.
Alle möglichen Pausenszenarien verfolgen
Identifizieren Sie das Ereignis im Videoplayer für angehaltene Videos und rufen Sie trackPause
auf:
ADBMobile().mediaTrackPause()
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 Videos und rufen Sie trackPlay
auf:
ADBMobile().mediaTrackPlay()
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 Videowiedergabe wiederaufgenommen wird.