Trazas de reproducción

Con Media CDN, puedes usar la amplia infraestructura de registro de Google y la entrega de registros de baja latencia para asociar registros por solicitud a un solo evento de reproducción. Esto le ayuda a entender cómo se ha servido el tráfico (la ubicación perimetral, las condiciones de la red, la selección del origen y los errores) durante la reproducción.

Para ello, sigue estos pasos:

  • Le permite proporcionar un ID de reproducción generado por el cliente en varias solicitudes.
  • Integración con Cloud Logging para consultar reproducciones y solicitudes individuales.
  • Exportar y consultar con BigQuery o con la plataforma que elijas. El análisis de datos a gran escala te permite consultar las latencias agregadas y los formatos servidos durante la reproducción.

En combinación con el registro casi en tiempo real, el seguimiento de la reproducción te permite correlacionar las sesiones de reproducción y la calidad general de la experiencia por ubicación, emisión o red de cliente, así como tomar medidas rápidamente ante los problemas.

Trazar una reproducción

Para asociar varias solicitudes a una sesión de reproducción visible para el usuario, genera un ID para esa reproducción en tu cliente. El seguimiento de la reproducción funciona incluyendo el valor de un encabezado o un parámetro de consulta en todos los registros de solicitudes asociados.

Los reproductores como Shaka, ExoPlayer y AVPlayer de Apple te permiten conectar eventos de inicio de reproducción y añadir parámetros de consulta y encabezados HTTP a las solicitudes realizadas para esa fuente multimedia de streaming.

Los encabezados y los parámetros de consulta se definen de la siguiente manera:

  • Un encabezado de solicitud HTTP: Playback-Trace-ID
  • Un parámetro de consulta de URL: playback-trace-id=

Si ambos elementos están presentes en una solicitud, se usa el encabezado HTTP en lugar del parámetro de consulta.

  • El ID de reproducción debe tener una longitud de entre 12 bytes (96 bits) y 32 bytes (256 bits) y generarse a partir de una fuente aleatoria.
  • Los IDs de reproducción que tengan menos de 12 bytes no se registran. Esto es para evitar colisiones.
  • Los IDs de reproducción que tengan más de 32 bytes se truncarán a los primeros 32 bytes.

Los IDs de reproducción deben ser únicos durante un periodo de 7 días. Después del periodo de 7 días, cuando se reutilizan o coinciden los IDs de reproducción, cada conjunto de solicitudes se trata como una reproducción independiente.

Ejemplo: Generar un ID de reproducción en Shaka Player

Para beneficiarse del seguimiento de la reproducción a gran escala, cada reproducción de vídeo de usuario debe incluir un ID de reproducción en todas las solicitudes de segmentos (y, opcionalmente, de manifiestos). Este ID de reproducción debe ser el mismo en todas las solicitudes de una reproducción para agregar estadísticas.

En el siguiente ejemplo:

  • Genera un ID de reproducción al cargar el vídeo.
  • Solo se envía en las solicitudes de segmentos, no en los manifiestos.

Si quiere usar un ID de reproducción, como uno proporcionado por su sistema de gestión de contenido y las analíticas del lado del cliente, rellene playbackSessionId con ese valor.

let playbackSessionId;

player.addEventListener('loading', () => {
  const randomBuffer = crypto.getRandomValues(new Uint8Array(16));
  playbackSessionId = shaka.util.Uint8ArrayUtils.toBase64(randomBuffer);
});

player.getNetworkingEngine().registerRequestFilter((type, request) => {
  // Remove this "type" check if you want the header on every request.
  // Alternately, you can check the request.uris array to send the
  // header to some servers and not others.
  if (type == shaka.net.NetworkingEngine.RequestType.SEGMENT) {
    request.headers['CPN'] = playbackSessionId;
  }
});