Ad resolving and ad loading may cause an unacceptable delay for a user waiting for playback to start. The Lazy Ad Loading and Lazy Ad Resolving features can reduce this startup delay. Lazy Ad Resolving has changed significantly in the 3.0 version. In Lazy Ad loading prior to 3.0, ad resolution was broken into two steps, resolving just pre-rolls ads prior to the PREPARED status, and mid-rolls and post-rolls after the PREPARED status. This has changed and ad breaks are now resolved at a specified interval prior to the position of the ad break.
Basic ad resolving and loading process:
The player uses the URLs in the manifest to obtain the ad content (creatives), ensures that the ad content is in a format that TVSDK can play, and TVSDK places the ads on the timeline. This basic process of resolving and loading ads can cause an unacceptably long delay for a user waiting to play their content, especially if the manifest contains several ad URLs.
Lazy Ad Loading:
This feature improves upon the basic process by putting the player into the PREPARED status before all ads are loaded.
Lazy Ad Resolving:
TVSDK downloads the playlist.
TVSDK resolves and loads any pre-roll ads, moves the player into the PREPARED status, and content playback begins.
TVSDK resolves and each of the remaining ad breaks individually based on the following calculation:
AdvertisingMetadata::getDelayAdLoadingTolerance() + PlayBufferTime::playBufferTime + the value defined in EXT-X-TARGETDURATION
By default, for content with a 6 second Target duration, this will be 5.0 + 30.0 + 6.0 seconds (41 seconds)
If an ad break occurs within 10 seconds of the start position, it will get resolved along with pre-roll ads prior to the PREPARED status.
Factors to consider with Lazy Ad Resolving: