Bild im Bild

Auf dieser Seite wird die Datenerfassung für den Player Status „Bild in Bild​behandelt. Siehe Von Bild in Bild betroffene Streams, Anzahl der Bilder in Bild und Gesamtdauer des Bildes für die entsprechenden Berichtsmetriken.

Der Status des Bild-in-Bild-Players verfolgt, wann der Viewer die Bild-in-Bild-Wiedergabe betritt und verlässt. Löst ein Status-Start-Ereignis aus, wenn ein Bild-in-Bild beginnt, und ein Status-End-Ereignis, wenn es endet. Das Backend berechnet drei Metriken aus diesen Ereignissen: betroffene Streams, Anzahl der Statuseinträge und Gesamtzeit im Status.

Eigenschaft
Wert
Kontextdatenvariablen
a.media.states.pictureinpicture.set, a.media.states.pictureinpicture.count, a.media.states.pictureinpicture.time
XDM-Sammlungsfeld
xdm.mediaCollection.statesStart[] und xdm.mediaCollection.statesEnd[] (Einträge mit name: "pictureInPicture")
Audience Manager-Eigenschaften
c_contextdata.a.media.states.pictureinpicture.set, c_contextdata.a.media.states.pictureinpicture.count, c_contextdata.a.media.states.pictureinpicture.time
Erforderlich
Nein
Gesendet mit
State start, state end

Empfohlene Implementierungsarten

Web SDK

Verwenden Sie sendEvent , um ein media.statesUpdate-Ereignis mit dem Status zu senden, der statesStart hinzugefügt wurde:

code language-javascript
alloy("sendEvent", {
  xdm: {
    eventType: "media.statesUpdate",
    mediaCollection: {
      statesStart: [{ name: "pictureInPicture" }],
      sessionID: "{sid}",
      playhead: 60
    }
  }
});

Wenn der Viewer den Modus „Bild-in-Bild“ verlässt, senden Sie ein weiteres Ereignis mit dem Status in statesEnd:

code language-javascript
alloy("sendEvent", {
  xdm: {
    eventType: "media.statesUpdate",
    mediaCollection: {
      statesEnd: [{ name: "pictureInPicture" }],
      sessionID: "{sid}",
      playhead: 90
    }
  }
});
iOS

Verwenden Sie tracker.trackPlayerStateStart() und tracker.trackPlayerStateEnd() mit der MediaConstants.PlayerState.PICTURE_IN_PICTURE.

code language-swift
let stateObject = Media.createStateObjectWith(stateName: MediaConstants.PlayerState.PICTURE_IN_PICTURE)

tracker.trackPlayerStateStart(info: stateObject)
tracker.trackPlayerStateEnd(info: stateObject)
Android

Verwenden Sie tracker.trackPlayerStateStart() und tracker.trackPlayerStateEnd() mit der MediaConstants.PlayerState.PICTURE_IN_PICTURE.

code language-kotlin
val stateObject = Media.createStateObject(MediaConstants.PlayerState.PICTURE_IN_PICTURE)

tracker.trackPlayerStateStart(stateObject)
tracker.trackPlayerStateEnd(stateObject)
Roku

Verwenden Sie sendMediaEvent , um ein media.statesUpdate-Ereignis mit dem Status zu senden, der statesStart hinzugefügt wurde:

code language-brightscript
m.aepSdk.sendMediaEvent({
    "xdm": {
        "eventType": "media.statesUpdate",
        "mediaCollection": {
            "statesStart": [{ "name": "pictureInPicture" }],
            "playhead": 60
        }
    }
})

Wenn der Viewer den Modus „Bild-in-Bild“ verlässt, senden Sie ein weiteres Ereignis mit dem Status in statesEnd:

code language-brightscript
m.aepSdk.sendMediaEvent({
    "xdm": {
        "eventType": "media.statesUpdate",
        "mediaCollection": {
            "statesEnd": [{ "name": "pictureInPicture" }],
            "playhead": 90
        }
    }
})
Media Edge-API

Rufen Sie den statesUpdate-Endpunkt mit pictureInPicture in statesStart auf (oder statesEnd, wenn der Viewer PiP beendet):

code language-json
{
  "events": [{
    "xdm": {
      "eventType": "media.statesUpdate",
      "mediaCollection": {
        "statesStart": [{ "name": "pictureInPicture" }],
        "sessionID": "{sid}",
        "playhead": 60
      }
    }
  }]
}

Legacy-Implementierungstypen (nur Analytics)

Media SDK JS 3.x

Verwenden Sie ADB.Media.createStateObject und die ADB.Media.PlayerState.PictureInPicture Konstante:

code language-javascript
var stateObject = ADB.Media.createStateObject(ADB.Media.PlayerState.PictureInPicture);

tracker.trackPlayerStateStart(stateObject);
tracker.trackPlayerStateEnd(stateObject);
Chromecast

Verwenden Sie ADBMobile.media.createStateObject direkt mit der "pictureInPicture" Zeichenfolge, da Chromecast keine benannten PlayerState enthält:

code language-javascript
var stateObject = ADBMobile.media.createStateObject("pictureInPicture");
ADBMobile.media.trackEvent(ADBMobile.media.Event.StateStart, stateObject);
// When the viewer exits picture-in-picture:
ADBMobile.media.trackEvent(ADBMobile.media.Event.StateEnd, stateObject);
Media Collection API

Senden Sie eine stateStart POST-Anfrage, wenn das Bild-in-Bild beginnt, und einen stateEnd POST, wenn es endet:

code language-json
{
  "playerTime": { "playhead": 60, "ts": 1699523820000 },
  "eventType": "stateStart",
  "params": {
    "media.state.name": "pictureInPicture"
  }
}

Die vollständige Anfragestruktur ​ Sie in der ​ zur Mediensammlungs-API-Ereignisreferenz .

recommendation-more-help
media-analytics-help