- 호환성을 깨는 변경 사항: 이번 릴리스에는
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(VASTcreativeId,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파싱된 광고 브레이크가 사분위수 플래그를 초기화하지 않아, 광고당 사분위수 이벤트가 두 번 이상 발생했습니다.