Tracking-Übersicht tracking-overview
Diese Dokumentation behandelt das Tracking in der Version 2.x des SDK.
Player-Ereignisse
Das Tracking der Core-Wiedergabe beinhaltet das Tracking des Ladens des Mediums, den Medienstart, die Medienpause und den Medienabschluss. Obwohl dies nicht obligatorisch ist, sind die Tracking-Pufferung und -Suche auch Kernkomponenten, die zum Tracking der Inhaltswiedergabe verwendet werden. Identifizieren Sie in Ihrer Medienplayer-API die Player-Ereignisse, die den Media SDK-Tracking-Aufrufen entsprechen, und codieren Sie Ihre Ereignis-Handler, um Tracking-APIs aufzurufen und erforderliche und optionale Variablen zu füllen.
Beim Laden der Medien
- Medienobjekt erstellen
- Metadaten befüllen
- Aufruf
trackSessionStart. Beispiel:trackSessionStart(mediaObject, contextData)
Beim Medienstart
- Aufruf
trackPlay
Bei Pause/Fortsetzung
- Aufruf
trackPause - Aufruf
trackPlay, wenn die Wiedergabe fortgesetzt wird
Bei Medienende
- Aufruf
trackComplete
Bei Medienabbruch
- Aufruf
trackSessionEnd
Wenn das Scrubbing beginnt
- Aufruf
trackEvent(SeekStart)
Wenn das Scrubbing endet
trackEvent(SeekComplete)
Änderungen verwerfen
Wenn die Pufferung beginnt
- Aufruf
trackEvent(BufferStart);
Wenn die Pufferung endet
- Aufruf
trackEvent(BufferComplete);
Implementierung implement
-
Tracking-Ersteinrichtung: Ermitteln Sie, wann der Anwender die Wiedergabe auslöst (wenn er die Play-Schaltfläche betätigt und/oder die automatische Wiedergabe aktiviert ist), und erstellen Sie eine
MediaObject-Instanz mithilfe der folgenden Medieninformationen: Inhaltsname, Inhalts-ID, Inhaltsdauer und Streamtyp.MediaObject-Referenz:table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 Variablenname Beschreibung erforderlich nameInhaltsname Ja mediaidEindeutige Kennung des Inhalts Ja lengthLänge des Inhalts Ja streamTypeStream-Typ Ja mediaTypeMedientyp (Audio- oder Videoinhalt) 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 VODStreamtyp für Video on Demand LIVEStreamtyp für Live-Inhalt LINEARStreamtyp für Linear-Inhalt AODStreamtyp für Audio on Demand AUDIOBOOKStreamtyp für Hörbuch PODCASTStreamtyp für Podcast MediaType-Konstanten:table 0-row-2 1-row-2 2-row-2 Konstantenname Beschreibung AudioMedientyp für Audiostreams. VideoMedientyp für Videostreams. Das allgemeine Format für die Erstellung von
MediaObjectistMediaHeartbeat.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 -
note note NOTE Das Anhängen des Standard-Metadatenobjekts an das Medienobjekt ist optional. Instanziieren Sie ein Standard-Metadatenobjekt, füllen Sie die gewünschten Variablen aus und setzen Sie das Metadatenobjekt auf das Media Heartbeat-Objekt.
Sehen Sie hier die umfassende Liste der verfügbaren-Metadaten: Audio- und Videoparameter.
-
Anwenderdefinierte Metadaten: Erstellen Sie ein Variablenobjekt für die anwenderspezifischen Variablen und fügen Sie die Daten für diesen Inhalt ein.
-
-
Verfolgen Sie die Absicht, die Wiedergabe zu starten: Um mit dem Tracking einer Sitzung zu beginnen, rufen Sie
trackSessionStartin der Heartbeat-Instanz auf.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 Daten/Metadaten laden und die QoS-Metrik zur Ladezeit (zeitlicher Abstand zwischentrackSessionStart() undtrackPlay) schätzen.note note NOTE Wenn Sie keine benutzerdefinierten Metadaten verwenden, senden Sie einfach ein leeres Objekt für das data-Argument intrackSessionStart. -
Tatsächlichen Wiedergabebeginn verfolgen: Identifizieren Sie das Ereignis für den Anfang der Wiedergabe im Medienplayer, sobald der erste Frame des Inhalts auf dem Bildschirm angezeigt wird, und rufen Sie
trackPlayauf. -
Tracking des Wiedergabeendes: Identifizieren Sie das Ereignis für den Abschluss der Wiedergabe im Medienplayer, wenn der Inhalt bis zum Ende angesehen wurde, und rufen Sie
trackCompleteauf. -
Tracking des Sitzungsendes: Identifizieren Sie das Ereignis beim Entladen/Schließen der Wiedergabe im Medienplayer, wenn der Anwender den Inhalt schließt und/oder der Inhalt abgeschlossen ist und entladen wird, und rufen Sie
trackSessionEndauf.note important IMPORTANT trackSessionEndmarkiert das Ende einer 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 Tracking-Sitzung. -
Tracking aller möglichen Pausenszenarien: Identifizieren Sie das Ereignis aus dem Medienplayer, das das Anhalten verursacht, und rufen Sie
trackPauseauf.Pausenszenarios: Identifizieren Sie alle Szenarios, in denen der Player angehalten wird, und stellen Sie sicher, dass
trackPauseordnungsgemäß 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. 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 den Inhalt ab dem Zeitpunkt der Unterbrechung wieder fortsetzen kann.
-
Identifizieren Sie das Ereignis aus dem Player bei Wiedergabe und/oder Fortsetzen nach Pause und rufen Sie
trackPlayauf.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 Wiedergabe fortgesetzt wird. -
Suchen Sie nach den Wiedergabesuchereignissen vom Medienplayer. Wenn Sie die Benachrichtigung zum Suchstartereignis erhalten, verfolgen Sie die Suche mit dem
SeekStart-Ereignis. -
Wenn Sie die Benachrichtigung zum Suchabschluss vom Medienplayer erhalten, zeichnen Sie das Suchende mit dem
SeekComplete-Ereignis auf. -
Suchen Sie nach den Wiedergabepufferereignissen aus dem Medienplayer. Wenn Sie die Benachrichtigung zum Pufferstartereignis erhalten, verfolgen Sie die Pufferung mit dem
BufferStart-Ereignis. -
Wenn Sie die Benachrichtigung zum Pufferabschluss vom Medienplayer erhalten, verfolgen Sie das Ende der Pufferung mit dem
BufferComplete-Ereignis.
In den folgenden plattformspezifischen Themen finden Sie Beispiele für jeden Schritt. Außerdem enthalten Ihre SDKs Beispiel-Player.
Ein einfaches Beispiel für das Wiedergabe-Tracking finden Sie in der Verwendung des JavaScript 2.x SDK in einem HTML5-Player:
/* 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);
};
Überprüfen validate
Informationen zur Validierung Ihrer alten Implementierung finden Sie unter Legacy-Validierung.