Analytics Collector - Web
2.29.4
Released 2023-06-01
Fixed
videoDuration
for live streams was reported asnull
2.29.3
Released 2023-05-15
Fixed
- missing declaration for
PlayerModule
2.29.2
Released 2023-04-21
Fixed
- Shaka, Dash.js player: made more resilient to errors when fetching underlying HTMLVideoElement
Removed
- Removed Bitmovin7Adapter
2.29.1
Released 2023-02-27
Fixed
- Only ECMAScript 5 features are used during modules bundling to enable support for older TV devices
2.29.0
Released 2023-02-16
Changed
- Update of internal dependencies and webpack
Known Issues
This release contains update of a way declaration files are generated. All declaration files are now bundled in one file and stored in the root of the package.
This change might cause customers who are using declaration imports similar to the following one to see compile time errors:
import { CustomDataValues } from 'bitmovin-analytics/js/types/CustomDataValues';
This can be fixed by importing everything from 'bitmovin-analytics' like:
import { CustomDataValues } from 'bitmovin-analytics';
Deprecated
Bitmovin7Adapter
2.28.1
Released 2022-12-22
Fixed
- URL truncation didn't comply with official limits
2.28.0
Released 2022-11-14
Added
- Missing custom data fields to
AnalyticsConfig
Fixed
- Session data not being reset after loading new source
- Dash.js player: tracking of errors during source loading
- Chromecast: detection of live streams
Known Issues
- Shaka player: tracking of errors related to manifest loading does not work for player versions before 2.5.12
2.27.3
Released 2022-09-06
Fixed
- Shaka Player: stop reporting short nonexistent buffering events
2.27.2
Released 2022-07-14
Fixed
- Bitmovin Player 8: tracking of
videotime_start
andvideotime_end
during ads
2.27.1
Released 2022-06-20
Changed
- Video.js: adapter is more compatible with newer versions
Fixed
- Video.js, Dash.js, Hls.js, Shaka: fixed spamming
unmute
event when user drags volume control
2.27.0
Released 2022-04-25
Added
getUserId
to adapter API for retrieving theuserId
2.26.3
Released 2022-04-22
Changed
- Chromecast: improved player startup time tracking
2.26.2
Released 2022-04-06
Fixed
- Shaka: tracking of
videoStartuptime
2.26.1
Released 2022-03-31
Fixed
- Shaka: tracking of errors during loading of source
- Chromecast: fixed formatting on error data
- Chromecast: updated tracking when new source is being played
2.26.0
Released 2022-03-09
Added
video.js
: detection of video codec and audio codec
Changed
video.js
: improved detection of stream type
2.25.0
Released 2022-03-01
Added
- VideoJsAdapter: properlly release of BitmovinCollector on
dispose
event - improved releasing of resources after player shutdown
2.24.1
Released 2022-01-31
Fixed
- Bitmovin Player: reset DRM related data on source change
2.24.0
Released 2022-01-16
Added
- tracking of queue items transition for
chromecast
customData26
tocustomData30
to the sample payload
2.23.0
Released 2021-12-14
Added
customData8
tocustomData25
to the sample payload
Changed
- analytics instance can be attached only once to the same player instance
2.22.0
Released 2021-10-05
Added
- BitmovinPlayer 8: HttpRequestTracking feature
- ErrorDetailTracking feature
Fixed
- fix missing sample
startup
on iOS devices because of not supportedMediaSource
2.21.2
Released 2021-08-26
Fixed
HTML5 native
,video.js
: detection ofstreamFormat
andstreamURL
when source URL contains queryParameters
2.21.1
Released 2021-08-11
Fixed
- Bitmovin Player 8: incorrect state transition after ads to
STARTUP
state.
2.21.0
Released 2021-08-02
Added
- Bitmovin Player:
castTech
typesAirplay, GoogleCast, and WebSocket
are now detected via player API
2.20.2
Released 2021-07-19
Fixed
- BitmovinPlayer 8: improved stability of collector when destroying player
2.20.1
Released 2021-07-05
Fixed
- BitmovinPlayer 8: collector gets stuck in ad event and sends samples with wrong state
2.20.0
Released 2021-05-10
Changed
- updated
setCustomData
andsetCustomDataOnce
logic for sending additional samples
2.19.2
Released 2021-01-10
Added
- Typings for
setCustomData
andsetCustomDataOnce
Fixed
- Bug where
setCustomData
would override already present customDataValues even if the new values are undefined
2.19.1
Released 2021-01-10
Added
- Failed Play Attempts, due to a timeout, are now considered as an
ANALYTICS_VIDEOSTART_TIMEOUT_REACHED
- Chromecast v3 Adapter for Shaka Player
Changed
- Collector will shut down and stop collecting after a
rebufferTimeout
orvideoStartupFailed
is detected
Fixed
- Bug where
videotime_start
andvideotime_end
values were incorrect for errors of typeANALYTICS_QUALITY_CHANGE_THRESHOLD_EXCEEDED
2.18.0
Released 2020-10-11
Changed
- Bitmovin 8: ignores seek events whose seek distance is less than 3 sec (e.g. keyboard triggered seeks)
- Bitmovin 8: no seek tracking during
PAUSED
state - if
cookieEnabled
is false we ensure that a previously saved cookie is not being used but rather a new userID is generated for every session
Fixed
- exception during Browser event
unload
for Bitmovin 7, Bitmovin 8 and VideoJS - negative/multiple seek events being emitted for Bitmovin 7, Bitmovin 8
- issue with where Seeking could get stuck in loop on Bitmovin 8
2.17.2
Released 2020-07-29
Fixed
- A bug where quality change threshold info carried over to subsequent sessions causing
ANALYTICS_QUALITY_CHANGE_THRESHOLD_EXCEEDED
errors to sometimes happen too soon on the new play session.
2.17.1
Released 2020-07-20
Fixed
- Ad module wasn't initialized properly for Bitmovin8
2.17.0
Released 2020-07-19
Added
cookiesDomain
field to the Analytics configuration, which defines at domain-level the cookie will be set
Changed
- Bitmovin Player: tracking of video startup times when transitioning from pre-roll ads to main content
Fixed
- video.js exception with progressive sources
2.16.0
Released 2020-07-05
Added
- maximum threshold for quality change events
error
sample sent if quality change threshold has been exceeded (ANALYTICS_QUALITY_CHANGE_THRESHOLD_EXCEEDED)error
sample sent if continuous buffering exceeds threshold (ANALYTICS_BUFFERING_TIMEOUT_REACHED)
2.15.2
Released 2020-06-21
Fixed
- remove persistence of
drmLoadTime
in every sample
2.15.0
Released 2020-06-21
Added
- video completion tracking for Video.js
- improved source change tracking
Changed
- persist DRM information fields
drmLoadTime
anddrmType
in every sample
2.14.0
Released 2020-06-07
Added
completed
andcompletedTotal
to sample to track video completion- Bitmovin, Dash.js, Shaka, hls.js: video completion tracking
Fixed
- Dash.js:
attachSource
from Dash MediaPlayer now resets theimpressionId
correctly. - Dash.js, Hls.js, Shaka: track correct
videoTimeEnd
for the playing event if seek occurs during playing Bitmovin8AnalyticsStateMachine
didn't callmanualSourceChange
on Tizen devices
2.13.0
Released 2020-05-24
Added
- Configuration field
customUserId
that is an alias foruserId
to avoid confusion. Both fields will populate theCUSTOM_USER_ID
metric. - Sending out an additional
closed
sample when a user unloads the page to be able to trackSTREAM_EXIT
events
Changed
- Hlsjs: Improved error rate reporting by ignoring warning errors that did not prevent stream playback.
Fixed
- A rare bug in Dash.js where the state machine could end up stuck in startup if a
PLAY
event is encountered before theREADY
event.
2.12.0
Released 2020-04-13
Added
- Playback start failure and reason tracking for video.js, shaka, dash.js and hls.js
2.11.0
Released 2020-03-22
Added
- To improve accuracy and timeliness of reported rebuffering events we introduced a incremental heartbeat that sends out events after
3s, 5s, 10s, 30s, 60s
.
2.10.0
Released 2020-03-19
Added
- Hlsjs: audio- and subtitle language tracking
Fixed
- Shaka: wait until player initialized media element before attaching analytics
2.9.0
Released 2020-02-19
Added
- Tracking of playback start failures and their reason
Fixed
- window onclose handler was overwritten by the advertising module
2.8.1
Released 2019-12-19
Fixed
- Hlsjs: error events were not registered by analytics HlsAdapter
- Hlsjs: isLive check throws unhandled error and cancled sending of sample
2.8.0
Released 2019-12-08
Added
- Bandwidth measurements for hls.js
Changed
- log level to
warning
of failed license calls due toDo Not Track
enabled
2.7.1
Released 2019-10-28
Fixed
- Issue with
userId
cookie not being set to root path - Incorrect
userId
cookie expiry
2.7.0
Released 2019-10-27
Added
- Subtitle tracking in VideoJS (
subtitleEnabled
andsubtitleLanguage
) - Audio language tracking in VideoJS
2.6.0
Released 2019-10-13
Added
- New boolean configuration field called
isLive
to indicate if the upcoming stream is a live stream. Will be overriden once playback metadata is available.
Removed
- Unused config variables
ads
andcast
2.5.2
Released 2019-08-28
Added
- API to indicate a source change in VideoJS
Fixed
- Crash on IE11 due to a missing polyfill for
String.endsWith
not being available. - When changing sources, the collector
config
was lost if none was passed Origin
fromcollectorConfig
was not updated after a manual sourceChange
Known Issues
- VideoJS cannot correctly detect autoplay
- VideoJS doesn't support correct startup time tracking for source changes
- VideoJS: Metadata from the first source change is ignored
2.5.1
Released 2019-08-18
Added
- API to indicate a source change in VideoJS
Changed
- VideoJS rebuffering measurement method to be more accurate
Fixed
- Metadata supplied in first
player.load
SourceConfig
after initial setup is now updated correctly droppedFrames
was incorrectly measued and was always0
- For VideoJS player: Prevent exception when the HLS
RESOLUTION
is undefined
2.5.0
Released 2019-08-04
Added
origin
to Analytics Collector configuration to set the origin on samples for devices that do not send the origin header in requests.cookiesEnabled=true|false
to Analytics Collector configuration to disable cookies. Defaults totrue
. If cookies are disabled,userId
is not persisted across collector sessions.- For Bitmovin Player v7 and v8: The selected audio language is available as
audioLanguage
in the sample. - For Bitmovin Player v7 and v8: Sample now contains
subtitleEnabled
andsubtitleLanguage
.
Fixed
timeInViewport
wasn't calculated correctly if ad playback was initially started outside of the viewport.
2.4.3
Released 2019-06-25
Added
- Exception handling for very rare cases where sending a post request via XMLHttpRequest failed because the containing iFrame was already detached
2.4.2
Released 2019-05-16
Added
- If using deferred license loading via the Player+Analytics bundling mechanism, the license key wasn't being updated in the samples.
2.4.1
Released 2019-05-13
Added
- Ability to prevent initialization of the Analytics Module for Bitmovin Player v8 by setting
analytics: false
in the config.
Fixed
window.setInterval
leak whenplayer.destroy
was called in theadstarted
callback.- Removed confusing
console.error
on license responses that didn't specify an analytics key.
2.4.0
Released 2019-05-05
Added
- TypeScript declaration files
- Ability to enable/disable the collector for specific sessions on each call of
player.load
- Starting with Bitmovin Player v8.10, Analytics will get the analytics license key automatically from the player, if a default license is specified in the dashboard.
Fixed
- Collector Sessions that initially started with enabled: false did not report playerStartupTime, pageLoadTime, startupTime. They now get sent with the first enabled startup sample.
2.3.0
Released 2019-04-14
Added
- Added tracking of used
audioCodec
andvideoCodec
- Tracking of the client's supported video codecs
Fixed
- possible crash of ad module on Safari related to the viewport tracker
2.2.0
Released 2019-03-24
Added
- Added
config
to analytics configuration - Configure backend url via
analyticsConfig.config.backendUrl
- Error segment tracking
- Sample now contains
errorData
JSON with additional information for Bitmovin 8 errors. - Bitmovin Player v8.3 compatibility
- Improvements to the Ad Module with 8.3 (FallbackIndex and Waterfall level)
2.1.1
Released 2019-01-16
Added
version
property on all analytics instances to get analytics collector versionplayer.analytics.version
property to get analytics collector versionwindow.bitmovin.analytics.version
property to get analytics collector version
Fixed
- Bitmovin collector no longer pollutes the global scope when used in a requirejs/es6 context
2.1.0
Released 2019-01-13
Added
- Added ads tracking (Bitmovin 8 only)
- Added bandwith measurements
- Sample now sends
web
in a platform field - AdSample now sends
web
in in the platform field - Sample now contains a
sequenceNumber
field
Changed
- Bitmovin7Adapter now checks if another analytics collector is already registered up
Fixed
- Looping a video (Calling
.play()
afterplaybackFinished
occured) did not correctly generate a new impressionId
2.0.0
Released 2018-10-23
Added
AnalyticsPlayerModule
classAnalytics.version
returns the version of the analytics collector- Added support for native HTML5 Video playback via the
HTMLVideoElementAdapter
- Added specific adapter classes for each supported player technology
Bitmovin8Adapter
Bitmovin7Adapter
VideojsAdapter
ShakaAdapter
HlsAdapter
DashjsAdapter
HTMLVideoElementAdapter
Changed
- Setup API has been reworked to use JavaScript classes and specific adapters per player technology
Removed
.augment
syntax removed in favor of ES6 classes.register
syntax removed in favor of ES6 classeswindow.bitmovin.analytics
window.bitmovin.analytics.Players
window.bitmovin.analytics.CdnProviders
window.bitmovin.analytics.PlayerModule
window.bitmovin.analytics.version
- Automatic Player detection is deprecated in favor of explicit Adapter creation
Fixed
- Video Bitrate is now correctly reported before the first quality change events in all adapters
- Player version reporting has been improved.
- Fixed incorrect handling of
videoWindowWidth
andvideoPlaybackWidth
in HLS.js and Shaka. - When loading a new video with Bitmovin Player v7 and v8, a new impression id was assigned before the last sample of the old impression has been sent to the server.
- Fixed error being thrown when
hls.destroy()
is called because of a not correctly cleared timeout.
Known Issues
getPlayerVersion
will returnunkown
for video.js if included via npm or requirejs- Not calling
player.load
in the same code-path afternew bitmovin.player.Player()
will skew thePLAYER_STARTUPTIME
metric. - Bitrate Information is not collected when using Native Safari Playback using the
HTMLVideoElementAdapter
. This is due to the limitations of the Browser and not a bug. - The HTML5 adapters and the VideoJs adapter won't assign a new impression id on
Analytics.sourceChange()
- Destroying a Shaka instance will not correctly clear all event handlers on the VideoElement. Re-Using the VideoElement with another Shaka instance will lead to the impression being tracked twice
1.7.4
Released 2018-10-23
Fixed
- Player detection for Shaka when loaded via require and
window.Shaka
is not available. - Player detection for HLS.js when loaded via require and
window.HLS
is not available. - Beta-Support for Shaka 2.3.7
- Beta-Support for HLS.js 0.7.11
Known Issues
- Shaka/HLS Adapter: Video width/heigth/bitrate is only available after the first videoQuality change event.
1.7.3
Released 2018-10-04
Fixed
pageLoadType
was not correctly detected for subsequent sessions in the same playerplayerStartupTime
was reported asNULL
instead of0
for subsequent sessions in the same player- Internal improvements and refactorings
1.7.2
Released 2018-09-20
Fixed
isLive
detection was broken in subsequent sessions on the same player
1.7.1
Released 2018-09-09
Added
- added default export for es6 style imports
1.7.0
Released 2018-09-06
Added
- Bitmovin Player v8 Support
title
configuration attribute- introduced new "embedded" configuration API
- DRM performance tracking
Removed
- Bitmovin Player v6 support
- Chromecast receiver side support
1.6.0
Released 2018-04-22
Added
- DASH.js support
- HLS.js support
- Shaka player support
- HTML5 media element support
Changed
- various internal refactorings
- added source-maps to the NPM package
Fixed
- inaccuracies in seek time tracking
- video.js adapter bugfixes
Updated 5 days ago