Engagement
Quality of experience
Fallback playback
Emitted as a
playbackFallback event once per fallback activation. Only fires when a fallback URL was provided via FeedInput. When this event fires, the player does not enter the error state — it resumes playback from the fallback URL.
Feed session
Ads
Context
Collected once per view and attached automatically.
All of these metrics are queryable through the metrics API, which supports aggregation, dimension breakdowns, timeseries, filtering, and raw data export.
Custom dimensions
Pass up to 5 string dimensions at SDK init. They attach to everyviewEnd event and become queryable as dimensions in the metrics API.
- Swift
- Kotlin
- Flutter
- React Native
- Web
custom_1 through custom_5. Other keys are silently dropped. Values are plain strings.
Custom dimensions are immutable after init. To change them (for example, after a user upgrades their subscription), create a new ShortKit instance.
clientAppName and clientAppVersion are also set at init and included in every viewEnd event. Use them to segment analytics by app version.
Content signals
contentSignal is the only event you trigger manually. Use it to send positive or negative signals back to the recommendation engine.
- Swift
- Kotlin
- Flutter
- React Native
- Web
contentId of the currently active video.
User identity
The SDK generates a persistent anonymous UUID by default. This ID is included in every event and used as theviewer_id dimension in analytics.
Call setUserId() to switch to identified mode. This links the anonymous device ID to your known user ID for identity resolution.
- Swift
- Kotlin
- Flutter
- React Native
- Web