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:
(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.
For DELETE time ranges, an initial
placementInformation of type
Mode.DELETE is created and resolved by the corresponding
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.
For REPLACE time ranges, two initial
placementInformations are created, one
Mode.DELETE and one
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 resolvers
A 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.
DefaultMediaPlayer creates a list of initial
PlacementInformations based on the ad signaling mode and ad metadata to be resolved by the
New ad signaling mode: Custom time ranges
Ads are placed based on Time Range data from an external source (such as a JSON file).