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 te permite comprender cómo se entregó el tráfico (la ubicación perimetral, las condiciones de la red, la selección de origen y cualquier error) durante la vida útil de una reproducción.
Esto se logra de la siguiente manera:
- Te permite proporcionar un ID de reproducción generado por el cliente a través de varias solicitudes.
- Integración en Cloud Logging a fin de realizar consultas en reproducciones y solicitudes individuales.
- Exportar y consultar con BigQuery o con la plataforma que elijas. El análisis de datos escalado te permite ver latencias agregadas y formatos entregados durante la vida útil de la reproducción.
Si se combina con el registro casi en tiempo real, el seguimiento de reproducción te permite correlacionar sesiones de reproducción y la calidad general de la experiencia por ubicación, transmisión o red de cliente y actuar ante problemas con rapidez.
Realizar un seguimiento de una reproducción
Si deseas asociar varias solicitudes a una sesión de reproducción orientada al usuario, debes generar un ID para esa reproducción en tu cliente. El seguimiento de reproducción funciona mediante la inclusión del valor de un encabezado o un parámetro de consulta en todos los registros de solicitudes asociados.
Los jugadores como Shaka, ExoPlayer y AVPlayer de Apple te permiten conectar eventos de inicio de reproducción y adjuntar parámetros de consulta. Los encabezados HTTP para las solicitudes realizadas a esa fuente de transmisión de medios.
Los parámetros de encabezado y consulta se definen de la siguiente manera:
- Un encabezado de la solicitud HTTP:
Playback-Trace-ID
- Un parámetro de consulta de URL:
playback-trace-id=
El encabezado HTTP se usa en lugar del parámetro de consulta, si ambos existen en una solicitud.
- El ID de reproducción no debe superar los 12 bytes (96 bits), no debe superar los 32 bytes (256 bits) y generarse a partir de una fuente aleatoria.
- Los ID de reproducción con menos de 12 bytes no se registran. Esto es para evitar colisiones.
- Los ID de reproducción de más de 32 bytes se truncan a sus primeros 32 bytes.
Los ID de reproducción deben ser únicos en el transcurso de un período de 7 días. Después del período de 7 días, cuando los ID de reproducción se vuelven a usar o entran en conflicto, cada conjunto de solicitudes se trata como una reproducción independiente.
Ejemplo: Genera un ID de reproducción en Shaka Player
A fin de beneficiarse del seguimiento de reproducción a gran escala, cada reproducción de video de un usuario debe incluir un ID de reproducción para todas las solicitudes realizadas para segmentos (y, de manera opcional, manifiestos). Este ID de reproducción debe ser el mismo para todas las solicitudes dentro de una reproducción a fin de acumular estadísticas agregadas.
En el ejemplo siguiente, se realizan estas acciones:
- Genera un ID de reproducción en la carga de video.
- Solo lo envía en recuperaciones de segmentos, no en manifiestos.
Si quieres usar un ID de reproducción existente, como el que proporciona tu sistema de administración de contenido y las estadísticas del cliente, propaga 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; } });