Ad Policy
Ad policies are rule sets that can be enforced while handling seek events with media containing adverts. The following are the rules and behaviours defined.
PlaybackFastForwardRule
Ad playback policy applicable with fast forward operation.
Rule | Description |
---|---|
TRICK_FW_PLAY_ALL | It enforces the rule that the player will replay all the ad breaks that were leaped over by the user during trick mode fast forward operation. This is the default rule. |
TRICK_FW_PLAY_FIRST | It enforces the rule that the player will replay only the first ad break that was leaped over by the user during trick mode fast forward operation. |
TRICK_FW_PLAY_LAST | It enforces the rule that the player will replay only the last ad break that was leaped over by the user during trick mode fast forward operation. |
TRICK_FW_SKIP_ALL | It enforces the rule that the player will skip all the ad breaks that were leaped over by the user during trick mode fast forward operation. |
PlaybackRewindRule
Ad playback policy applicable with rewind operation.
Rule | Description |
---|---|
TRICK_RW_PLAY_ALL | It enforces the rule that the player will replay all the ad breaks that were leaped over by the user during trick mode rewind operation. This is the default rule. |
TRICK_RW_PLAY_FIRST | It enforces the rule that the player will replay only the first ad break that was leaped over by the user during trick mode rewind operation. |
TRICK_RW_PLAY_LAST | It enforces the rule that the player will replay only the last ad break that was leaped over by the user during trick mode rewind operation. |
TRICK_RW_SKIP_ALL | It enforces the rule that the player will skip all the ad breaks that were leaped over by the user during trick mode rewind operation. |
PlaybackInterruptedRule
Ad playback policy applicable with playback interruption.
Rule | Description |
---|---|
INTERRUPT_SKIP | It enforces the rule that the player will skip the ad break that was interrupted e.g. phone call, etc. |
INTERRUPT_RESTART | It enforces the rule that the player will replay the ad break that was interrupted e.g. phone call, etc. |
INTERRUPT_RESUME | It enforces the rule that the player will resume the ad break that was interrupted e.g. phone call, etc. This is the default rule. |
PlaybackAutoSeekRule
Ad playback policy applicable with playback starting from a initial playback position.
Rule | Description |
---|---|
AUTO_SEEK_SKIP_ALL | It enforces the rule that the player will start the content without forcing the user to watch any ads that are available from the start of the content to the bookmarked time. |
AUTO_SEEK_PLAY_PREROLL | It enforces the rule that the player will force the user to watch the PREROLL ads, while any MIDROLL ads, that are available from the start of the content to the bookmarked time, will be skipped. |
AUTO_SEEK_PLAY_MIDROLL | It enforces the rule that the player will force a user to watch at least one MIDROLL ad, while the PREROLL ads will be skipped. Whether the user has to watch all triggered MIDROLL ads, or only one, is determined by the PlaybackFastForwardRule policy value. |
AUTO_SEEK_PLAY_ALL | It enforces the rule that the player will force a user to watch the PREROLL ads, then one or more MIDROLL ads. Whether the user has to watch all triggered MIDROLL ads, or only one, is determined by the PlaybackFastForwardRule policy value. This is the default rule. |
PlaybackRepeatedRule
Ad playback policy applicable with repeated ad playback in a single playback session.
Rule | Description |
---|---|
REPEAT_ALWAYS_PLAY | It enforces the rule that the player will repeatedly play the ad break, with a given ID, in a single playback session whenever the ad break is triggered. |
REPEAT_PLAY_ONCE | It enforces the rule that the player will play the ad break, with a given ID, only once in a single playback session whenever the ad break is triggered. This is the default rule. |
AdPolicy with SSAI
The ad policy rules can be set while initialising YoSession.
// create YospaceAdsPlaybackPolicy
val playbackPolicy: AdPlaybackPolicy = YospaceAdsPlaybackPolicy()
playbackPolicy.setAdPlaybackRules(
AdPlaybackPolicy.TRICK_FW_PLAY_ALL,
AdPlaybackPolicy.TRICK_RW_PLAY_ALL,
AdPlaybackPolicy.INTERRUPT_RESUME,
AdPlaybackPolicy.AUTO_SEEK_PLAY_ALL,
AdPlaybackPolicy.REPEAT_PLAY_ONCE
)
// Create YospaceAdsSession
val yoPlaybackMode = playbackMode?.toYospaceSessionPlaybackMode()
val initData = YospaceSessionInitializationData(
contentURL,
yoPlaybackMode,
isValidationRequired = true
)
val yospaceAdsSession = YospaceAdsPlayerFactory.createYospaceAdsSession(initData)
// initialise ad session with the AdPlaybackPolicy for VOD
yospaceAdsSession.initializeVODSession() { sessionInitResult ->
when (sessionInitResult) {
is Result.Success -> {
val playbackURL = sessionInitResult.value.url
// create ad player for playback
val yoPlayer = YospaceAdsPlayerFactory.createYospaceAdsPlayer(
player,
playbackPolicy,
yospaceAdsSession
)
}
is Result.Failure -> {
val error = sessionInitResult.value
// handle error
}
}
}
// initialise ad session with the AdPlaybackPolicy for Live
val result = yospaceAdsSession.computePlaybackURLForLiveSession { _, error ->
// handle error
}) {
is Result.Success -> {
val playbackURL = result.value.url
// create ad player for playback
val yoPlayer = YospaceAdsPlayerFactory.createYospaceAdsPlayer(
player,
playbackPolicy,
yospaceAdsSession
)
}
is Result.Failure -> {
val error = result.value
// handle error
}
}
Yospace Fallback Handling
yospaceAdsSession.initializeLiveSession()
and yospaceAdsSession.initializeVODSession()
methods resolve and method resolves with PlaybackUrl, SessionStatus and Reason for Failure which provides detailed information on each sessionState.
yospaceSessionState | Status | Playback Url | Reason |
---|---|---|---|
INITIALISED | success | ${ContentURl with yospace} | NA |
NO_ANALYTICS | fallback | ${fallback url from yospace} | Yospace Session initialization Failed with Status : fallback and errorCode : 0 |
FAILED | error | ${origin url} | Yospace Session initialization Failed with Status : error and errorCode : -1 |
yospaceAdsSession.initializeVODSession() { sessionInitResult ->
when (sessionInitResult) {
is Result.Success -> {
val playbackURL = sessionInitResult.value.url
// create ad player for playback
val yoPlayer = YospaceAdsPlayerFactory.createYospaceAdsPlayer(
player,
playbackPolicy,
yospaceAdsSession
)
// This can be used for reporting yospace status and reason for fallback/error.
val playbackURL = sessionInitResult.value.url
val sessionState = sessionInitResult.value.sessionState
val reason = sessionInitResult.value.reason
}
is Result.Failure -> {
val error = sessionInitResult.value
// handle error
}
}
}