• /
  • EnglishEspañolFrançais日本語한국어Português
  • Inicia sesiónComenzar ahora

Streaming Video & Ads for Browser release notesRSS

September 30
Media agent for HLS JS v2.0.1

Bug fixes

  • Fixed getSrc() returning the browser's temporary blob: URL instead of the actual manifest URL once HLS playback started. The tracker now reads the URL from the underlying Hls.js instance, so the real manifest URL is reported consistently during playback.

September 24
Media agent for CAF v5.0.0

New features

  • /browser subpath export: A @newrelic/video-caf/browser entry point is now available that excludes the unused connected-device pipeline from the bundled @newrelic/video-core dependency, keeping the bundle lean. A browser.js filesystem shim is also included for bundlers that don't honor the exports field.
  • Named export: { CAFTracker } is now available as a named export alongside the existing default export on both the root and /browser entry points.

Improvements

  • @newrelic/video-core updated to 5.1.0, which includes TypeScript declaration files, upstream bug fixes, and dependency patches.

September 24
Agente de medios para CAF v5.0.0

Nueva característica

  • Exportación de subruta/browser: Ahora está disponible un punto de entrada @newrelic/video-caf/browser que excluye el pipeline de dispositivos conectados no utilizado de la dependencia @newrelic/video-core empaquetada, manteniendo el paquete ligero. También se incluye un shim de sistema de archivos browser.js para los empaquetadores que no respetan el campo exports.
  • Exportación con nombre: { CAFTracker } ahora está disponible como exportación con nombre junto a la exportación predeterminada existente tanto en el punto de entrada raíz como en el de /browser.

Mejoras

  • @newrelic/video-core actualizado a 5.1.0, que incluye archivos de declaración de TypeScript, correcciones de errores de origen y parches de dependencias.

September 22
Media agent for HLS JS v2.0.0

New features

  • /browser subpath export: A @newrelic/video-hls/browser entry point is now available that excludes unused Vega/connected-device code, reducing bundle size for browser consumers. A browser.js filesystem shim is also included for bundlers that don't honor the exports field.
  • Named export: { HLSTracker } is now available as a named export alongside the existing default export on both the root and /browser entry points.

Improvements

  • @newrelic/video-core updated to 5.1.0, which includes TypeScript declaration files, upstream bug fixes, and dependency patches.

September 22
Agente de medios para HLS JS v2.0.0

Nueva característica

  • Exportación de subruta/browser: ahora está disponible un punto de entrada @newrelic/video-hls/browser que excluye el código no utilizado de Vega/dispositivos conectados, lo que reduce el tamaño del paquete para los consumidores de navegadores. También se incluye un shim de sistema de archivos browser.js para los empaquetadores que no respetan el campo exports.
  • Exportación con nombre: { HLSTracker } ahora está disponible como exportación con nombre junto a la exportación predeterminada existente tanto en el punto de entrada raíz como en el de /browser.

Mejoras

  • @newrelic/video-core actualizado a 5.1.0, que incluye archivos de declaración de TypeScript, correcciones de errores de origen y parches de dependencias.

September 17
Media agent for Video JS v5.0.0

  • Breaking change: This release adds a package.json#exports map. Deep imports into internal paths of this package will no longer resolve — only the root export (@newrelic/video-videojs-js) and the new /browser subpath are valid import targets. Update any direct deep-imports before upgrading.

New features

  • /browser subpath export: A @newrelic/video-videojs-js/browser entry point is now available that excludes unused Vega/connected-device code, reducing bundle size for browser consumers.
  • notifyAdSkipped() (MediaTailor): Host apps with a custom skip-ad UI can report a user-initiated skip. Emits the skipped ad-end event when in an ad; no-op otherwise. Mirrors the equivalent API on the iOS/Android trackers.
  • stopTracking() (MediaTailor): Reversible teardown that stops polling and unregisters listeners without disposing the tracker, so it can be resumed later. Shares the method name used by the iOS/Android trackers.
  • AD_ERROR events (MediaTailor): Non-terminal failures now surface as AD_ERROR events in NRDB with a semantic errorCode (NO_FILL, ADS_TIMEOUT, TRACKING_FETCH_FAILED, TOKEN_EXPIRED, MISSING_AVAIL_START, MANIFEST_TRACKING_MISMATCH) instead of only appearing in the debug log.
  • adPrimaryId attribute (MediaTailor): AD_START, AD_END, and AD_QUARTILE now carry adPrimaryId (the VAST creativeId, falling back to availId:adId) so count(DISTINCT adPrimaryId) counts true creatives, not per-avail ad IDs.

Improvements

  • @newrelic/video-core updated to 5.1.0, which includes a TypeScript conversion, upstream bug fixes, and dependency patches.
  • Configurable poll cadence (MediaTailor): config.ad.pollIntervalMs overrides the manifest-derived live poll interval (clamped to 100–5000 ms) for battery- or CPU-constrained clients. Behavior is unchanged when the option is omitted.
  • Tracking URL from HLS manifest (MediaTailor): The tracker now reads the tracking endpoint from an #EXT-X-DATERANGE CLASS="tracking" tag when present, removing the need to pass an explicit trackingUrl on non-AWS CDNs. An explicit option still takes precedence.
  • Source-change reset (MediaTailor): Swapping player.src() now resets the tracker — cancels in-flight fetches, clears the stale ad schedule, and re-derives the tracking endpoint — instead of continuing to poll the previous session's endpoint.

Bug fixes

  • MediaTailor: Only the first ad in a multi-ad pod was tracked. The paging loop re-fetched the same avail on every page; the tracker now fetches the full window in a single tokenless request.
  • MediaTailor: The tracking endpoint could not be derived for implicit-session media-playlist URLs, so Tier-1 ad detection never ran for those sessions.
  • MediaTailor: config.ad.segmentPrefix was silently ignored because it was mapped to the wrong internal key.
  • MediaTailor: A DASH period was classified as an ad when only one of several representations resolved to an ad-marked URL. Classification now requires every representation to match.
  • MediaTailor: AD_END was not fired when a pod ended before its enclosing break boundary, causing completions to be undercounted.
  • MediaTailor: Pod-count mismatches between manifest and tracking data silently corrupted break geometry; the tracker now reconciles counts explicitly and emits MANIFEST_TRACKING_MISMATCH.
  • MediaTailor: Avails with a missing startTimeInSeconds were silently dropped, undercounting impressions in NRDB; the tracker now falls back to the first ad's start and emits MISSING_AVAIL_START.
  • MediaTailor: Live sliding-window re-merges duplicated or dropped ad breaks when start times jittered; breaks now deduplicate by stable identity (availId + availProgramDateTime).
  • MediaTailor: No-fill avails emitted phantom AD_START/quartile events; they now emit only break boundaries plus AD_ERROR(NO_FILL).
  • MediaTailor: Expired tracking pagination tokens (HTTP 400) were not handled; the token is now dropped and retried once before emitting TOKEN_EXPIRED and stopping polling.
  • MediaTailor: Manifest fetches did not re-check isDisposed after each await, risking state mutation on a disposed tracker.
  • AD_RESUME was fired on first play into an ad, not only after a genuine pause.
  • Disposing mid-ad did not emit the outstanding AD_END/AD_BREAK_END, leaving the break dangling.
  • DASH EventStream presentationTime values were treated as raw ticks instead of being converted to seconds, misplacing ads at wrong offsets.
  • HLS #EXT-X-CUE-OUT-parsed ad breaks did not initialize quartile flags, causing quartile events to fire more than once per ad.

September 17
Agente de medios para Video JS v5.0.0

  • Cambio importante: esta versión agrega un mapa package.json#exports. Las importaciones profundas a rutas internas de este paquete ya no se resolverán —solo la exportación raíz (@newrelic/video-videojs-js) y la nueva subruta /browser son objetivos de importación válidos. Actualice cualquier importación profunda directa antes de actualizar.

Nueva característica

  • Exportación de subruta de/browser: ahora hay disponible un punto de entrada de @newrelic/video-videojs-js/browser que excluye el código de Vega/dispositivo conectado no utilizado, lo que reduce el tamaño del paquete para los consumidores de navegadores.
  • notifyAdSkipped() (MediaTailor): las aplicaciones host con una UI personalizada para omitir anuncios pueden informar una omisión iniciada por el usuario. Emite el evento de fin de anuncio omitido cuando está en un anuncio; de lo contrario, no realiza ninguna operación. Refleja la API equivalente en los rastreadores de iOS/Android.
  • stopTracking() (MediaTailor): desmontaje reversible que detiene el sondeo y anula el registro de los agentes de escucha sin eliminar el rastreador, de modo que se puede reanudar más adelante. Comparte el nombre del método utilizado por los rastreadores de iOS/Android.
  • EventosAD_ERROR (MediaTailor): las fallas no terminales ahora aparecen como eventos AD_ERROR en NRDB con un errorCode semántico (NO_FILL, ADS_TIMEOUT, TRACKING_FETCH_FAILED, TOKEN_EXPIRED, MISSING_AVAIL_START, MANIFEST_TRACKING_MISMATCH) en lugar de aparecer solo en el log de depuración.
  • AtributoadPrimaryId (MediaTailor): AD_START, AD_END y AD_QUARTILE ahora llevan adPrimaryId (el creativeId de VAST, recurriendo a availId:adId) para que count(DISTINCT adPrimaryId) cuente las creatividades verdaderas, no los ID de anuncios por disponibilidad.

Mejoras

  • @newrelic/video-core actualizado a 5.1.0, que incluye una conversión a TypeScript, correcciones de errores ascendentes y parches de dependencias.
  • Cadencia de sondeo configurable (MediaTailor): config.ad.pollIntervalMs anula el intervalo de sondeo en vivo derivado del manifiesto (limitado a 100-5000 ms) para clientes con limitaciones de batería o CPU. El comportamiento no cambia cuando se omite la opción.
  • URL de seguimiento del manifiesto de HLS (MediaTailor): el rastreador ahora lee el extremo de seguimiento de una etiqueta #EXT-X-DATERANGE CLASS="tracking" cuando está presente, lo que elimina la necesidad de pasar un trackingUrl explícito en las CDN que no son de AWS. Una opción explícita aún tiene prioridad.
  • Restablecimiento de cambio de origen (MediaTailor): el intercambio de player.src() ahora restablece el rastreador —cancela las recuperaciones en curso, borra la programación de anuncios obsoleta y vuelve a derivar el extremo de seguimiento— en lugar de continuar sondeando el extremo de la sesión anterior.

Corrección de errores

  • MediaTailor: solo se rastreó el primer anuncio en un pod de varios anuncios. El bucle de paginación volvía a recuperar la misma disponibilidad en cada página; el rastreador ahora recupera la ventana completa en una sola solicitud sin token.
  • MediaTailor: el extremo de seguimiento no se pudo derivar para las URL de listas de reproducción de medios de sesión implícita, por lo que la detección de anuncios de nivel 1 nunca se ejecutó para esas sesiones.
  • MediaTailor: config.ad.segmentPrefix se ignoró silenciosamente porque estaba asignado a la clave interna incorrecta.
  • MediaTailor: un período de DASH se clasificó como un anuncio cuando solo una de varias representaciones se resolvió en una URL marcada como anuncio. La clasificación ahora requiere que todas las representaciones coincidan.
  • MediaTailor: AD_END no se activó cuando un pod finalizó antes del límite de la pausa que lo contiene, lo que provocó que las finalizaciones se contaran de menos.
  • MediaTailor: las discrepancias en el recuento de pods entre el manifiesto y los datos de seguimiento corrompieron silenciosamente la geometría de la pausa; el rastreador ahora concilia los recuentos explícitamente y emite MANIFEST_TRACKING_MISMATCH.
  • MediaTailor: las disponibilidades a las que les faltaba un startTimeInSeconds se descartaron silenciosamente, lo que subestimó las impresiones en NRDB; el rastreador ahora recurre al inicio del primer anuncio y emite MISSING_AVAIL_START.
  • MediaTailor: la ventana deslizante en vivo vuelve a fusionar las pausas publicitarias duplicadas o descartadas cuando las horas de inicio fluctuaban; las pausas ahora se deduplican mediante una identidad estable (availId + availProgramDateTime).
  • MediaTailor: las disponibilidades sin relleno emitían eventos fantasma de AD_START/cuartil; ahora emiten solo límites de pausa más AD_ERROR(NO_FILL).
  • MediaTailor: los tokens de paginación de seguimiento caducados (HTTP 400) no se manejaron; el token ahora se descarta y se vuelve a intentar una vez antes de emitir TOKEN_EXPIRED y detener el sondeo.
  • MediaTailor: las recuperaciones de manifiestos no volvieron a verificar isDisposed después de cada await, lo que corría el riesgo de mutación de estado en un rastreador desechado.
  • AD_RESUME se activó en la primera reproducción de un anuncio, no solo después de una pausa genuina.
  • La eliminación a mitad del anuncio no emitió el AD_END/AD_BREAK_END pendiente, lo que dejó la pausa colgando.
  • Los valores de presentationTime de EventStream de DASH se trataron como tics sin procesar en lugar de convertirse a segundos, lo que colocó los anuncios en desplazamientos incorrectos.
  • Las pausas publicitarias analizadas por #EXT-X-CUE-OUTde HLS no inicializaron los indicadores de cuartiles, lo que provocó que los eventos de cuartiles se activaran más de una vez por anuncio.

August 11
Media agent for Video JS v4.2.1

New features

  • Added optional automatic rendition/quality-level change tracking: integrates with the videojs-contrib-quality-levels plugin (when present) to report quality transitions along with the previous and new bitrates, with a graceful fallback when the plugin isn't loaded.

August 6
Media agent for Dash JS v5.0.1

Bug fixes

  • Updated the bundled @newrelic/video-core dependency to v5.0.1, adding Japan(JP) region collector support for Vega/Fire TV tracking.

August 6
Media agent for HTML5 v5.0.1

Bug fixes

  • Updated the bundled @newrelic/video-core dependency to v5.0.1, adding Japan (JP) region collector support for Vega/Fire TV tracking.

Copyright © 2026 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.