Release notes for the deprecated v1 version of the Analytics Collector can be found [here](🔗).




## 3.3.2

Released 2024-01-08

**Fixed**

  • `java.lang.IllegalAccessException` when using strict mode with `detectIncorrectContextUse()` due to WindowManager usage




## 3.3.1

Released 2023-12-29

**Fixed**

  • Tracking of seeks while player is paused




## 3.3.0

Released 2023-12-19

**Changed**

  • Upgraded Kotlin Version to `1.9.21`

  • Upgraded Compile SDK and Target SDK to API level 34

  • Upgraded collector dependencies (okhttp3 to `4.12.0`, gson to `2.10.1`, kotlinx-coroutines-core to `1.7.3`)

  • Upgraded bitmovin player to `v3.54.0`




## 3.2.0

Released 2023-12-11

** Added **

  • Tracking of AV1 support

  • Amazon IVS Player: Tracking of source path for player version >= `1.23`

**Changed**

  • Upgrade example apps to latest bitmovin player (`v3.53.0`) and ivs player (`v1.23.0`)




## 3.1.0

Released 2023-10-13

** Added **

  • Support for Media3 ExoPlayer

  • Subtitle tracking for ExoPlayer and Media3 ExoPlayer

**Changed**

  • Upgrade example apps to latest bitmovin player (`v3.46.0`) and ivs player (`v1.22.0`)

**Fixed**

  • Wrong minimum Android Version for ExoPlayer and Bitmovin Collector (was `4.1` but we only support Android >= `5.0` (API Level `21`))




## 3.0.1

Released 2023-08-09

**Changed**

  • Upgrade example app to latest bitmovin player (`v3.41.0`)

**Fixed**

  • Backwards compatibility with bitmovin player `< v3.39.0`

**Known Issues**

  • Crashes when used with Android Version below `5.0` despite specified minimum Android Version of `4.1`




## 3.0.0

Released 2023-07-31

This major version release changes how the collector is setup, how metadata is provided and introduces breaking changes compared to v2. Please check the [migration guide](🔗) for further information how to upgrade.

**Changed**

  • Introduced new API v3 for all players with breaking changes compared to v2

  • Upgraded to Kotlin 1.8.20

  • ExoPlayer: More specific PlaybackException mapping (using errorCodes instead of error types and errorCode names are now part of description)

  • Upgrade example app to latest bitmovin player (v3.40.0), latest ivs player (v1.20.0) and latest exoplayer (v2.19.0)

  • Bitmovin Player: Throw exception if two bitmovin analytics collector instances are attached to the same player instance

  • SourceUrls are autodetected and cannot be specified through metadata anymore

**Fixed**

  • Prevent context leaking through using context.applicationContext in constructors

  • Set current position for videoTimeStart and videoTimeEnd when customDataEvent is sent

  • IVS Player: Ignore isLive property for IVS player since it is just a fallback in case the player does not provide the information and IVS player doesn't differentiate between live and source not loaded, so it cannot be used there. This streamlines the behaviour with other players.

  • ExoPlayer: More reliable tracking if player is muted

**Known Issues**

  • This version only works with player version >= `3.39.0`. A fix is provided with collector version `3.0.1`.

  • Crashes when used with Android Version below `5.0` despite specified minimum Android Version of `4.1`




## 2.18.0

Released 2023-05-26

**Added**

  • Support to collect analytics data while device is offline. This can be enabled with the new collector config longTermRetryEnabled, which is default false. When this config is enabled, the collector will send the collected analytics data once the device is online again.

**Changed**

  • Upgrade example app to latest bitmovin player (v3.38.0) and latest exoplayer version (v2.18.7)

**Known Issues**

  • Crashes when used with Android Version below `5.0` despite specified minimum Android Version of `4.1`




## 2.17.0

Released 2023-04-28

**This release changes how we manage dependencies to the players.** We changed the dependency to the player from `implementation` to `compileOnly` in order to simplify dependency management when using our collector (no strict versioning needed anymore to use older versions of the player for example). This change requires that the consuming application has an explicit dependency to the player. If the application already has an explicit dependency to the player, then there is no adaption needed. An example for the bitmovin player can be found [here](🔗).

**Changed**

  • All collectors use `compileOnly` dependency to players instead of `implementation`

  • Upgrade example app to latest bitmovin player (v3.37.0)

  • Upgrade example app to latest exoplayer version (v2.18.6)

  • IVS Player and ExoPlayer: Streamlined reporting of video duration for live streams to be 0, to be consistent with other players/platforms

**Known Issues**

  • Crashes when used with Android Version below `5.0` despite specified minimum Android Version of `4.1`




## 2.16.0

Released 2023-04-17

**Changed**

  • Upgrade example apps to use latest amazon ivs player (`v1.18.0`) and latest bitmovin player (`v3.35.2`)

**Fixed**

  • Bitmovin Player: New quality on quality change events was tracked one sample too early

  • IVS Player: Wrong initialization order on startup

  • IVS Player: Wrong order of releasing of resources when collector is detached

  • IVS Player: Reporting of negative droppedFrames in certain edgecases

  • ExoPlayer and Bitmovin Player: Tracking if player is muted was missing

  • All players: Wrong reporting of `videostartup_time = 0` on certain edgecases where startup was very fast

**Known Issues**

  • Crashes when used with Android Version below `5.0` despite specified minimum Android Version of `4.1`




## 2.15.0

Released 2023-04-03

**Added**

  • Amazon IVS player support

**Changed**

  • Upgraded example apps to latest bitmovin player (`v3.35.1`) and latest exoplayer (`v2.18.5`)

**Fixed**

  • Workaround issue in Bitmovin Player version `3.34.0` and `3.35.0` that would lead to a `ClassNotFoundException` when detecting the player version.

**Known Issues**

  • Crashes when used with Android Version below `5.0` despite specified minimum Android Version of `4.1`




## 2.14.0

Released 2023-03-07

**Added**

  • Interfaces and Factories for each collector

  • Descriptive error messages for analytics errors

**Changed**

  • Upgraded okhttp3 to `v4.10.0` (this is a major version upgrade from v3 to v4)

  • Upgraded `gson` dependency to `v2.8.9`

  • Upgraded `androidx.appcompat` dependency to `v1.6.1`

  • Upgraded example apps to latest bitmovin player (`v3.33.0`) and latest exoplayer (`v2.18.4`)

  • Deprecated obsolete PlayerType config in AnalyticsConfig

  • Made all bitmovin and exoplayer collector classes that are not part of the public API internal

**Removed**

  • Removed `v1` collectors which were deprecated already

**Fixed**

  • ExoPlayer `v2.18.3` could crash on detaching of analytics collector on certain scenarios

  • Tracking of bitmovin player key when it is specified in the manifest

  • Tracking of audiolanguage, audiocodec and videocodec for exoplayer

  • Serialization issues when ProGuard is used for obfuscation

  • Stopped sending samples when player is released but collector is still attached

**Known Issues**

  • Bitmovin Collector`<= 2.14.0` is incompatible with Bitmovin Player `v3.35.0` and `v3.34.0` (crashes during startup), this issue is fixed with Bitmovin Collector `v2.15.0` or Bitmovin Player `v3.35.1`

  • Crashes when used with Android Version below `5.0` despite specified minimum Android Version of `4.1`




## 2.13.0

Released 2023-01-24

**Added**

  • Detection of FireOS 8

**Changed**

  • BitmovinPlayer: Improved ad tracking

**Fixed**

  • Detection of UHD screens on AndroidTVs

**Known Issues**

  • Bitmovin Collector`<= 2.14.0` is incompatible with Bitmovin Player `v3.35.0` and `v3.34.0` (crashes during startup), this issue is fixed with Bitmovin Collector `v2.15.0` or Bitmovin Player `v3.35.1`




## 2.12.2

Released 2022-12-22

**Changed**

  • Increased collected error stacktrace size to 50 lines

**Known Issues**

  • Bitmovin Collector`<= 2.14.0` is incompatible with Bitmovin Player `v3.35.0` and `v3.34.0` (crashes during startup), this issue is fixed with Bitmovin Collector `v2.15.0` or Bitmovin Player `v3.35.1`




## 2.12.1

Released 2022-11-28

**Changed**

  • Upgraded Kotlin Version to `1.7.20`

  • Updated example apps to reflect latest player changes

**Fixed**

  • Race Condition during startup when analytics license is not enabled

**Known Issues**

  • Bitmovin Collector`<= 2.14.0` is incompatible with Bitmovin Player `v3.35.0` and `v3.34.0` (crashes during startup), this issue is fixed with Bitmovin Collector `v2.15.0` or Bitmovin Player `v3.35.1`




## 2.12.0

Released 2022-10-25

**Fixed**

  • Race condition on HttpRequestTracking feature

**Known Issues**

  • Bitmovin Collector`<= 2.14.0` is incompatible with Bitmovin Player `v3.35.0` and `v3.34.0` (crashes during startup), this issue is fixed with Bitmovin Collector `v2.15.0` or Bitmovin Player `v3.35.1`




## 2.11.0

Released 2022-08-30

**Added**

  • option to pass progressive URL via `progUrl` to `BitmovinAnalyticsConfig` and `SourceMetadata`




## 2.10.0

Released 2022-07-06

**Changed**

  • updates dependency of ExoPlayer to`2.18.x`

**Fixed**

  • fixed issue where late attaching of collector caused `videoStartupTime = 0`




## 2.9.0

Released 2022-06-28

**Added**

  • Add exception message to error_message field of sample for ExoPlayer collector




## 2.8.0

Released 2022-06-09

**Added**

  • `getUserId` to adapter API to retrieve the user ID

  • BitmovinPlayer: if `playerKey` is not set on `BitmovinAnalyticsConfig` value from the player is used

**Removed**

  • Heartbeat interval duration configuration on `BitmovinAnalyticsConfig`




## 2.7.1

Released 2022-04-13

**Fixed**

  • screen size detection for devices with a logical display `density != 1`




## 2.7.0

Released 2022-04-11

**Changed**

  • updates dependency of ExoPlayer to `>=2.17.0 & <2.18.0`

**Removed**

  • Support for SimpleExoPlayer class




## 2.6.2

Released 2022-04-11

**Fixed**

  • Wrong transitions from `startup` state to `paused` state




## 2.6.1

Released 2022-03-22

**Changed**

  • bitmovin player dependency update and internal refactorings

  • improved exception handing on error detail tracking




## 2.6.0

Released 2022-01-24

**Added**

  • `customData` fields 26-30




## 2.5.0

Released 2021-12-15

**Added**

  • Detection of FireOS devices




## 2.4.0

Released 2021-11-04

**Added**

  • `version` property on Collector classes




## 2.3.0

Released 2021-10-27

**Added**

  • `customData` fields 8 to 25




## 2.2.0

Released 2021-10-01

**Added**

  • Error detail tracking feature

  • `castTech` field

**Removed**

  • Unintended public methods from Collector classes

**Fixed**

  • BitmovinPlayerCollector didn't report some metrics with sub-second granularity

  • ExoPlayerCollector used wrong field to track audioBitrate

  • ExoPlayerCollector reported `qualitychange` events although the quality did not change




## 2.1.0

Released 2021-06-22

**Added**

  • Option to generate randomized userId value




## 2.0.0

Released 2021-05-26

**Added**

  • Support for BitmovinPlayer `v3`

  • Support for ExoPlayer version `>= 2.12`