Package-level declarations
Types
Link copied to clipboard
Terminal AdEventListener that measures how much of each ad break is actually watched, across single ads and multi-ad pods.
Link copied to clipboard
object AdFrequencyControl
Process-level AFC policy owner. One global counter shared across all playbacks: stopping one playback and starting another preserves the accumulated consumption.
Link copied to clipboard
data class AdFrequencyControlConfiguration(val enable: Boolean = false, val minimumContentConsumptionMs: Long, val adBreakExposureThreshold: Double = 0.66, val allowFirstOpportunity: Boolean = true)
Policy configuration for Ad Frequency Control (AFC).
Link copied to clipboard
interface AdFrequencyEvent
Value-only events used to update AFC state. Single global counter across all playbacks.
Link copied to clipboard
class AFCPlaybackSessionManager(player: AdComposedPlayer, val configuration: AdFrequencyControlConfiguration = AdFrequencyControlConfiguration())
Creates and owns the AFC trackers for one playback session:
Link copied to clipboard
class ContentConsumptionTracker(player: AdComposedPlayer, clock: MonotonicClock = MonotonicClock.System, toleranceMultiplier: Double = DEFAULT_TOLERANCE_MULTIPLIER) : Player.Listener
Tracks valid main content consumption and publishes AdFrequencyEvent domain events.
Link copied to clipboard
Clock providing monotonically non-decreasing timestamps for content consumption validation.