- Alteração incompatível: esta versão adiciona um mapa
package.json#exports. Importações profundas para caminhos internos deste pacote não serão mais resolvidas — apenas a exportação raiz (@newrelic/video-videojs-js) e o novo subcaminho/browsersão destinos de importação válidos. Atualize quaisquer importações profundas diretas antes de fazer a atualização.
Novo recurso
- Exportação de subcaminho
/browser: um ponto de entrada@newrelic/video-videojs-js/browseragora está disponível, o qual exclui o código não utilizado do Vega/dispositivo conectado, reduzindo o tamanho do pacote para os consumidores do navegador. notifyAdSkipped()(MediaTailor): aplicativos host com uma interface personalizada de pular anúncio podem relatar um pulo iniciado pelo usuário. Emite o evento de fim de anúncio pulado quando em um anúncio; caso contrário, nenhuma operação. Reflete a API equivalente nos rastreadores iOS/Android.stopTracking()(MediaTailor): desmontagem reversível que interrompe a sondagem e cancela o registro de ouvintes sem descartar o rastreador, para que possa ser retomada posteriormente. Compartilha o nome do método usado pelos rastreadores do iOS/Android.- Eventos
AD_ERROR(MediaTailor): falhas não terminais agora surgem como eventosAD_ERRORno NRDB com umerrorCodesemântico (NO_FILL,ADS_TIMEOUT,TRACKING_FETCH_FAILED,TOKEN_EXPIRED,MISSING_AVAIL_START,MANIFEST_TRACKING_MISMATCH) em vez de aparecerem apenas no log de depuração. - Atributo
adPrimaryId(MediaTailor):AD_START,AD_ENDeAD_QUARTILEagora carregamadPrimaryId(ocreativeIddo VAST, recorrendo aavailId:adId) para quecount(DISTINCT adPrimaryId)conte criativos verdadeiros, não IDs de anúncios por disponibilidade.
Melhorias
@newrelic/video-coreatualizado para 5.1.0, que inclui uma conversão para TypeScript, correções de bugs upstream e patches de dependência.- Cadência de sondagem configurável (MediaTailor):
config.ad.pollIntervalMssubstitui o intervalo de sondagem ao vivo derivado do manifesto (limitado a 100–5000 ms) para clientes com restrição de bateria ou CPU. O comportamento permanece inalterado quando a opção é omitida. - URL de rastreamento do manifesto HLS (MediaTailor): o rastreador agora lê o endpoint de rastreamento de uma tag
#EXT-X-DATERANGE CLASS="tracking"quando presente, removendo a necessidade de passar umtrackingUrlexplícito em CDNs não AWS. Uma opção explícita ainda tem precedência. - Redefinição de alteração de origem (MediaTailor): a troca de
player.src()agora redefine o rastreador — cancela as buscas em andamento, limpa a programação de anúncios obsoleta e deriva novamente o endpoint de rastreamento — em vez de continuar a consultar o endpoint da sessão anterior.
Correções de bugs
- MediaTailor: apenas o primeiro anúncio em um pod de vários anúncios foi rastreado. O loop de paginação buscava novamente a mesma disponibilidade em cada página; o rastreador agora busca a janela completa em uma única solicitação sem token.
- MediaTailor: o endpoint de rastreamento não pôde ser derivado para URLs de lista de reprodução de mídia de sessão implícita, portanto, a detecção de anúncios de nível 1 nunca foi executada para essas sessões.
- MediaTailor:
config.ad.segmentPrefixfoi ignorado silenciosamente porque foi mapeado para a chave interna incorreta. - MediaTailor: um período DASH foi classificado como um anúncio quando apenas uma de várias representações foi resolvida para um URL marcado como anúncio. A classificação agora exige que todas as representações correspondam.
- MediaTailor:
AD_ENDnão era acionado quando um pod terminava antes do limite de intervalo que o envolvia, fazendo com que as conclusões fossem subcontadas. - MediaTailor: incompatibilidades de contagem de pods entre o manifesto e os dados de rastreamento corrompiam silenciosamente a geometria do intervalo; o rastreador agora reconcilia as contagens explicitamente e emite
MANIFEST_TRACKING_MISMATCH. - MediaTailor: as disponibilidades com um
startTimeInSecondsausente eram descartadas silenciosamente, subcontando as impressões no NRDB; o rastreador agora recorre ao início do primeiro anúncio e emiteMISSING_AVAIL_START. - MediaTailor: a janela deslizante ao vivo mescla novamente os intervalos de anúncios duplicados ou descartados quando os horários de início oscilavam; os intervalos agora são desduplicados por identidade estável (
availId+availProgramDateTime). - MediaTailor: disponibilidades sem preenchimento emitiam eventos
AD_START/quartil fantasmas; agora, elas emitem apenas limites de intervalo maisAD_ERROR(NO_FILL). - MediaTailor: os tokens de paginação de rastreamento expirados (
HTTP 400) não eram tratados; o token agora é descartado e tentado novamente uma vez antes de emitirTOKEN_EXPIREDe interromper a sondagem. - MediaTailor: as buscas de manifesto não verificavam novamente
isDisposedapós cadaawait, arriscando a mutação de estado em um rastreador descartado. AD_RESUMEera acionado na primeira reprodução de um anúncio, não apenas após uma pausa genuína.- Descartar no meio do anúncio não emitia os
AD_END/AD_BREAK_ENDpendentes, deixando o intervalo solto. - Os valores de
presentationTimedo DASH EventStream eram tratados como ticks brutos em vez de serem convertidos em segundos, posicionando os anúncios em deslocamentos incorretos. - Os intervalos de anúncios HLS analisados por
#EXT-X-CUE-OUTnão inicializaram os sinalizadores de quartil, fazendo com que os eventos de quartil fossem acionados mais de uma vez por anúncio.