- 破壊的変更:このリリースでは
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で解析された広告ブレークが四分位フラグを初期化しなかったため、四分位イベントが広告ごとに複数回発行されていました。