Dynamic ad insertion

Ad insertion that keeps working when the ad blocker arrives

Ad revenue is the reason most of our customers run a player at all, and it's the first thing an ad blocker takes away. Moving insertion to the server side means the ad is stitched into the stream before the viewer ever sees it, so there's nothing for a blocker to remove.

Bradmax handles the player side of dynamic and server-side insertion. It reads SCTE-35 markers, runs VAST, VMAP and VPAID creatives, and reports what actually played.

Start Free
Illustration of an ad server inserting an ad into a video player timeline

Client side and server side, in plain terms

Client-side insertion plays the ad inside the player. It's simple, but the ad is a separate request, so a blocker can drop it and the viewer notices a gap where the ad should have been.

Server-side insertion puts the ad into the stream itself. The player receives one continuous stream, the viewer can't tell where the break is, and a blocker has nothing to intercept. The trade-off is that the server side needs a stitching platform, which is usually already part of your delivery stack.

What the player brings

SCTE-35 live triggers

The player reacts to the ad-break markers carried in a live manifest, so a break fires on schedule rather than on request.

VAST, VMAP and VPAID

The three formats advertisers actually deliver, with pre-roll, mid-roll and post-roll placements.

Ad pods and break scheduling

Several creatives in one break, played in order and held to the break duration.

Google IMA with OMID verification

For buyers who require viewability and verification through the IAB standard.

FreeWheel

Supported for operators whose ad stack runs through FreeWheel.

How a live ad break runs

  1. The break is signalled

    The live manifest carries an SCTE-35 marker when the ad break is due.

  2. The player reacts

    It switches at the marker and asks the ad source for the creatives to fill the break.

  3. The ad plays

    VAST or VMAP creatives play for the scheduled duration, with the rest of the stream held ready.

  4. Playback resumes

    The player rejoins the live stream, and the viewer sees no gap.

The numbers behind the claim

Bradmax runs more than 13 million dynamic ad insertion streams a month across live and VOD. Allente, a Nordic operator, reached a 100% ad fill rate with the player, which means every ad opportunity was filled rather than dropped.

That fill rate is the number that matters. An unfilled break is lost revenue, and it usually comes from a player that can't handle the break in time.

CSAI and SSAI, compared on what matters

The two insertion models, side by side.
Criterion Client-side (CSAI) Server-side (SSAI)
Blocked by ad blockers Often No
Viewer experience The ad is a separate playback One continuous stream
Where the break is decided In the player In the manifest, via SCTE-35
Bradmax role Plays the creatives Triggers and plays the break

Frequently asked questions

What is the difference between CSAI and SSAI?

Client-side insertion (CSAI) plays the ad in the player, so an ad blocker can stop it. Server-side insertion (SSAI) stitches the ad into the stream before it reaches the player, so the viewer sees one continuous stream and a blocker has nothing to remove.

Does Bradmax do the server-side stitching itself?

The player handles the client side of ad insertion and works with the server-side and ad platforms in your stack. It reads SCTE-35 markers from live streams and plays the break they signal.

Which ad formats are supported?

VAST, VMAP and VPAID, with pre-roll, mid-roll and post-roll placements, ad pods, and Google IMA including OMID verification. FreeWheel is supported as well.

How does it hold up on live sports?

Live is where ad insertion usually breaks, because the break arrives on a clock rather than on a request. Bradmax triggers breaks from SCTE-35 in the live manifest, which is how TISA runs ad breaks across six sports leagues.

Will an ad blocker break it?

For server-side insertion, no: the ad is already part of the stream the player receives. That's the main reason operators move to SSAI.

Sources and method

  • Advertisements and SCTE-35 Bradmax player documentation, advertisements
  • Allente 100% ad fill rate Bradmax Allente case study
  • 13M+ DAI streams a month Bradmax platform figures

Try an ad break on your stream

Start on the free plan and run a VAST tag against your own manifest. For live SCTE-35 workflows, an engineer can walk through the trigger with you.