• /
  • 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
CAF v5.0.0용 미디어 에이전트

새로운 기능

  • /browser 하위 경로 내보내기: 번들로 제공되는 @newrelic/video-core 종속성에서 사용되지 않는 연결된 디바이스 파이프라인을 제외하여 번들을 가볍게 유지하는 @newrelic/video-caf/browser 진입점을 이제 사용할 수 있습니다. exports 필드를 인식하지 않는 번들러를 위해 browser.js 파일 시스템 shim도 포함되어 있습니다.
  • 네임드 익스포트: 이제 루트 및 /browser 엔트리 포인트 모두에서 기존 기본 내보내기와 함께 { CAFTracker }을(를) 네임드 익스포트로 사용할 수 있습니다.

개량

  • @newrelic/video-core이(가) 5.1.0으로 업데이트되었으며, 여기에는 TypeScript 선언 파일, 업스트림 버그 수정 및 종속성 패치가 포함됩니다.

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
HLS JS v2.0.0용 미디어 에이전트

새로운 기능

  • /browser 하위 경로 내보내기: 사용되지 않는 Vega/연결된 디바이스 코드를 제외하여 브라우저 소비자를 위한 번들 크기를 줄여주는 @newrelic/video-hls/browser 진입점을 이제 사용할 수 있습니다. exports 필드를 인식하지 않는 번들러를 위해 browser.js 파일 시스템 shim도 포함되어 있습니다.
  • 네임드 익스포트: 이제 루트 및 /browser 엔트리 포인트 모두에서 기존 기본 내보내기와 함께 { HLSTracker }을(를) 네임드 익스포트로 사용할 수 있습니다.

개량

  • @newrelic/video-core이(가) 5.1.0으로 업데이트되었으며, 여기에는 TypeScript 선언 파일, 업스트림 버그 수정 및 종속성 패치가 포함됩니다.

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
Video JS v5.0.0용 미디어 에이전트

  • 호환성을 깨는 변경 사항: 이번 릴리스에는 package.json#exports 맵이 추가되었습니다. 이 패키지의 내부 경로에 대한 딥 임포트는 더 이상 리졸브되지 않습니다 — 루트 익스포트(@newrelic/video-videojs-js) 및 새로운 /browser 하위 경로만 유효한 임포트 타겟입니다. 업그레이드하기 전에 직접적인 딥 임포트를 모두 업데이트하십시오.

새로운 기능

  • /browser 하위 경로 내보내기: 이제 사용되지 않는 Vega/connected-device 코드를 제외하는 @newrelic/video-videojs-js/browser 진입점을 사용할 수 있으며, 이를 통해 브라우저 소비자를 위한 번들 크기를 줄일 수 있습니다.
  • notifyAdSkipped() (MediaTailor): 사용자 지정 광고 건너뛰기 UI가 있는 호스트 앱은 사용자가 시작한 건너뛰기를 보고할 수 있습니다. 광고 중일 때 건너뛴 광고 종료 이벤트를 발생시키며, 그렇지 않은 경우 아무 작업도 수행하지 않습니다. iOS/안드로이드 트래커의 동일한 API를 미러링합니다.
  • stopTracking() (MediaTailor): 트래커를 폐기하지 않고 폴링을 중지하고 리스너를 등록 해제하여 나중에 다시 시작할 수 있는 가역적 해제입니다. iOS/안드로이드 트래커에서 사용하는 메서드 이름을 공유합니다.
  • AD_ERROR 이벤트(MediaTailor): 비종결 실패는 이제 디버그 로그에만 나타나는 대신 의미론적 errorCode (NO_FILL, ADS_TIMEOUT, TRACKING_FETCH_FAILED, TOKEN_EXPIRED, MISSING_AVAIL_START, MANIFEST_TRACKING_MISMATCH)와 함께 NRDB에서 AD_ERROR 이벤트로 나타납니다.
  • adPrimaryId 속성(MediaTailor): AD_START, AD_END 및 AD_QUARTILE은(는) 이제 adPrimaryId (VAST creativeId, availId:adId으로 대체됨)를 전달하므로 count(DISTINCT adPrimaryId)은(는) avail당 광고 ID가 아닌 실제 크리에이티브를 계산합니다.

개량

  • @newrelic/video-core이(가) 5.1.0으로 업데이트되었으며, 여기에는 TypeScript 변환, 업스트림 버그 수정 및 종속성 패치가 포함되어 있습니다.
  • 구성 가능한 폴링 주기(MediaTailor): 배터리 또는 CPU가 제한된 클라이언트의 경우 config.ad.pollIntervalMs이(가) 매니페스트에서 파생된 라이브 폴링 간격(100~5000ms로 제한됨)을 재정의합니다. 옵션을 생략하면 동작은 변경되지 않습니다.
  • HLS 매니페스트(MediaTailor)의 추적 URL: 이제 트래커는 #EXT-X-DATERANGE CLASS="tracking" 태그가 있는 경우 해당 태그에서 추적 엔드포인트를 읽어오므로, 비 AWS CDN에서 명시적인 trackingUrl을(를) 전달할 필요가 없습니다. 명시적인 옵션이 여전히 우선합니다.
  • 소스 변경 재설정(MediaTailor): 이제 player.src()을(를) 교체하면 이전 세션의 엔드포인트를 계속 폴링하는 대신 트래커를 재설정 ― 진행 중인 가져오기를 취소하고, 오래된 광고 일정을 지우며, 추적 엔드포인트를 다시 도출 ― 합니다.

버그 수정

  • MediaTailor: 다중 광고 파드에서 첫 번째 광고만 추적되었습니다. 페이징 루프는 모든 페이지에서 동일한 어베일을 다시 가져왔으며, 이제 트래커는 토큰 없는 단일 요청으로 전체 창을 가져옵니다.
  • MediaTailor: 암시적 세션 미디어 재생 목록 URL에 대한 추적 엔드포인트를 도출할 수 없었으므로, 해당 세션에 대해 티어-1 광고 감지가 실행되지 않았습니다.
  • MediaTailor: config.ad.segmentPrefix이(가) 잘못된 내부 키에 매핑되어 조용히 무시되었습니다.
  • MediaTailor: 여러 표현 중 하나만 광고로 표시된 URL로 확인된 경우 DASH 기간이 광고로 분류되었습니다. 이제 분류하려면 모든 표현이 일치해야 합니다.
  • MediaTailor: 파드가 포함된 브레이크 경계 이전에 종료될 때 AD_END이(가) 발생하지 않아 완료 횟수가 실제보다 적게 계산되었습니다.
  • MediaTailor: 매니페스트와 추적 데이터 간의 파드 수 불일치로 인해 브레이크 지오메트리가 암묵적으로 손상되었습니다, 이제 트래커는 명시적으로 수를 조정하고 MANIFEST_TRACKING_MISMATCH을(를) 내보냅니다.
  • MediaTailor: startTimeInSeconds이(가) 누락된 Avail은 조용히 삭제되어 NRDB에서 노출 수가 과소 계산되었으며, 이제 트래커는 첫 번째 광고의 시작으로 폴백하고 MISSING_AVAIL_START을(를) 내보냅니다.
  • MediaTailor: 시작 시간에 지터가 발생할 때 라이브 슬라이딩 윈도우가 중복되거나 삭제된 광고 브레이크를 다시 병합하며, 이제 브레이크는 안정적인 ID(availId + availProgramDateTime)를 기준으로 중복 제거됩니다.
  • MediaTailor: 채워지지 않은 avail은 팬텀 AD_START/사분위수 이벤트를 내보냈으며, 이제 브레이크 경계와 AD_ERROR(NO_FILL)만 내보냅니다.
  • MediaTailor: 만료된 추적 페이지 매기기 토큰(HTTP 400)이 처리되지 않았으며, 이제 토큰을 삭제하고 TOKEN_EXPIRED을(를) 내보내고 폴링을 중지하기 전에 한 번 재시도합니다.
  • MediaTailor: 매니페스트 가져오기는 각 await 이후에 isDisposed을(를) 다시 확인하지 않아, 폐기된 트래커에서 상태 변형이 발생할 위험이 있었습니다.
  • AD_RESUME 실제 일시 정지 후뿐만 아니라 광고로 처음 재생될 때도 발생했습니다.
  • 광고 도중 폐기 시 남아 있는 AD_END/AD_BREAK_END을(를) 발생시키지 않아 광고 시간이 불완전한 상태로 남았습니다.
  • DASH EventStream presentationTime 값이 초 단위로 변환되지 않고 원시 틱으로 처리되어, 광고가 잘못된 오프셋에 배치되었습니다.
  • HLS #EXT-X-CUE-OUT파싱된 광고 브레이크가 사분위수 플래그를 초기화하지 않아, 광고당 사분위수 이벤트가 두 번 이상 발생했습니다.

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.