Analytics Collector - iOS

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

3.9.0

released 2024-10-21

Added

  • Server Side Ad Tracking (SSAI): new field ssaiEngagementTrackingEnabled on AnalyticsConfig which controls tracking of ssai engagement information

Fixed

  • issue with executing block on main thread in sync that may increase tracked startupTime

Changed

  • The BitmovinAnalyticsCollector is now published to the CocoaPods trunk. New updates will be only published there.


3.8.1

released 2024-09-12

Fixed

  • ad_index was 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.ssai to 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 AmavonIVSPlayer dependency to 1.24.0 for the AmazonIVSCollector

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

  • supportedVideoCodecs also tracks supported AV1 codec

Changed

  • Updated BitmovinPlayerCore dependency to 3.51.0 for the BitmovinCollector
  • 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 AmavonIVSPlayer dependency to 1.23.0 for the AmazonIVSCollector

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 BitmovinCollector and AVFoundationCollector
    • 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 BitmovinPlayerCore dependency to 3.48.0 for the BitmovinCollector
  • Updated AmavonIVSPlayer dependency to 1.22.0 for the AmazonIVSCollector

Fixed

  • Fixed valid sessions where video_startuptime is 0

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: droppedFrames are now collected via AVPlayerItemAccessLogEvent.numberOfDroppedFrames

Fixed

  • AVPlayer: fixed negative paused values when api pause() -> seek() -> play() was called
  • old constructor interpreted BitmovinAnalyticsConfig.ads wrong
  • value of experimentName was written to customData30

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
    • BitmvoinPlayerCollectorApi
    • AVPlayerCollectorApi
    • AmazonIVSPlayerCollectorApi

Changed

  • The collectors (CoreCollector, BitmovinCollector, AVFoundationCollector, AmazonIVSCollector) are now now shipped as XCFramework
  • The source code is removed from the public repository
  • BitmovinAnalyticsConfig is split up to AnalyticsConfig, DefaultMetadata and SourceMetadata
  • BitmovinCollector:
    • Depending on BitmovinPlayerCore (3.41.1) instead of BitmovinPlayer now
    • It is no longer possible to attach multiple BitmovinPlayerCollector's to one BitmovinPlayer instance. When this use-case is detected, an assertion will be raised.
  • AmazonIVSCollector:
    • depending on AmazonIVSPlayer 1.20.0
    • AmazonIVSCollector was renamed to AmazonIVSPlayerCollector to be consistent with the other collectors

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.longTermRetryEnabled with default value of false. When set to true, 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: isLive tracking 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 import in non-test file

2.9.2

Released 2022-06-08

Removed

  • Heartbeat interval duration configuration on BitmovinAnalyticsConfig

Fixed

  • BitmovinPlayer: tracking of seeking events

2.9.1

Released 2022-05-23

Added

  • @objc annotations to allow embedding the Collector in Objective-C Applications

2.9.0

Released 2022-05-18

Added

  • new method getUserId on all collectors to get used userId
  • 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:12 and tvOS:12
  • Swift Package Manager support

Changed

  • strict protocol Collector as public API for player collectors
  • during paused state we do not track qualityChange, seeking and buffering
  • 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