Analytics Collector - iOS
Release notes for the deprecated v1 version of the Analytics Collector can be found here.
3.27.0
released 2026-07-20
Fixed
- missing
device_informationin Ad Samples
Added
- THEOplayer: SSAI ad metadata is mapped from the ad's customData for all ad integrations (requires THEOplayer 11.6.0+)
Changed
- SSAI engagement tracking (quartile level) is now always enabled for all players
Deprecated
ssaiEngagementTrackingEnabledin AnalyticsConfig is deprecated and ignored for all players, since SSAI engagement tracking is now always enabled
3.26.1
released 2026-07-01
Fixed
- missing
device_informationin Ad Samples
3.26.0
released 2026-06-24
Changed
- THEOplayer: SSAI Ads are automatically tracked, calls to the public SSAI API will be ignored
Added
- New public objects AdBreakMetadata, AdMetadata and AdQuartileMetadata
Deprecated
- SsaiAdBreakMetadata, SsaiAdMetadata and SsaiAdQuartileMetadata Objects are superseeded by AdBreakMetadata, AdMetadata and AdQuartileMetadata
- THEOplayer: Calls of the SSAI API are ignored, since we moved to automatic tracking of SSAI events
Fixed
- THEOplayer: THEOplayer.stop() is now handled properly
- SSAI Ad Samples track client time
3.25.1
released 2026-05-27
Fixed
- missing
ad_pod_positionin SSAI tracking
3.25.0
released 2026-05-20
Added
- SSAI Ad Break Metadata
SsaiAdBreakMetadata.expectedPaidAdsandSsaiAdBreakMetadata.expectedSlatesto track what is expected to show in an ad breakSsaiAdMetadata.isSlateto differentiate slates from paid adsSsaiAdMetadata.durationto track the expected length of the ad
Changed
- Internal improvements
3.24.0
released 2026-04-29
Fixed
- Theoplayer: Incorrectly tagged seeking samples during live streams
Changed
- Videostartuptime tracking with preroll ads for BitmovinPlayer
- THEOplayer:
- supports both THEOplayer v10 (>= 10.7) and v11 (>= 11.0).
- removed dependency to THEOplayerSDK-core on BitmovinAnalyticsCollector/THEOplayer subspec. (effecting cocoapods customers)
Removed
- THEOplayer:
- v10 and lower: reporting of THEOplayerSDK.Metrics.droppedVideoFrames - unable due to renaming in v11
- Removed
AmazonIVSCollector
3.23.1
released 2026-04-08
Fixed
- THEOplayer: In some cases startup samples were not reported after client side pre-roll ads
3.23.0
released 2026-03-10
Added
- THEOplayer: Added client side ad tracking.
Fixed
- send out AdEventData on collector detach/deinit when ad is active
Deprecated
- CocoaPods publishing: new releases will be marked as deprecated in favor of our SPM-published releases. Checkout our blog post for full details
3.22.1
released 2026-03-05
Fixed
- THEOplayer: quality detection when collector is late attached, subtitle tracking
Added
- THEOplayer: Network request tracking for Error details
3.22.0
released 2026-02-24
Fixed
- Bug that caused THEOplayer SDK to be pulled for other collectors
3.21.2
released 2026-02-19
Added
- Support for additional customData fields 51-60
3.21.1
released 2026-02-17
Changed
- Improved
programChangetracking
3.21.0
released 2026-02-13
Added
- New collector for THEOplayer
- New
programChangeAPI method to update SourceMetadata without changing the underlying stream - Autoplay tracking for Bitmovin Player and THEOplayer
.mov(progressive) and.m3u(hls) streams added to stream type detection
3.20.0
released 2026-01-19
Added
- Bitmovin Player: collect download speed metrics for video segments on iOS 18, tvOS 18, and visionOS 2 and above from player version
3.105.0+, enabling the visualization of the average download speed in the dashboard session chart.
Changed
- Bitmovin Player: Video quality changes and metrics are now detected using the playback quality instead of the download quality from player version
3.105.0+. - Seeking while the player is paused no longer produces a seeking sample. Instead the seeked video time is send with the pause sample
Fixed
- Bug that caused final playing sample to not be sent on video reload
3.19.0
released 2025-11-27
Added
- AVPlayer: Collect more details on errors
Fixed
- AVPlayer: Race condition caused duplicate samples on rare occasions
- Some fields were not properly tracked on detach/attach
3.18.1
released 2025-11-17
Fixed
- Runtime crashes on Player errors and Source errors when using Bitmovin Player version <3.84.0
3.18.0
released 2025-11-13
Changed
- Xcode 16.4 and Swift 5.10 or newer is required to integrate the SDK
Fixed
- Error details were not sent after source changes
Added
- Bitmovin Player: Collect more details on errors
Known Issues
- This version causes crashes on Player errors and Source errors when using Bitmovin Player version <3.84.0
This is fixed in Collector version 3.18.1
3.17.0
released 2025-10-21
Added
- Tracking support for
SourceErrorEvents fired from dropped faulty sources when usingplayerConfig.tweaksConfig.sourceFailureAction = .drop
3.16.0
released 2025-10-13
Changed
- AVPlayer: improve isLive tracking using
playerItem.durationas an indicator
Fixed
- Race conditions around buffering caused playing samples to be send with buffer heartbeat
3.15.0
released 2025-09-16
Added
- New API to transform errors and mark them with severity CRITICAL (default) or INFO. Available on the AnalyticsConfig.errorTransformerCallback . See how to modify error data for more information.
3.14.0
released 2025-07-28
Changed
- renamed state
startupFailuretovideoStartFailed - add duration value when the video startup failed
3.13.0
released 2025-07-08
Added
.toBuilder()on SourceMetadata and DefaultMetadata to instantiate its Builder with values pre-filled
Fixed
.apply(customData: for:)(for BitmovinPlayerCollector) and .customData (set) didn't copy existing values of SourceMetadata
3.12.2
released 2025-06-12
Changed
- Improved concurrent access when creating event data
3.12.1
released 2025-03-20
Fixed
- signature validation failure for
xcframeworkbinaries
3.12.0
released 2025-02-10
Added
- Additional customData fields 31 to 50
Known Issues
- Invalid signature of distributed
xcframeworkfiles due to revoked certificate. See this post for details.
3.11.1
released 2025-01-28
Removed
- additional customData fields 31 to 50 that broke binary compatibility
Known Issues
- Invalid signature of distributed
xcframeworkfiles due to revoked certificate. See this post for details.
3.11.0
released 2025-01-28
Added
- additional customData fields 31 to 50
Known Issues
- breaks binary compatibility for Bitmovin Player Analytics Bundle
3.10.1
released 2025-01-27
Fixed
- Broken deferred license handling for Player / Analytics bundling
Known Issues
- Invalid signature of distributed
xcframeworkfiles due to revoked certificate. See this post for details.
3.10.0
released 2025-01-21
Added
- Tracking of Error Details including HttpRequest tracking for
BitmovinPlayerCollector - The amount of samples send within one session is now limited to 1000 samples
- Signature for all
xcframeworkbinaries to allow verification of the identity of our binaries
Changed
- Bitmovin Player: Reporting value of errorCode of SourceErrorEvent and PlayerErrorEvent instead of code for reporting error information
Known Issues
- Invalid signature of distributed
xcframeworkfiles due to revoked certificate. See this post for details.
3.9.0
released 2024-10-21
Added
- Server Side Ad Tracking (SSAI): new field
ssaiEngagementTrackingEnabledonAnalyticsConfigwhich controls tracking of ssai engagement information
Fixed
- issue with executing block on main thread in sync that may increase tracked startupTime
Changed
- The
BitmovinAnalyticsCollectoris now published to the CocoaPods trunk. New updates will be only published there.
3.8.1
released 2024-09-12
Fixed
ad_indexwas not assigned on first sample of an SSAI ad
3.8.0
released 2024-08-30
Added
- New API to report ssai ad quartiles
Changed
- Make properties on SsaiAdMetadata and SsaiAdBreakMetadata public
- Appended prefix BMA to objective-c class names of ssai classes
- Xcode 15.4 and Swift 5.10 or newer is required to integrate the SDK
Fixed
- The API doc upload when using latest version URL
3.7.0
released 2024-05-28
Added
- New Api available under
collector.ssaito provide ad metadata for server side inserted ads (SSAI)
3.6.2
released 2024-05-02
Fixed
- Bitmovin Player: do not crash app on internal race condition during pre roll ad
- supported video codec tracking was not reflected properly in the session
3.6.1
released 2024-03-22
Fixed
- Bitmovin Player: startup samples are not send when using pre-roll ads
- Bitmovin Player: skipping values of sequence_number when using ads.
3.6.0
released 2024-02-27
Added
- detection of hardware video decoding capabilities tracked in
supportedVideoCodecs
Changed
- Updated
AmavonIVSPlayerdependency to1.24.0for theAmazonIVSCollector
3.5.0
Added
released 2024-01-25
Added
- Privacy manifests for CoreCollector, BitmovinCollector, AVFoundationCollector, and AmazonIVSCollector frameworks
Fixed
- when switching sources during casting. play attempt failure may have occured
3.4.0
Released 2024-01-11
Added
supportedVideoCodecsalso tracks supportedAV1codec
Changed
- Updated
BitmovinPlayerCoredependency to3.51.0for theBitmovinCollector - Improved the values shown in
deviceType - visionOS support is now built with Xcode
15.2
3.3.1
Released 2023-12-12
Changed
- Xcode 14.2 or newer is required to integrate the collectors. This change was required to fix a Swift Concurrency backport issue on iOS 14.
Fixed
- Memory leaks due to usage of strong reference instead of weaks
3.3.0
Released 2023-11-17
Changed
- Updated
AmavonIVSPlayerdependency to1.23.0for theAmazonIVSCollector
3.2.1
Released 2023-11-15
Known Issues ❌
- Uncompilable. Please use
3.3.0
3.2.0
Released 2023-11-15
Known Issues ❌
- Uncompilable. Please use
3.3.0
Added
- Support for visionOS on Apple Vision Pro for the
BitmovinCollectorandAVFoundationCollector- The following features are currently unsupported: Google IMA SDK integration, Google Cast SDK integration
- Using CocoaPods in a visionOS project is currently not possible due to a known CocoaPods issue
Changed
- Updated
BitmovinPlayerCoredependency to3.48.0for theBitmovinCollector - Updated
AmavonIVSPlayerdependency to1.22.0for theAmazonIVSCollector
Fixed
- Fixed valid sessions where
video_startuptimeis0
3.1.2
Released 2023-09-25
Fixed
- BitmovinPlayer: Make player version tracking more reliable
3.1.1
Released 2023-08-30
Fixed
- AVPlayer: Buffering Events and some seeking events are not tracked.
3.1.0
Released 2023-08-17
Added
- AVPlayer:
droppedFramesare now collected viaAVPlayerItemAccessLogEvent.numberOfDroppedFrames
Fixed
- AVPlayer: fixed negative
pausedvalues when apipause() -> seek() -> play()was called - old constructor interpreted
BitmovinAnalyticsConfig.adswrong - value of
experimentNamewas written tocustomData30
Known Issue
- AVPlayer: Buffering Events and some seeking events are not tracked. Issue is fixed with
3.1.1
3.0.0
Released 2023-07-31
This major version contains breaking changes. Follow this migration guide if you want to upgrade from v2
Added
- New Protocols and Factories for Collectors
BitmvoinPlayerCollectorApiAVPlayerCollectorApiAmazonIVSPlayerCollectorApi
Changed
- The collectors (
CoreCollector,BitmovinCollector,AVFoundationCollector,AmazonIVSCollector) are now now shipped asXCFramework - The source code is removed from the public repository
BitmovinAnalyticsConfigis split up toAnalyticsConfig,DefaultMetadataandSourceMetadata- BitmovinCollector:
- Depending on
BitmovinPlayerCore(3.41.1) instead ofBitmovinPlayernow - It is no longer possible to attach multiple
BitmovinPlayerCollector's to oneBitmovinPlayerinstance. When this use-case is detected, an assertion will be raised.
- Depending on
- AmazonIVSCollector:
- depending on AmazonIVSPlayer
1.20.0 AmazonIVSCollectorwas renamed toAmazonIVSPlayerCollectorto be consistent with the other collectors
- depending on AmazonIVSPlayer
Fixed
- set current position for videoTimeStart and videoTimeEnd when customData event is sent
Deprecated
- Directly creating collectors by using the constructors e.g.
let collector = AVPlayerCollector(config: config)
Known Issue
- AVPlayer: Buffering Events and some seeking events are not tracked. Issue is fixed with
3.1.1
2.12.2
Released 2023-08-31
Fixed
- AVPlayer: Buffering Events and some seeking events are not tracked.
2.12.1
Released 2023-07-27
Fixed
- AVPlayer: does not track that source is live stream automatically
Known Issue
- AVPlayer: Buffering Events and some seeking events are not tracked. Issue is fixed with
2.12.2
2.12.0
Released 2023-05-16
Added
BitmovinAnalyticsConfig.longTermRetryEnabledwith default value offalse. When set totrue, analytics events that have failed to be sent are cached in a persistent way and re-sent as soon as there is network again
Fixed
- AmazonIVSCollector:
isLivetracking didn't work - AVPlayerCollector: Heartbeat wasn’t correctly triggered every 59 seconds.
Removed
- remove support for building for
BITCODE
Known Issue
- AVPlayer: Buffering Events and some seeking events are not tracked. Issue is fixed with
2.12.2
2.11.1
Released 2023-07-03
Fixed
- BitmovinPlayerCollector: fixed crashes because of unsafe access on unattached player source
Known Issue
- AVPlayer: Buffering Events and some seeking events are not tracked. Issue is fixed with
2.12.2
2.11.0
Released 2023-04-21
Removed
- removed support for iOS/tvOS 12.0, 13.0
Changed
- update dependency to AmazonIVSPlayer to 1.18.0
Known Issue
- AVPlayer: Buffering Events and some seeking events are not tracked. Issue is fixed with
2.12.2
2.11.0-beta.1
Released 2023-03-30
Added
- New Amazon IVS adapter
- example view with Amazon IVS player
- heartbeat now checks if player is still playing before continuing with heartbeat
Removed
- MIT License
2.10.2
Released 2023-08-30
Fixed
- AVPlayer: Buffering Events and some seeking events are not tracked.
2.10.1
Released 2023-07-27
Fixed
- AVPlayer: does not track that source is live stream automatically
Known Issue
- AVPlayer: Buffering Events and some seeking events are not tracked. Issue is fixed with
2.10.2
2.10.0
Released 2023-01-09
Added
- added tracking of ad samples
Changed
- improved error handling for license call handler and event data decoration
Fixed
- BitmovinPlayer: casting information was set in sample before casting
Known Issue
- AVPlayer: Buffering Events and some seeking events are not tracked. Issue is fixed with
2.10.2
2.9.4
Released 2022-12-12
Fixed
- AVPlayer: fake seeks with less than 300ms caused by timeJumpedNotifications
Known Issue
- AVPlayer: Buffering Events and some seeking events are not tracked. Issue is fixed with
2.10.2
2.9.3
Released 2022-12-05
Fixed
- issues with SPM because of
@testable importin non-test file
2.9.2
Released 2022-06-08
Removed
- Heartbeat interval duration configuration on BitmovinAnalyticsConfig
Fixed
- BitmovinPlayer: tracking of
seekingevents
2.9.1
Released 2022-05-23
Added
@objcannotations to allow embedding the Collector in Objective-C Applications
2.9.0
Released 2022-05-18
Added
- new method
getUserIdon all collectors to get useduserId - AVPlayer: Download Speed is now tracked
- AVPlayer: Number of downloaded segments is now tracked
Changed
- AVPlayer: reworked tracking of video bitrate
Fixed
- AVPlayer: wrongly track multiple seek events instead of one event for progressive sources
2.8.0-beta1
Released 2022-04-05
Added
- new AVPlayer adapter with deployment_target
iOS:12andtvOS:12 - Swift Package Manager support
Changed
- strict protocol
Collectoras public API for player collectors - during
pausedstate we do not trackqualityChange,seekingandbuffering - reworked tracking of
seeking
2.8.0
Released 2022-04-21
Fixed
- AVPlayer: collector caused the app to freeze when drm playback is used
- AVPlayer: no startup was tracked if collector was attached after play
2.7.0
Released 2022-03-23
Added
- improved Device information tracking
Fixed
- tracking of analytics_version don't use
CFBundleShortVersionString - fixed typo in compiler config
ENABLE_BITCODE
2.6.0
Released 2022-01-19
Added
- additional customData fields 26 to 30
2.5.0
Released 2022-01-14
Changed
- startup time tracking when autoplay is enabled starts from SourceLoad event
- transition to playing state if collector is attached after player started playing
2.4.0
Released 2021-11-05
Added
- version property on Collector classes
Changed
- version is now hard-coded into source and not taken from CFBundleShortVersionString
2.3.0
Released 2021-10-27
Added
- Additional customData fields 8 to 25
Changed
- Collector will send one final sample on destroy if player is playing
2.2.0
Released 2021-08-02
Added
- castTech payload field to differentiate between Airplay and GoogleCast
2.1.0
Released 2021-06-21
Added
- setCustomData and setCustomDataOnce methods
- randomizedUserId configuration property
2.0.0
Released 2021-05-26
Added
- Support for BitmovinPlayer v3
Updated 9 days ago