1. How ad scheduling works in EX.CO
The EX.CO video player has an integrated, machine-learning-based ad server. "Ad scheduling" is the set of controls that decide three things: when the player calls for an ad during a viewing session, where in the experience that ad appears (its "slot"), and how many ads can run during each slot. On top of that sit delivery rules that govern which demand competes, how often a given buyer can appear, and how the schedule changes by page or device.
Schedules are configured per player in the platform (under the player's Monetization settings) and can be overridden for specific pages, URLs, devices, or geographies. The standard ad interval is 15 seconds, which is the default, Google-compliant cadence for maintaining more content than ads.
2. Ad slots: where ads appear
A "slot" is a position in the session where the player can run one or more ads. EX.CO supports the following slot types.
Pre-roll
A video ad that plays before content upon player start. The intended experience is that an ad plays as soon as the player loads; if no ad is available, content starts immediately with no visible loader. If a viewer reaches content before an ad was served, the player can fetch a pre-roll while that content plays and run it at the next natural break.
Mid-roll
An ad that plays in between pieces of content, but not in the very first slot. Pre-roll and mid-roll are the two core in-content ("instream") slot types the player reports on.
Breaking ads
A content-independent schedule: instead of tying ads only to the start or in-between pieces of video content, the player calls for an ad on a repeating interval throughout the session, regardless of when the content ends. The interval is configurable (15 seconds is the standard cadence). This maximises the number of monetisable opportunities, especially in long or continuous sessions.
Length-based breaking ads: a newer refinement in which the breaking-ad interval adapts to content length: videos longer than a configured duration threshold follow a custom interval, while shorter videos use the default interval.
Teasers ("Keep Watching")
A playlist experience that shows short content previews and gives the viewer a "Keep Watching" button to continue without interruption. When teasers are enabled, the schedule shifts to pre-roll only — the player runs an ad on player start and between each content shift, rather than mid-content breaks. Instead of running the full content length for each video piece, the videos are shortened unless there is a user interaction. About five seconds before the shortened clip ends, a "Keep Watching" button appears: if the viewer clicks it, ads are suppressed until that content finishes; if they don't, an ad plays after a five-second countdown. The number of ads played back-to-back is configurable (for example, two in a row), and the per-clip play time can be configured to shape how much pre-roll inventory the playlist generates. The Teasers tool is extremely useful for a more dynamic configuration which allows users to interact with content if they are interested, and otherwise lean on a more intense ad schedule if they are not engaged.
3. In-slot configuration: how ads behave within a slot
These settings control what happens inside a given slot; how many ads run, and under what player conditions.
Pods
A pod is a number of ads served one after another in a single slot (like a short commercial break). Each slot carries a configurable maximum ad count, and the player will play the ads returned for that slot up to that limit before returning to content.
Smart Pods
Smart Pods maximise the revenue of an ad slot by treating it as a fixed block of time rather than a fixed number of ads. Instead of always serving a single ad, the player is given a slot duration and a maximum ad count, and EX.CO's algorithm dynamically chooses the highest-yielding fill construction for that window — either one high-CPM ad or a combination of shorter ads, while keeping the slot length and the viewing experience consistent.
For example, in a 30-second slot, a traditional setup would look for a single 30-second ad. Smart Pods instead requests several ad lengths and may serve two 15-second ads when that produces a higher total CPM for the same 30 seconds. For longer slots the player runs parallel requests across multiple durations (for example 7, 15, 30 and 60 seconds) and assembles the mix that maximises revenue per second.
In practice, Smart Pods are most often applied to the pre-roll, with a capped slot duration (for example up to 30 seconds) and a small maximum ad count (for example up to two 15-second ads); the same time-based logic can also be used to govern breaking-ad yield.
Sticky-only teasers
The Teasers experience can be configured to appear only when the player is in its sticky (floating) state, and not when the player is in its main, in-article position. This lets a publisher reserve the teaser/preview behaviour for the sticky context only, when the user is presumed to be less engaged with the video, and balances premium video experience with less intrusive performance monetization.
4. Scheduling modes
Beyond individual slots, a player runs under an overall scheduling mode.
Standard schedule
The default mode, in which all three slot types (pre-roll, mid-roll, breaking) are available and the ad interval / frequency is configured per player (15 seconds by default). This is the right choice for players attached to real video content.
Aggressive ("revenue-first") schedule
A mode designed for players that are ad-only (outstream / sliders). It decouples the scheduler from content: only the breaking-ads slot is used, the ad count is effectively unlimited, and the interval is short (around five seconds). The player keeps running auctions while ads are available, and for efficiency, automatically slows its request rate, and eventually pauses requests, if a session is not returning any ads, then resumes normal cadence once fill returns.
5. Ad formats & experiences
Instream (in-content) video / Accompanying Content
Ads that play inside video content — the pre-roll, mid-roll and breaking-ad slots described above. This is the core video experience when the player carries real content.
Outstream video
Video ads that appear without any video content: the unit shows an ad only when one is available and collapses or disappears otherwise. This directly matches the "serve whenever an ad is available, destroy otherwise" behaviour. Outstream is offered in two placements:
- In-article: the unit opens inside the article when the viewer scrolls to it, plays an ad, and then collapses.
- Slider: an out-of-page unit that slides in when there is an ad to play and disappears afterwards (enabled by combining the outstream setting with "sticky-only").
Display fallback: Video with Display Ads (VDA) & Video Banner Ads (VBA)
When a video ad slot goes unfilled, the player can serve a display or banner ad in its place, capturing revenue that would otherwise be lost (useful, for example, in geos with low video fill). Typical setup runs a display ad after a period without a video ad (around 30 seconds), shows it for a short duration (around 10 seconds), and caps how many display ads and unfilled requests are allowed per session.
Rewarded video
A format in which the viewer chooses to watch a video ad in exchange for a “reward”; for example, to access a game or puzzle. This would be pre-roll-only and require setting up a duration and/or number of ads cap.
Immersive full screen video ad schedule
Within the Immersive video full screen, publishers can define identical or differentiated ad schedules than in-article players. There are two ad-break approaches:
- Swipe-based (between-video) ad breaks: an ad is inserted between videos as the viewer swipes through the feed. Publisher defines the number of content swipes that trigger ads.
- Cumulative Watch Duration ad breaks: pre-roll and mid-roll; Publisher defines time-based periodical ad breaks. Ads will only serve after the time trigger and at the next swipe, so as not to disturb the content.
Live streaming
EX.CO supports live streams (e.g., HLS/RTMP and related types) with time-based ad breaks that run against the live content.
6. Delivery rules & targeting
Targeted schedule by page
The same player embed can apply different configurations, including ad settings, to different pages. Using config targeting, a publisher can vary behaviour by URL path, exact URL, domain, device, geography, browser, operating system, or query parameter. In practice this means one player can run one schedule on sports pages and a different one on news pages, without changing the page code.
Demand-to-slot targeting
Specific demand can be directed to specific slots. An example is the ability to direct the first ad request of a session to a chosen demand source. This is useful for honouring a guaranteed buyer on the highest-value first impression.
Direct rules
Direct prioritisation
Direct and premium demand can be prioritised in the auction. EX.CO blends programmatic and direct-sold demand in a single auction and can force direct demand with priority; direct campaigns can be flighted via VAST or Prebid. This lets a publisher's guaranteed campaigns win ahead of open-market demand.
Stop ads after sponsored
This is a scheduler rule that stops serving further ads in a session once a sponsored/direct placement has run.
Player impression cap
Caps the number of ad impressions a player serves, based on the slot and/or the user session.
Skip next ads
This capability limits the number of impressions from the same tag within the same session (mostly for direct campaigns). This can apply frequency capping per-user and per-IP.