Custom time range operations
TVSDK supports the programmatic deleting and replacing of ad content in VOD streams.
The delete and replace feature extends the custom ad markers feature. Custom ad markers mark sections of the main content as ad-related content periods. In addition to marking these time ranges, you can also delete and replace time ranges.
Ad deletion and replacement is implemented with TimeRange elements that identify different types of time ranges in a VOD stream: mark, delete, and replace. For each of these custom time range types, you can perform corresponding operations, including deleting and replacing ad content.
For ad deletion and replacement, TVSDK uses the following custom time range operation modes:
- MARK (These were referred to as custom ad markers in previous versions of TVSDK). They mark the beginning and ending times for ads that are already placed into the VOD stream. When there are time range markers of type MARK in the stream, an initial placement of Mode.MARK is generated and resolved by the CustomAdMarkersContentResolver . No ads are inserted.
- DELETE For DELETE time ranges, an initial placementInformation of type Mode.DELETE is created and resolved by the corresponding DeleteContentResolver . ContentRemoval is a new timelineOperation that defines the ranges to be removed from the timeline. TVSDK uses removeByLocalTime from the Adobe Video Engine (AVE) API to facilitate that operation. If there are DELETE ranges and Adobe Primetime ad decisioning (previously known as Auditude) metadata, the ranges are deleted first, then the AuditudeResolver resolves ads using the normal Adobe Primetime ad decisioning workflow.
- REPLACE For REPLACE time ranges, two initial placementInformations are created, one Mode.DELETE and one Mode.REPLACE . The DeleteContentResolver deletes the time ranges first and then the AuditudeResolver inserts ads of the specified replaceDuration into the timeline. If no replaceDuration is specified, the server determines what to insert.
To support these custom time range operations, TVSDK provides the following:
- Multiple content resolversA stream can have multiple content resolvers based on the ad signaling mode and ad metadata. The behavior changes with different combinations of ad signaling modes and ad metadata.
- Multiple initial PlacementInformations The DefaultMediaPlayer creates a list of initial PlacementInformations based on the ad signaling mode and ad metadata to be resolved by the MediaPlayerClient .
- New ad signaling mode: Custom time rangesAds are placed based on Time Range data from an external source (such as a JSON file).