Subtítulos opcionales

Esta página cubre la recopilación de datos del estado del reproductor Subtítulos. Vea Transmisiones afectadas por los subtítulos opcionales, Recuentos de subtítulos opcionales y Duración total de los subtítulos opcionales para las métricas de informes correspondientes.

El estado del reproductor de subtítulos opcionales se registra cuando el visor activa y desactiva los subtítulos. Active un evento de inicio de estado cuando los subtítulos estén habilitados y un evento de fin de estado cuando los subtítulos estén deshabilitados. 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.closedcaptioning.set, a.media.states.closedcaptioning.count, a.media.states.closedcaptioning.time
Campo de colección XDM
xdm.mediaCollection.statesStart[] y xdm.mediaCollection.statesEnd[] (entradas con name: "closedCaptioning")
rasgos de Audience Manager
c_contextdata.a.media.states.closedcaptioning.set, c_contextdata.a.media.states.closedcaptioning.count, c_contextdata.a.media.states.closedcaptioning.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: "closedCaptioning" }],
      sessionID: "{sid}",
      playhead: 60
    }
  }
});

Cuando el visor deshabilite los subtítulos, envíe otro evento con el estado statesEnd:

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

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

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

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

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

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

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

Cuando el visor deshabilite los subtítulos, envíe otro evento con el estado statesEnd:

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

Llame al extremo statesUpdate con closedCaptioning en statesStart (o statesEnd cuando el visor deshabilite los subtítulos):

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

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

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

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

code language-javascript
var stateObject = ADBMobile.media.createStateObject("closedCaptioning");
ADBMobile.media.trackEvent(ADBMobile.media.Event.StateStart, stateObject);
// When the viewer disables captions:
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 los subtítulos estén habilitados y una POST de stateEnd cuando estén deshabilitados:

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

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

recommendation-more-help
media-analytics-help