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 with
3.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. Version
3.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. Version
3.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 from1.7.0
to1.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
from2.10.1
to2.11.0
- Upgraded
kotlinx-coroutines
from1.8.0
to1.8.1
- Upgraded
appcompat
from1.6.1
to1.7.0
3.5.1
Released 2024-06-13
Fixed
- Policy violations when using
StrictMode.detectDiskWrites()
,StrictMode.detectDiskReads()
andStrictMode.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 withdetectIncorrectContextUse()
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 to2.10.1
, kotlinx-coroutines-core to1.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
(was4.1
but we only support Android >=5.0
(API Level21
))
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 of4.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 version3.0.1
. - Crashes when used with Android Version below
5.0
despite specified minimum Android Version of4.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 of4.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 ofimplementation
- 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 of4.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 of4.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
and3.35.0
that would lead to aClassNotFoundException
when detecting the player version.
Known Issues
- Crashes when used with Android Version below
5.0
despite specified minimum Android Version of4.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 tov2.8.9
- Upgraded
androidx.appcompat
dependency tov1.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 Playerv3.35.0
andv3.34.0
(crashes during startup), this issue is fixed with Bitmovin Collectorv2.15.0
or Bitmovin Playerv3.35.1
- Crashes when used with Android Version below
5.0
despite specified minimum Android Version of4.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 Playerv3.35.0
andv3.34.0
(crashes during startup), this issue is fixed with Bitmovin Collectorv2.15.0
or Bitmovin Playerv3.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 Playerv3.35.0
andv3.34.0
(crashes during startup), this issue is fixed with Bitmovin Collectorv2.15.0
or Bitmovin Playerv3.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 Playerv3.35.0
andv3.34.0
(crashes during startup), this issue is fixed with Bitmovin Collectorv2.15.0
or Bitmovin Playerv3.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 Playerv3.35.0
andv3.34.0
(crashes during startup), this issue is fixed with Bitmovin Collectorv2.15.0
or Bitmovin Playerv3.35.1
2.11.0
Released 2022-08-30
Added
- option to pass progressive URL via
progUrl
toBitmovinAnalyticsConfig
andSourceMetadata
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 onBitmovinAnalyticsConfig
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 topaused
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
Updated 19 days ago