En el centro

Esta página cubre la recopilación de datos para el estado del reproductor Enfocado. Ver Transmisiones afectadas por enfoque, Recuentos de enfoque y Duración total del enfoque para las métricas de informes correspondientes.

El estado del reproductor enfocado rastrea cuándo el reproductor recibe la atención del usuario. Activa un evento de inicio de estado cuando el reproductor recibe Focus (normalmente cuando la pestaña o ventana del reproductor se activa) y un evento de fin de estado cuando el reproductor pierde Focus. 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.infocus.set, a.media.states.infocus.count, a.media.states.infocus.time
Campo de colección XDM
xdm.mediaCollection.statesStart[] y xdm.mediaCollection.statesEnd[] (entradas con name: "inFocus")
rasgos de Audience Manager
c_contextdata.a.media.states.infocus.set, c_contextdata.a.media.states.infocus.count, c_contextdata.a.media.states.infocus.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: "inFocus" }],
      sessionID: "{sid}",
      playhead: 60
    }
  }
});

Cuando el reproductor pierde el enfoque, envíe otro evento con el estado statesEnd:

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

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

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

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

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

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

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

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": "inFocus" }],
            "playhead": 60
        }
    }
})

Cuando el reproductor pierde el enfoque, envíe otro evento con el estado statesEnd:

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

Llamar al extremo statesUpdate con inFocus en statesStart (o statesEnd cuando el reproductor pierde el enfoque):

code language-json
{
  "events": [{
    "xdm": {
      "eventType": "media.statesUpdate",
      "mediaCollection": {
        "statesStart": [{ "name": "inFocus" }],
        "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.InFocus:

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

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

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

code language-javascript
var stateObject = ADBMobile.media.createStateObject("inFocus");
ADBMobile.media.trackEvent(ADBMobile.media.Event.StateStart, stateObject);
// When the player loses focus:
ADBMobile.media.trackEvent(ADBMobile.media.Event.StateEnd, stateObject);
API de recopilación de medios

Envíe una solicitud POST de stateStart cuando el reproductor recibe Focus y una POST de stateEnd cuando pierde Focus:

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

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

recommendation-more-help
media-analytics-help