Imagen en imagen

Esta página cubre la recopilación de datos del estado del reproductor Imagen en imagen. Vea Transmisiones afectadas por imagen en imagen, Recuentos de imagen en imagen y Duración total de imagen en imagen para las métricas de informes correspondientes.

El estado del reproductor de imagen en imagen se registra cuando el usuario entra y sale de la reproducción de imagen en imagen. Active un evento de inicio de estado cuando comience la imagen en imagen y un evento de fin de estado cuando termine. El servidor calcula tres métricas a partir de estos eventos: flujos afectados, recuento de entradas de estado y tiempo total en el estado.

Propiedad
Valor
Variables de datos de contexto
a.media.states.pictureinpicture.set, a.media.states.pictureinpicture.count, a.media.states.pictureinpicture.time
Campo de colección XDM
xdm.mediaCollection.statesStart[] y xdm.mediaCollection.statesEnd[] (entradas con name: "pictureInPicture")
rasgos de Audience Manager
c_contextdata.a.media.states.pictureinpicture.set, c_contextdata.a.media.states.pictureinpicture.count, c_contextdata.a.media.states.pictureinpicture.time
Requerido
No
Enviado con
Inicio de estado, fin de estado

Tipos de implementación recomendados

SDK web

Use sendEvent para enviar un evento media.statesUpdate con el estado agregado a statesStart:

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

Cuando el visor salga de imagen en imagen, envíe otro evento con el estado en statesEnd:

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

Use tracker.trackPlayerStateStart() y tracker.trackPlayerStateEnd() con la constante 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

Use tracker.trackPlayerStateStart() y tracker.trackPlayerStateEnd() con la constante MediaConstants.PlayerState.PICTURE_IN_PICTURE.

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

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

Use sendMediaEvent para enviar un evento media.statesUpdate con el estado agregado a statesStart:

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

Cuando el visor salga de imagen en imagen, envíe otro evento con el estado en statesEnd:

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

Llame al extremo statesUpdate con pictureInPicture en statesStart (o statesEnd cuando el visor salga de la PiP):

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

Tipos de implementación heredados (solo Analytics)

Media SDK JS 3.x

Use ADB.Media.createStateObject y la constante ADB.Media.PlayerState.PictureInPicture:

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

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

Utilice ADBMobile.media.createStateObject con la cadena "pictureInPicture" directamente, ya que Chromecast no tiene constantes PlayerState con nombre:

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);
Roku 2.x
El seguimiento del estado del reproductor no está disponible en SDK Roku 2.x. Para rastrear estados de reproductor, usa Roku Edge SDK.
API de recopilación de medios

Envíe una solicitud POST de stateStart cuando comience la imagen en imagen y una POST de stateEnd cuando termine:

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

Consulte la referencia de eventos de API de Media Collection para obtener la estructura de solicitudes completa.

recommendation-more-help
media-analytics-help