# mux-embed

## 5.17.10

### Patch Changes

- d269a8e: [chore] force upgrade of yarn to 4.12.0

## 5.17.9

### Patch Changes

- 972aa7b: [chore] upgrade yarn version

## 5.17.8

### Patch Changes

- c61e7e0: [chore] publish mux-embed first, then the rest

## 5.17.7

### Patch Changes

- 459e426: fix workspace build issue

## 5.17.6

### Patch Changes

- 5fc0f70: [chore] fix release pipeline

## 5.17.5

### Patch Changes

- 3d12318: fix issue where playback_mode may not have appeared on all events

## 5.17.4

### Patch Changes

- d497a4e: [chore] fix npm publish

## 5.17.3

### Patch Changes

- e8b169f: [chore] fix deploy pipeline

## 5.17.2

### Patch Changes

- 1546883: [chore] update build process to github actions

## 5.17.1

### Patch Changes

- 8aa9078: fix issue where playing time might accumulate for paused players

## 5.17.0

### Minor Changes

- fb35e4e: add compatibility for dash.js 5

## 5.16.1

### Patch Changes

- 546d371: Update parsing of initial value for player_playback_mode

## 5.16.0

### Minor Changes

- a2c08d2: Add Playback Range Tracker for new engagement metrics

## 5.15.0

### Minor Changes

- 9b29061: Automatically detect playback mode changes for HTML 5 Video

## 5.14.0

### Minor Changes

- 05c1931: Emit a renditionchange event at the start of views to eanble updated rendition tracking.

## 5.13.0

### Minor Changes

- 4b4cad5: Add ad type metadata to Ad Events
- f438c4a: Add support for the upcoming Playback Mode changes:
  - New playbackmodechange event
  - Two new metrics, ad_playing_time_ms_cumulative and view_playing_time_ms_cumulative, to track playing time by wall clock time

## 5.12.0

### Minor Changes

- 95bfc7d: SDKs will no longer immediately send error events that are flagged as warnings. Fatal errors will still immediately be sent.

## 5.11.0

### Minor Changes

- c537870: Allow dev to specify page starting load and page finished loading times to calculate Page Load Time

## 5.10.0

### Minor Changes

- 1644b67: Adds support for cdnchange events

## 5.9.1

### Patch Changes

- 4e18c30: Submit Aggregate Startup Time when autoplay is set

## 5.9.0

### Minor Changes

- eb2ebfa: Improve scaling calculation accuracy by using more events for tracking

## 5.8.3

### Patch Changes

- 8fa7827: add custom 11 through 20 to types

## 5.8.2

### Patch Changes

- 38eeefe: remove duplicate video_source_mime_type from types

## 5.8.1

### Patch Changes

- cef9e40: fix typo in types for viewer_plan

## 5.8.0

### Minor Changes

- 049be75: Add support for video_creator_id

## 5.7.0

### Minor Changes

- 41b0915: Add keys for new customer-defined dimensions

## 5.6.0

### Minor Changes

- 9cd7dbf: Fix issue where firefox did not send beacons, and some final beacons might not be sent

## 5.5.0

### Minor Changes

- 18af18e: Update mechanism for generating unique IDs, used for `view_id` and others
- 157f957: Use crypto.randomUUID(), when available, for generating UUID values

## 5.4.3

### Patch Changes

- 2d96231: [chore] internal build process fix (no functional changes)

## 5.4.2

### Patch Changes

- e5f3e65: feat(google-ima): Beta implementation of google-ima extension to mux-embed
- fecba0b: feat(mux-embed): Add methods for post-initialization overrides of functionality (for internal use only).
- 40f531d: fix(mux-embed): typecheck for dashjs.getSource is incorrect.

## 5.4.1

### Patch Changes

- 1aa5968: Expose `updateData` globally and fix types
- 723e2e3: Fix an issue where views were not ended cleanly on long resume detection

## 5.4.0

### Minor Changes

- 67e297d: Add updateData function that allows Mux Data metadata to be updated mid-view.

## 5.3.3

### Patch Changes

- 7c77ea4: expose HEARTBEAT and DESTROY under mux.events

## 5.3.2

### Patch Changes

- d5e737e: Fix type issues for error severity and business exception

## 5.3.1

### Patch Changes

- 2f2f885: fix(mux-embed): Remove 3rd party dependencies and replace with appropriately equivalent functionality.

## 5.3.0

### Minor Changes

- 08adb81: Ignore request events when emitting heartbeat events
- Fix an issue where video quality metrics may not be calculated correctly on some devices

## 5.2.1

### Patch Changes

- 8a33cb0: Send hb events regardless of errors

## 5.2.0

### Minor Changes

- 6fc018a: Bug fix to not de-dupe error event metadata
- 5707014: Extend `errorTranslator` to work with `player_error_severity` and `player_error_business_exception`

## 5.1.0

### Minor Changes

- 95fd304: Target ES5 for bundles and validate bundles are ES5

### Patch Changes

- 117d668: fix an issue where seeking time before first play attempt counted towards video startup time

## 5.0.0

### Major Changes

- 70b87d4: Add opt-in TypeScript Types to Mux Embed and use + refactor for other dependent data SDKs. Update published dists to include CJS and ESM.
- Mux Embed now provides (opt in) TypeScript types in its published package, as well as publishes CJS and ESM versions of the package.
- This allows us to provide a lower risk and iterative roll out of official TypeScript types for `mux-embed`. The export types updates were required to ensure actual matches between the dist package and corresponding TypeScript types.
- This _should_ have no direct impact on users, though different build tools will now potentially select one of the new export types (e.g. the ESM "flavor" of `mux-embed`). TypeScript types _should not_ be applied unless they are explicitly referenced in app (discussed in docs updates).

## 4.30.0

### Minor Changes

- e3c4f1e: fix an issue causing certain network metrics to not be available for dashjs v4.x

### Patch Changes

- ad1f41a: fix an issue where certain IDs used may cause a DOM exception to be raised

## 4.29.0

### Minor Changes

- 2d9f466: fix(mux-embed): avoid using element id for muxId. attach muxId to element.

## 4.28.1

### Patch Changes

- dabca78: fix an issue where beaconDomain deprecation line was incorrectly logged

## 4.28.0

### Minor Changes

- 7317411: Deprecate `beaconDomain` in favor of `beaconCollectionDomain`. The `beaconDomain` setting will continue to function, but integrations should change to `beaconCollectionDomain` instead.

## 4.27.0

### Minor Changes

- 6d868a0: Fix an issue where playback time was incorrectly counted during seeking and other startup activities
- 32f78cb: Add events for the collection of ad clicks
- b295a7f: fix an issue where seek latency could be unexpectedly large
- b295a7f: fix an issue where seek latency does not include time at end of a view
- 903f8a8: Add events for the collection of ad skips

## 4.26.0

### Minor Changes

- 15f2461: muxData cookie expiration should be one year

## 4.25.1

### Patch Changes

- 2cd1d81: Do not deduplicate ad IDs in ad events

## 4.25.0

### Minor Changes

- 3bdf5e8: Include ad watch time in playback time

## 4.24.0

### Minor Changes

- a8e725e: Fix an issue where beacons over a certain size could get hung and not be sent

## 4.23.0

### Minor Changes

- 4af958d: Collect Request Id from the response headers, when available, for HLS.js (`requestcompleted` and `requestfailed`) and Dash.js (`requestcompleted`). The following headers are collected: `x-request-Id`, `cf-ray` (Cloudflare), `x-amz-cf-id` (CloudFront), `x-akamai-request-id` (Akamai)
- 60634da: Fix an issue where tracking rebuffering can get into an infinite loop

### Patch Changes

- df8b73a: Update Headers type

## 4.22.0

### Minor Changes

- 92ac6dc: Send errors, `requestfailed`, and `requestcancelled` events on Dash.js. Because of this change, you may see the number of playback failures increase as we now automatically track additional fatal errors.

## 4.21.0

### Minor Changes

- 197eab8: Include Ad metadata in ad events

## 4.20.0

### Minor Changes

- 7243d2e: Support for new dimension, `view_has_ad`

## 4.19.0

### Minor Changes

- 567814c: End views after 5 minutes of rebuffering

## 4.18.0

### Minor Changes

- 2e187c3: Add audio, subtitle, and encryption key request failures for HLS.js
- e91e64c: Capture ad metadata for Video.js IMA
- b37e888: Capture detailed information from HLS.js for fatal errors in the Error Context

## 4.17.0

### Minor Changes

- 81ffe36: Extend `errorTranslator` to work with `player_error_context`

## 4.16.0

### Minor Changes

- cb4813e: Add new `renditionchange` fields to Shaka SDK
- 842167e: Adds support for new and updated fields: `renditionchange`, error, DRM type, dropped frames, and new custom fields
- d802f30: Add frame drops to Shaka SDK
- 73a23c2: Add new `renditionchange` info to Web SDKs
- 4464398: Adds the new Media Collection Enhancement fields

## 4.15.0

### Minor Changes

- b1b25a4: update `mux.utils.now` to use `navigationStart` for timing reference

### Patch Changes

- 87027e7: fix issue where views after `videochange` might incorrectly accumulate rebuffering duration
- dafa288: Resolved issue sending beacons when view is ended
- 1dd4cc1: Record `request_url` and `request_id` with network events

## 4.14.0

### Minor Changes

- 99ab50c: Tracking FPS changes if specified in Manifest

## 4.13.4

### Patch Changes

- faefb2e: Resolved issue sending beacons when paused

## 4.13.3

### Patch Changes

- 3b44caa: Fixed issue with monitoring network events for hls.js monitor

## 4.13.2

### Patch Changes

- b21e86a: Fix an issue with sending unnecessary heartbeat events on the window `visibilitychange` event

## 4.13.1

### Patch Changes

- df36c55: Fixes an issue with accessing the global object

## 4.13.0

### Minor Changes

- 4b78021: Collect the `x-request-id` header from segment responses to make it easier to correlate client requests to other logs
- 388e558: Upgraded internal webpack version

### Patch Changes

- a534321: Flush events on window `visibilitychange` event

## 4.12.1

### Patch Changes

- aaf3b01: Use Fetch API for sending beacons

## 4.12.0

### Minor Changes

- 856b2df: Generate a new unique view if the player monitor has not received any events for over an hour.

## 4.11.0

### Minor Changes

- b2499f4: Detect fullscreen and player language

## 4.10.0

### Minor Changes

- a59a3ee: Replace query string dependency to reduce package size
- a59a3ee: Remove `ImageBeacon` fallback, removing support for IE9

## 4.9.4

### Patch Changes

- 91c4794: Generate all `view_id`'s internally

## 4.9.3

### Patch Changes

- ecf1447: Use common function for generating short IDs

## 4.9.2

### Patch Changes

- 0323215: Fixed an issue around the `disablePlayheadRebufferTracking` option

## 4.9.1

### Patch Changes

- e4b3b16: Fix issue where `getStartDate` does not always return a date object

## 4.9.0

### Minor Changes

- 6fc81db: Support PDT and player_live_edge_program_time for Native Safari

### Patch Changes

- 28af90d: Set a max payload size in mux-embed

## 4.8.0

### Minor Changes

- 5b57b38: Add option `disablePlayheadRebufferTracking` to allow players to disable automatic rebuffering metrics.
  Players can emit their own `rebufferstart` or `rebufferend` events and track rebuffering metrics.

### Patch Changes

- 2572844: Fix an issue with removing `player_error_code` and `player_error_message` when the error code is `1`.
  Also stops emitting `MEDIA_ERR_ABORTED` as errors.
- 6bd4336: Now leaving Player Software Version for HTML5 Video Element unset rather than "No Versions" as it is no longer needed.

## 4.7.0

### Minor Changes

- d2c2670: Add an option to specify beaconCollectionDomain for Data custom domains

## 4.6.2

### Patch Changes

- 4f2187c: Fix an issue with emitting heartbeat events while the player is not playing

## 4.6.1

### Patch Changes

- 51476cc: Fix an issue with removing event listeners from window after the player monitor destroy event

## 4.6.0

- Update hls.js monitor to record session data with fields prefixed as `io.litix.data.`
- Update the manifest parser to parse HLS session data tags

## 4.5.0

- Add short codes to support internal video experiments
- Collect request header prefixed with `x-litix-*`
- Capture fatal hls.js errors
- Make `envKey` an optional parameter

## 4.4.4

- Add a player events enum on the `mux` object (e.g. `mux.events.PLAY`)
- Use the browser `visibilitychange` listener instead of `unload` to handle destructuring the player monitor.

## 4.4.3

- Fix: Specify `video_source_is_live` for HLS.js monitor

## 4.4.2

- Group events into 10 second batches before sending a beacon

## 4.4.1

- Exclude latency metrics from beacons if `video_source_is_live` is not `true`

## 4.4.0

- Add a lightweight HLS manifest parser to capture latency metrics for player's that don't expose an API for accessing the manifest.
- Allow players to emit `player_program_time` instead of calculating internally

## 4.3.0

- Add support for calculating latency metrics when streaming using HLS

## 4.2.5

- Remove default `video_id` when not specified by the developer.

## 4.2.4

- Add minified keys for latency metrics

## 4.2.3

- Add minified keys for new program time metrics

## 4.2.2

- Fix bug causing missing bitrate metrics using HLS.js {'>'}v1.0.0

## 4.2.1

- (video element monitor) Fix an issue where some non-fatal errors thrown by the video were tracked as playback failures

## 4.2.0

- Fix an issue where views triggered by `programchange` may not report metrics correctly
- Fix an issue where calling `el.mux.destroy()` multiple times in a row raised an exception

## 4.1.1

- Fix an issue where `player_remote_played` wasn't functioning correctly

## 4.1.0

- Add support for custom dimensions

## 4.0.1

- Support HLS.js v1.0.0

## 4.0.0

- Enable sending optional ad quartile events through.
- Move device detection server-side, improving data accuracy and reducing client SDK size.
- Fix an issue where jank may be experienced in some web applications when the SDK is loaded.

## 3.4.0

- Setting to disable rebuffer tracking `disableRebufferTracking` that defaults to `false`.

## 3.3.0

- Adds `viewer_connection_type` detection.

## 3.2.0

- Adds support for `renditionchange`.

## 3.1.0

- Add checks for window being undefined and expose a way for SDKs to pass in platform information. This work is necessary for compatibility with react-native-video.

## 3.0.0

- Setting to disable Mux Data collection when Do Not Track is present now defaults to off
- Do not submit the source URL when a video is served using the data: protocol

## 2.10.0

- Use Performance Timing API, when available, for view event timestamps

## 2.9.1

- Fix an issue with server side rendering

## 2.9.0

- Support for Dash.js v3

## 2.8.0

- Submit Player Instance Id as a unique identifier

## 2.7.3

- Fixed a bug when using `mux.monitor` with Hls.js or Dash.js the source hostname was not being properly collected.
