Skip to content

Standard SRG SSR analytics

Pre-release
Pre-release
Compare
Choose a tag to compare
@defagos defagos released this 24 Jul 11:34
· 363 commits to main since this release
0.5.0
2989188

This Pillarbox release implements standard SRG SSR streaming analytics. It also provides the necessary toolset to measure page views and events in SRG SSR applications.

This release also adds support for playback speed controls and makes it possible to promote a single instance for system integration in the context of multi-instance player experiences.

Analytics must still be validated but otherwise Pillarbox can be considered suitable for production.

Standard SRG SSR analytics

Standard SRG SSR analytics (comScore / Mediapulse and Commanders Act / Mapp) have been added:

  • Introduce Analytics singleton to manage analytics setup as well as page view and event tracking.
  • Implement standard ComScoreTracker and CommandersAct stream trackers. These trackers are automatically associated with URN-based items played using CoreBusiness but can also be integrated with other data sources if needed.
  • Provide helpers for user interface tracking:
    • PageViewTracking makes it possible to associate page view analytics metadata with view controllers in UIKit contexts.
    • PageViewContainerTracking can be used to integrate custom view controllers with the page view analytics engine. Integration with standard UIKit containers (UINavigationController, UITabBarController, etc.) is provided.
    • Modifiers for declarative view tracking in SwiftUI contexts.
  • Provide helpers for event tracking.

Playback speed

Playback speed support has been added to the Player. Applications are responsible of displaying associated controls however they like:

  • Add APIs to set a desired playback speed, retrieve the available speed range and the currently effective playback speed.
  • Implement support for livestreams, including dynamic speed adjustments for DVR.
  • Support playback speed in playlists.

Multi-instance support

  • Several instances have always been supported by Pillarbox but this release adds APIs to promote one instance for integration into the Control Center and with AirPlay.

Miscellaneous improvements

  • A BufferTracker has been introduced to to be notified about content buffering, in a way similar to ProgressTracker.
  • The LayoutReader view has been replaced by a View.readLayout(into:) modifier which is more convenient to use.
  • The InteractionView detecting any kind of user interaction has been removed. Use a combination of gesture recognizers to detect user interaction and report them to a VisibilityTracker instead.
  • Improve seek smoothness to match the native system user experience.
  • Add muted playback support.
  • Provide presentation size information, which can be used to determine the content aspect ratio and adjust the player layout accordingly.
  • Add overlay support to SystemVideoView.
  • Ensure proper support for Xcode 15 and iOS / iPadOS / tvOS 17 beta.
  • Automatically enable body counters display in Xcode previews.

Demo improvements and fixes

  • Improve slider appearance and behavior.
  • Add ability to play YouTube content for tests purposes.
  • Add playback speed support.
  • Add full-screen support to the playlist demo.
  • Add blurred layout example.
  • Add demo descriptions.
  • Add more sample streams.
  • Automatically resume playback when returning from background in selected demos.
  • Fix server selection.

Fixes

  • Rename Environment as Server to avoid frequent conflicts with SwiftUI Environment.
  • Support for iPad applications run on Silicon Macs has been restored.

What's Changed

New Contributors

Full Changelog: 0.4.0...0.5.0