- 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/browsersont 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/browserest 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énements
AD_ERROR(MediaTailor) : les défaillances non terminales apparaissent désormais comme des événementsAD_ERRORdans NRDB avec unerrorCodesé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. - Attribut
adPrimaryId(MediaTailor) :AD_START,AD_END, etAD_QUARTILEportent désormaisadPrimaryId(lecreativeIdVAST, se rabattant suravailId:adId) afin quecount(DISTINCT adPrimaryId)compte les véritables créations, et non les ID de publicité par disponibilité.
Améliorations
@newrelic/video-coremis à 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.pollIntervalMsremplace 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 untrackingUrlexplicite 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.segmentPrefixa é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_ENDn’é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
startTimeInSecondsmanquant é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 émetMISSING_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 plusAD_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’émettreTOKEN_EXPIRED, et d’arrêter l’interrogation. - MediaTailor : les récupérations de manifeste ne revérifiaient pas
isDisposedaprès chaqueawait, 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_ENDen attente, ce qui laissait la pause en suspens. - Les valeurs
presentationTimede 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é.