Com a RFC de multimédia, pode usar a extensa infraestrutura de registo da Google e a entrega de registos de baixa latência para associar registos por pedido a um único evento de reprodução. Isto ajuda a compreender como o tráfego foi servido (a localização na periferia, as condições de rede, a seleção de origem e quaisquer erros) ao longo da duração de uma reprodução.
Isto é conseguido da seguinte forma:
- Permitir-lhe fornecer um ID de reprodução gerado pelo cliente em vários pedidos.
- Integração com o Cloud Logging para consultar reproduções e pedidos individuais.
- Exportar e consultar com o BigQuery, ou com a plataforma da sua preferência. A análise de dados dimensionados permite-lhe analisar as latências agregadas e os formatos publicados ao longo do histórico de reprodução.
Em combinação com o registo quase em tempo real, a monitorização da reprodução permite-lhe correlacionar as sessões de reprodução e a qualidade geral da experiência por localização, stream ou rede do cliente, e agir rapidamente em caso de problemas.
Rastreie uma reprodução
Para associar vários pedidos a uma sessão de reprodução visível para o utilizador, gera um ID para essa reprodução no seu cliente. O rastreio da reprodução funciona incluindo o valor de um cabeçalho ou de um parâmetro de consulta em todos os registos de pedidos associados.
Os leitores como o Shaka, ExoPlayer e o AVPlayer da Apple permitem-lhe associar eventos de início de reprodução e anexar parâmetros de consulta e cabeçalhos HTTP a pedidos feitos para essa origem de multimédia de streaming.
Os parâmetros de cabeçalho e de consulta são definidos da seguinte forma:
- Um cabeçalho de pedido HTTP:
Playback-Trace-ID
- Um parâmetro de consulta de URL:
playback-trace-id=
O cabeçalho HTTP é usado em vez do parâmetro de consulta, se ambos existirem num pedido.
- O ID de reprodução não pode ter menos de 12 bytes (96 bits) nem mais de 32 bytes (256 bits) e tem de ser gerado a partir de uma origem aleatória.
- Os IDs de reprodução com menos de 12 bytes não são registados. Isto destina-se a evitar colisões.
- Os IDs de reprodução com mais de 32 bytes são truncados aos primeiros 32 bytes.
Os IDs de reprodução devem ser exclusivos durante um período de 7 dias. Após o período de 7 dias, quando os IDs de reprodução são reutilizados ou entram em conflito, cada conjunto de pedidos é tratado como uma reprodução separada.
Exemplo: gere um ID de reprodução no Shaka Player
Para tirar partido da monitorização da reprodução em grande escala, cada reprodução de vídeo do utilizador tem de incluir um ID de reprodução para todos os pedidos feitos para segmentos (e, opcionalmente, manifestos). Este ID de reprodução tem de ser o mesmo para todos os pedidos numa reprodução para agregar estatísticas.
O exemplo seguinte:
- Gera um ID de reprodução no carregamento do vídeo.
- Só o envia em obtenções de segmentos e não em manifestos.
Se quiser usar um ID de reprodução existente, como um fornecido pelo seu sistema de gestão de conteúdo e estatísticas do lado do cliente, preencha playbackSessionId
com esse 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; } });