September 30
HLS JS v2.0.1向けメディアエージェント
バグ修正
- HLS再生が開始された後、
getSrc()が実際のマニフェストURLではなくブラウザの一時的なblob:URLを返す問題を修正しました。トラッカーは基盤となるHls.jsインスタンスからURLを読み取るようになったため、再生中は実際のマニフェストURLが一貫して報告されます。
September 24
Media agent for CAF v5.0.0
New features
/browsersubpath export: A@newrelic/video-caf/browserentry point is now available that excludes the unused connected-device pipeline from the bundled@newrelic/video-coredependency, keeping the bundle lean. Abrowser.jsfilesystem shim is also included for bundlers that don't honor theexportsfield.- Named export:
{ CAFTracker }is now available as a named export alongside the existing default export on both the root and/browserentry points.
Improvements
@newrelic/video-coreupdated 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依存関係から未使用のconnected-deviceパイプラインを除外し、バンドルを軽量に保つ@newrelic/video-caf/browserエントリポイントが利用可能になりました。exportsフィールドに対応していないバンドラー向けに、browser.jsファイルシステムシムも含まれています。- 名前付きエクスポート:
{ CAFTracker }は、ルートと/browserの両方のエントリポイントで、既存のデフォルトエクスポートとともに名前付きエクスポートとして利用できるようになりました。
改良点
@newrelic/video-coreが5.1.0に更新されました、これには、TypeScript宣言ファイル、アップストリームのバグ修正、および依存関係のパッチが含まれています。
September 22
Media agent for HLS JS v2.0.0
New features
/browsersubpath export: A@newrelic/video-hls/browserentry point is now available that excludes unused Vega/connected-device code, reducing bundle size for browser consumers. Abrowser.jsfilesystem shim is also included for bundlers that don't honor theexportsfield.- Named export:
{ HLSTracker }is now available as a named export alongside the existing default export on both the root and/browserentry points.
Improvements
@newrelic/video-coreupdated 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ファイルシステムシムも含まれています。- 名前付きエクスポート:
{ HLSTracker }は、ルートと/browserの両方のエントリポイントで、既存のデフォルトエクスポートとともに名前付きエクスポートとして利用できるようになりました。
改良点
@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#exportsmap. Deep imports into internal paths of this package will no longer resolve — only the root export (@newrelic/video-videojs-js) and the new/browsersubpath are valid import targets. Update any direct deep-imports before upgrading.
New features
/browsersubpath export: A@newrelic/video-videojs-js/browserentry 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_ERRORevents (MediaTailor): Non-terminal failures now surface asAD_ERRORevents in NRDB with a semanticerrorCode(NO_FILL,ADS_TIMEOUT,TRACKING_FETCH_FAILED,TOKEN_EXPIRED,MISSING_AVAIL_START,MANIFEST_TRACKING_MISMATCH) instead of only appearing in the debug log.adPrimaryIdattribute (MediaTailor):AD_START,AD_END, andAD_QUARTILEnow carryadPrimaryId(the VASTcreativeId, falling back toavailId:adId) socount(DISTINCT adPrimaryId)counts true creatives, not per-avail ad IDs.
Improvements
@newrelic/video-coreupdated to 5.1.0, which includes a TypeScript conversion, upstream bug fixes, and dependency patches.- Configurable poll cadence (MediaTailor):
config.ad.pollIntervalMsoverrides 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 explicittrackingUrlon 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.segmentPrefixwas 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_ENDwas 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
startTimeInSecondswere silently dropped, undercounting impressions in NRDB; the tracker now falls back to the first ad's start and emitsMISSING_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 plusAD_ERROR(NO_FILL). - MediaTailor: Expired tracking pagination tokens (
HTTP 400) were not handled; the token is now dropped and retried once before emittingTOKEN_EXPIREDand stopping polling. - MediaTailor: Manifest fetches did not re-check
isDisposedafter eachawait, risking state mutation on a disposed tracker. AD_RESUMEwas 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
presentationTimevalues 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/接続デバイスのコードを除外する@newrelic/video-videojs-js/browserエントリポイントが利用可能になり、ブラウザの消費者向けのバンドルサイズが縮小されました。notifyAdSkipped()(MediaTailor):カスタムの広告スキップUIを備えたホストアプリは、ユーザーが開始したスキップを報告できます。広告の再生中はスキップされた広告終了イベントを発行します;それ以外の場合は何もしません。iOS/Androidトラッカーの同等のAPIをミラーリングします。stopTracking()(MediaTailor):トラッカーを破棄せずにポーリングを停止し、リスナーの登録を解除する可逆的なティアダウンであるため、後で再開できます。iOS/Androidトラッカーで使用されるメソッド名を共有します。AD_ERRORイベント(MediaTailor):致命的ではない障害は、デバッグログにのみ表示されるのではなく、セマンティックなerrorCode(NO_FILL、ADS_TIMEOUT、TRACKING_FETCH_FAILED、TOKEN_EXPIRED、MISSING_AVAIL_START、MANIFEST_TRACKING_MISMATCH)を持つAD_ERRORイベントとしてNRDBに表示されるようになりました。adPrimaryId属性(MediaTailor):AD_START、AD_END、およびAD_QUARTILEはadPrimaryId(VASTのcreativeId、availId:adIdにフォールバックします)を保持するようになったため、count(DISTINCT adPrimaryId)はアベイルごとの広告IDではなく、実際のクリエイティブをカウントします。
改良点
@newrelic/video-coreが5.1.0に更新され、これには、TypeScriptへの変換、アップストリームのバグ修正、および依存関係のパッチが含まれます。- 設定可能なポーリング間隔(MediaTailor):バッテリーまたはCPUに制約のあるクライアントの場合、
config.ad.pollIntervalMsはマニフェストから派生したライブポーリング間隔(100~5,000 msに制限)を上書きします。オプションを省略した場合、動作は変更されません。 - HLSマニフェストからのトラッキングURL(MediaTailor):トラッカーは、
#EXT-X-DATERANGE CLASS="tracking"タグが存在する場合にそこからトラッキングエンドポイントを読み取るようになり、非AWS CDNで明示的なtrackingUrlを渡す必要がなくなりました。明示的なオプションは引き続き優先されます。 - ソース変更のリセット(MediaTailor):
player.src()をスワップすると、前のセッションのエンドポイントをポーリングし続けるのではなく、トラッカーがリセットされるようになりました — 実行中のフェッチをキャンセルし、古い広告スケジュールをクリアし、トラッキングエンドポイントを再派生させます。
バグ修正
- MediaTailor:マルチ広告ポッド内の最初の広告のみがトラッキングされていました。ページングループはすべてのページで同じアベイルを再フェッチしていました;トラッカーは単一のトークンなしのリクエストでウィンドウ全体をフェッチするようになりました。
- MediaTailor:暗黙的セッションのメディアプレイリストURLのトラッキングエンドポイントを派生できなかったため、それらのセッションではティア1の広告検出が実行されませんでした。
- MediaTailor:
config.ad.segmentPrefixは誤った内部キーにマッピングされていたため、暗黙的に無視されていました。 - MediaTailor:複数のレプリゼンテーションのうち1つだけが広告としてマークされたURLに解決された場合、DASHピリオドは広告として分類されていました。分類には、すべてのレプリゼンテーションが一致することが必要になりました。
- MediaTailor:ポッドがそれを囲むブレーク境界の前に終了したときに
AD_ENDが発行されず、完了数が過少にカウントされていました。 - MediaTailor:マニフェストとトラッキングデータ間のポッド数の不一致により、ブレークジオメトリが暗黙的に破損していました;トラッカーはカウントを明示的に照合し、
MANIFEST_TRACKING_MISMATCHを発行するようになりました。 - MediaTailor:
startTimeInSecondsが欠落しているアベイルは暗黙的に破棄され、NRDBでのインプレッション数が過少にカウントされていました;トラッカーは最初の広告の開始にフォールバックし、MISSING_AVAIL_STARTを発行するようになりました。 - MediaTailor:開始時間が変動した場合、ライブスライディングウィンドウは重複またはドロップされた広告ブレークを再マージします;ブレークは安定したID(
availId+availProgramDateTime)によって重複排除されるようになりました。 - MediaTailor:ノーフィルアベイルはファントム
AD_START/クォータイルイベントを発行していました;現在はブレーク境界とAD_ERROR(NO_FILL)のみを発行するようになりました。 - MediaTailor:期限切れのトラッキングページネーショントークン(
HTTP 400)が処理されていませんでした;現在はトークンが破棄され、TOKEN_EXPIREDを発行してポーリングを停止する前に1回再試行されるようになりました。 - 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-levelsplugin (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-coredependency 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-coredependency to v5.0.1, adding Japan (JP) region collector support for Vega/Fire TV tracking.