Tracking von Core-Wiedergaben in Roku track-core-playback-on-roku
Diese Dokumentation behandelt das Tracking in der Version 2.x des SDK.
-
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: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 Variablenname Beschreibung erforderlich nameVideoname Ja mediaidEindeutige ID des Videos Ja lengthVideolänge Ja streamTypeStreamtyp (siehe StreamType-Konstanten unten) Ja mediaTypeMedientyp (siehe MediaType-Konstanten unten) Ja StreamType-Konstanten:table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 Konstantenname Beschreibung MEDIA_STREAM_TYPE_VODStreamtyp für Video on Demand MEDIA_STREAM_TYPE_LIVEStreamtyp für Live-Inhalt MEDIA_STREAM_TYPE_LINEARStreamtyp für Linear-Inhalt MEDIA_STREAM_TYPE_AODStreamtyp für Audio on Demand MEDIA_STREAM_TYPE_AUDIOBOOKStreamtyp für Hörbuch MEDIA_STREAM_TYPE_PODCASTStreamtyp für Podcast MediaType-Konstanten:table 0-row-2 1-row-2 2-row-2 Konstantenname Beschreibung MEDIA_STREAM_TYPE_AUDIOMedientyp für Audiostreams. MEDIA_STREAM_TYPE_VIDEOMedientyp für Videostreams. Erstellen Sie ein Medieninformationsobjekt für Videos mit VOD-Inhalt:
code language-none mediaInfo = adb_media_init_mediainfo( "<MEDIA_NAME>", "<MEDIA_ID>", 600, ADBMobile().MEDIA_STREAM_TYPE_VOD, ADBMobile().MEDIA_TYPE_VIDEO )oder
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_VIDEOErstellen Sie ein Medieninformationsobjekt für Videos mit AOD-Inhalt:
code language-none mediaInfo = adb_media_init_mediainfo( "<MEDIA_NAME>", "<MEDIA_ID>", 600, ADBMobile().MEDIA_STREAM_TYPE_AOD, ADBMobile().MEDIA_TYPE_AUDIO )oder
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 -
Metadaten anhängen
Optional können Standard- bzw. benutzerdefinierte Metadatenobjekte über Kontextdatenvariablen an die Tracking-Sitzung angehängt werden.
- Standard-Metadaten
Standard-Metadaten in Roku implementieren
<div class="extension note">
<div>NOTE</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:
code language-none mediaContextData = {} mediaContextData["cmk1"] = "cmv1" mediaContextData["cmk2"] = "cmv2"
-
Absicht, die Wiedergabe zu starten, verfolgen
Rufen Sie
trackSessionStartin der Media Heartbeat-Instanz auf, um eine Mediensitzung zu verfolgen:code language-none ADBMobile().mediaTrackSessionStart(mediaInfo,mediaContextData)note tip TIP Der zweite Wert ist der Name des benutzerdefinierten Video-Metadatenobjekts, den Sie in Schritt 2 erstellt haben. note important IMPORTANT trackSessionStartverfolgt 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 zwischentrackSessionStart() undtrackPlay) schätzen.note note NOTE Wenn Sie keine benutzerdefinierten Video-Metadaten verwenden, senden Sie einfach ein leeres Objekt für das data-Argument intrackSessionStart, 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:code language-none ADBMobile().mediaTrackPlay() -
Abspielkopfwert aktualisieren
Wenn sich der Abspielkopf des Mediums ändert, informieren Sie die SDK durch Aufruf der
mediaUpdatePlayhead-API.
Bei Video-on-demand (VOD) wird der Wert in Sekunden ab Beginn des Medienelements angegeben.
Wenn der Player beim Live-Streaming keine Informationen zur Inhaltsdauer bereitstellt, kann der Wert als Anzahl der Sekunden seit Mitternacht (UTC) des Tages angegeben werden.code language-none ADBMobile().mediaUpdatePlayhead(position)note note NOTE Beachten Sie beim Aufrufen der mediaUpdatePlayhead-API Folgendes:- Bei Verwendung von Fortschrittsmarken ist die Inhaltsdauer erforderlich und der Abspielkopf muss als Anzahl von Sekunden ab Beginn des Medienelements aktualisiert werden, beginnend mit 0.
- Bei Verwendung von Medien-SDKs müssen Sie die
mediaUpdatePlayhead-API mindestens einmal pro Sekunde aufrufen.
-
Ende 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:code language-none 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:code language-none ADBMobile().mediaTrackSessionEnd()note important IMPORTANT trackSessionEndmarkiert 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 SietrackCompletevortrackSessionEndaufrufen. Jeder anderetrack*-API-Aufruf nachtrackSessionEndwird ignoriert, mit Ausnahme vontrackSessionStartfür eine neue Video-Tracking-Sitzung. -
Alle möglichen Pausenszenarien verfolgen
Identifizieren Sie das Ereignis im Videoplayer für angehaltene Videos und rufen Sie
trackPauseauf:code language-none ADBMobile().mediaTrackPause()Pausenszenarien
Identifizieren Sie alle Szenarios, in denen der Videoplayer angehalten wird, und stellen Sie sicher, dass
trackPausekorrekt aufgerufen wird. In allen folgenden Szenarios muss Ihre ApptrackPause()() 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. Wenn der Benutzer beispielsweise einen Anruf erhält oder eine Popup-Nachricht einer anderen App angezeigt wird, die Anwendung die Sitzung jedoch aktiv halten soll, damit der Benutzer das Video fortsetzen kann.
-
Identifizieren Sie das Ereignis aus dem Player bei wiedergegebenen und/oder nach einer Pause wiederaufgenommenen Videos und rufen Sie
trackPlayauf:code language-none ADBMobile().mediaTrackPlay()note tip TIP Diese Ereignisquelle kann mit der in Schritt 4 verwendeten identisch sein. Stellen Sie sicher, dass jeder trackPause()-API-Aufruf mit einem nachfolgendentrackPlay()-API-Aufruf gepaart wird, wenn die Videowiedergabe wiederaufgenommen wird.
- Tracking-Szenarien: VOD-Wiedergabe ohne Anzeigen
- Der im Roku-SDK enthaltene Beispiel-Player zeigt ein komplettes Tracking-Beispiel.