Analytics Collector - Android

Release notes for the deprecated v1 version of the Analytics Collector can be found here.


3.12.0

Released 2024-12-02

Fixed

  • ErrorDetails: Exception name wasn't part of the error detail stacktrace

Changed

  • ErrorDetails: Use exception information as fallback in case error message is not available

3.11.0

Released 2024-11-28

Fixed

  • Don't cut off Bitmovin Player Decoding Error Details

Changed

  • Increased targetSdkVersion and compileSdkVersion to 35 (Android 15)
  • Upgraded bitmovin player to 3.94.0, amazon ivs player to 1.34.0 and media3-exoplayer to 1.5.0

3.10.1

Released 2024-11-05

Fixed

  • Detaching of the collector could cause crashes in very rare events due to a race condition. (Improvement of fix provided with3.9.1)

3.10.0

Released 2024-10-10

This version includes a behavioural change of SSAI Engagement tracking, which is now by default off.

Changed

  • Tracking of SSAI Engagement (quartile info) is off by default and can be enabled via the new ssaiEngagementTrackingEnabled config in AnalyticsConfig.

3.9.3

Released 2024-10-03

Fixed

  • General stability and data quality improvements

3.9.2

Released 2024-09-26

Fixed

  • Bitmovin Player: Binary incompatibility that was introduced with 3.9.0 caused a crash on startup

3.9.1

Released 2024-09-25

Fixed

  • Detaching of the collector could cause crashes in very rare events due to a race condition
  • Improve performance around Android System calls for UserId retrieval

Known Issues

  • This version is incompatible with bitmovin player and leads to a crash on startup. Version3.9.2 fixes the issue.

3.9.0

Released 2024-09-12

This version changes the logging behaviour of the collector. The logging level can be configured through the logLevel property in the AnalyticsConfig class, as part of the Collector setup.

Default log level is LogLevel.ERROR, which means that only Errors are logged. If fine grained logging is needed, use LogLevel.DEBUG.

Added

  • SDK Logging Level can now be configured through AnalyticsConfig

Known Issues

  • This version is incompatible with bitmovin player and leads to a crash on startup. Version3.9.2 fixes the issue.

3.8.1

Released 2024-09-10

Fixed

  • All players: Send out sample on detaching of collector to improve data quality

3.8.0

Released 2024-08-28

Added

  • New API to report ssai ad quartiles

Changed

  • Changed appcompat version from 1.7.0 to 1.6.1 to have same version as bitmovin player

3.7.1

Released 2024-08-14

Fixed

  • Enhanced source format and source URL detection for Exoplayer and Media3 ExoPlayer
  • Race condition that could cause a crash in case the ssai API is called before attaching the collector to the player

3.7.0

Released 2024-08-01

Fixed

  • Media3 ExoPlayer and ExoPlayer: Potential crashes in rare events when DownloadSpeedMeter reports Infinity or NaN values which caused invalid JSON

Added

  • Added download speed metrics tracking to the Bitmovin Player Collector

Changed

  • Removed logging of every downloaded file to reduce noise in logs

3.6.0

Released 2024-07-22

Added

  • Adding auto play detection for the Bitmovin Player

Changed

  • Upgraded gson from 2.10.1 to 2.11.0
  • Upgraded kotlinx-coroutines from 1.8.0 to 1.8.1
  • Upgraded appcompat from 1.6.1 to 1.7.0

3.5.1

Released 2024-06-13

Fixed

  • Policy violations when using StrictMode.detectDiskWrites(), StrictMode.detectDiskReads()
    and StrictMode.detectCustomSlowCalls(), due to mainScope usage for persistent event queue

3.5.0

Released 2024-05-28

Added

  • New Api available under collector.ssai to provide ad metadata for server side inserted ads (SSAI)

3.4.0

Released 2024-05-06

Changed

  • Increased minimum required compileSdk to 34
  • Upgraded kotlin version to 1.9.23
  • Upgraded kotlinx-coroutines-android to 1.8.0
  • Updated bitmovin player (v3.68.0), media3-exoplayer (v1.3.1) and amazon-ivs (v1.27.0)

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 to2.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