• /
  • EnglishEspañolFrançais日本語한국어Português
  • 로그인지금 시작하기

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
Agent média pour CAF v5.0.0

Nouvelles fonctionnalités

  • Export de sous-chemin/browser : Un point d’entrée @newrelic/video-caf/browser est désormais disponible, excluant le pipeline d’appareils connectés inutilisé de la dépendance @newrelic/video-core empaquetée, afin de conserver un bundle léger. Un shim de système de fichiers browser.js est également inclus pour les bundlers qui ne respectent pas le champ exports.
  • Export nommé : { CAFTracker } est désormais disponible en tant qu’export nommé aux côtés de l’export par défaut existant sur les points d’entrée racine et /browser.

Améliorations

  • @newrelic/video-core mis à jour en 5.1.0, qui inclut des fichiers de déclaration TypeScript, du débogage en amont, et des correctifs de dépendance.

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
Agent média pour HLS JS v2.0.0

Nouvelles fonctionnalités

  • Export de sous-chemin/browser : un point d’entrée @newrelic/video-hls/browser qui exclut le code Vega/appareil connecté inutilisé est désormais disponible, réduisant la taille du bundle pour les consommateurs sur navigateur. Un shim de système de fichiers browser.js est également inclus pour les bundlers qui ne respectent pas le champ exports.
  • Export nommé : { HLSTracker } est désormais disponible en tant qu’export nommé aux côtés de l’export par défaut existant sur les points d’entrée racine et /browser.

Améliorations

  • @newrelic/video-core mis à jour en 5.1.0, qui inclut des fichiers de déclaration TypeScript, du débogage en amont, et des correctifs de dépendance.

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
Agent média pour Video JS v5.0.0

  • Changement majeur : cette sortie ajoute une carte package.json#exports. Les importations profondes dans les chemins internes de ce package ne seront plus résolues : seules l’exportation racine (@newrelic/video-videojs-js), et le nouveau sous-chemin /browser sont des cibles d’importation valides. Mettez à jour toutes les importations profondes directes avant la mise à niveau.

Nouvelles fonctionnalités

  • Exportation du sous-chemin/browser : un point d’entrée @newrelic/video-videojs-js/browser est désormais disponible, qui exclut le code Vega/appareil connecté inutilisé, réduisant ainsi la taille du bundle pour les consommateurs sur navigateur.
  • notifyAdSkipped() (MediaTailor) : les applications hôtes dotées d’une interface utilisateur personnalisée de saut de publicité peuvent signaler un saut initié par l’utilisateur. Émet l’événement de fin de publicité ignorée lors d’une publicité ; sans effet sinon. Reflète l’API équivalente sur les trackers iOS/Android.
  • stopTracking() (MediaTailor) : démontage réversible qui arrête l’interrogation, et désinscrit les écouteurs sans supprimer le tracker, afin qu’il puisse être repris ultérieurement. Partage le nom de méthode utilisé par les trackers iOS/Android.
  • ÉvénementsAD_ERROR (MediaTailor) : les défaillances non terminales apparaissent désormais comme des événements AD_ERROR dans NRDB avec un errorCode sémantique (NO_FILL, ADS_TIMEOUT, TRACKING_FETCH_FAILED, TOKEN_EXPIRED, MISSING_AVAIL_START, MANIFEST_TRACKING_MISMATCH) au lieu d’apparaître uniquement dans le log de débogage.
  • AttributadPrimaryId (MediaTailor) : AD_START, AD_END, et AD_QUARTILE portent désormais adPrimaryId (le creativeId VAST, se rabattant sur availId:adId) afin que count(DISTINCT adPrimaryId) compte les véritables créations, et non les ID de publicité par disponibilité.

Améliorations

  • @newrelic/video-core mis à jour vers la version 5.1.0, qui inclut une conversion TypeScript, un débogage en amont, et des correctifs de dépendance.
  • Cadence d’interrogation configurable (MediaTailor) : config.ad.pollIntervalMs remplace l’intervalle d’interrogation en direct dérivé du manifeste (limité à 100–5000 ms) pour les clients limités par la batterie ou le processeur. Le comportement reste inchangé lorsque l’option est omise.
  • URL de suivi à partir du manifeste HLS (MediaTailor) : le tracker lit désormais le point de terminaison de suivi à partir d’un tag #EXT-X-DATERANGE CLASS="tracking" lorsqu’il est présent, ce qui élimine la nécessité de transmettre un trackingUrl explicite sur les CDN non-AWS. Une option explicite a toujours la priorité.
  • Réinitialisation du changement de source (MediaTailor) : l’échange de player.src() réinitialise désormais le tracker (annule les récupérations en cours, efface la planification publicitaire obsolète, et redérive le point de terminaison de suivi) au lieu de continuer à interroger le point de terminaison de la session précédente.

Débogage

  • MediaTailor : seule la première publicité d’un pod à publicités multiples était suivie. La boucle de pagination récupérait la même disponibilité sur chaque page ; le tracker récupère désormais la fenêtre complète en une seule requête sans jeton.
  • MediaTailor : le point de terminaison de suivi n’a pas pu être dérivé pour les URL de liste de lecture multimédia à session implicite, de sorte que la détection des publicités de niveau 1 ne s’est jamais exécutée pour ces sessions.
  • MediaTailor : config.ad.segmentPrefix a été ignoré silencieusement car il était mappé sur la mauvaise clé interne.
  • MediaTailor : une période DASH était classée comme publicité lorsqu’une seule de plusieurs représentations était résolue en une URL marquée comme publicité. La classification nécessite désormais que chaque représentation corresponde.
  • MediaTailor : AD_END n’était pas déclenché lorsqu’un pod se terminait avant sa limite de pause englobante, ce qui entraînait un sous-comptage des achèvements.
  • MediaTailor : les incohérences de nombre de pods entre le manifeste et les données de suivi corrompaient silencieusement la géométrie de la pause ; le tracker réconcilie désormais les comptes explicitement et émet MANIFEST_TRACKING_MISMATCH.
  • MediaTailor : les disponibilités avec un startTimeInSeconds manquant étaient abandonnées silencieusement, ce qui sous-comptait les impressions dans NRDB ; le tracker se rabat désormais sur le début de la première publicité et émet MISSING_AVAIL_START.
  • MediaTailor : la fenêtre glissante en direct fusionne à nouveau les pauses publicitaires dupliquées ou abandonnées lorsque les heures de début fluctuent ; les pauses sont désormais dédupliquées par identité stable (availId + availProgramDateTime).
  • MediaTailor : les disponibilités sans remplissage émettaient des événements AD_START/quartile fantômes ; elles n’émettent désormais que les limites de pause plus AD_ERROR(NO_FILL).
  • MediaTailor : les jetons de pagination de suivi expirés (HTTP 400) n’étaient pas gérés ; le jeton est désormais abandonné, et réessayé une fois avant d’émettre TOKEN_EXPIRED, et d’arrêter l’interrogation.
  • MediaTailor : les récupérations de manifeste ne revérifiaient pas isDisposed après chaque await, ce qui risquait une mutation d’état sur un tracker supprimé.
  • AD_RESUME était déclenché lors de la première lecture dans une publicité, et pas seulement après une véritable pause.
  • La suppression au milieu d’une publicité n’émettait pas les AD_END/AD_BREAK_END en attente, ce qui laissait la pause en suspens.
  • Les valeurs presentationTime de DASH EventStream étaient traitées comme des ticks bruts au lieu d’être converties en secondes, ce qui plaçait les publicités à des décalages erronés.
  • Les coupures publicitaires analysées par HLS #EXT-X-CUE-OUTn’initialisaient pas les indicateurs de quartile, ce qui entraînait le déclenchement des événements de quartile plus d’une fois par publicité.

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.