A different ad for every viewer,
inside the same
frame
The break is inventory, and you sell it per viewer. The picture around it is inventory too — and today it earns nothing, on the vast majority of the devices your audience watches on.
What changes when the picture becomes inventory
You sell the break per viewer. The picture around it goes out identical to everyone and earns nothing — not because nobody would buy that space, but because there has never been a way to put a different ad in it without paying for it somewhere else.
A region of the frame carries a different ad for each viewer, out of one encode and one stream. What arrives at the device is ordinary video, so your player apps do not change and the devices with a single decoder are not left out.
Every frame you deliver holds advertising space you are not selling
Your ad technology already personalises — it does it for every viewer you have. The limit is the stream: both techniques deployed at scale treat an ad as a separate object that takes the content's turn. An ad that shares the screen with the content is a sentence neither of them can say.
So the ad has to get into the frame another way. There are three, and what each one costs is why that space is still unsold.
Encode it into the frame
Composite the ad into the picture and encode the result. Plays everywhere, because what arrives is ordinary video.
One encode per version — so per viewer, the encoding bill grows with your audience instead of your campaignsCompose it on the device
Deliver the ad as its own video and let the player decode it alongside the content.
Needs a second decoder in step with the first. Set-top boxes, sticks and televisions have one, already busy with the contentDraw it in the app
Put the ad over the video in the player's own interface layer.
A graphic, not advertising in video. And every change to how ads work becomes an app release on every platform you ship toIt is the technology that leaves that money on the table, not your commercial team. That region is what your audience is already looking at, your platform already delivers it to every viewer, and it earns nothing. Not less than the break — nothing.
Swap a region of the frame, not the timeline
A compressed video is already divided into pieces that decode on their own. This puts a different piece in the place of one of them, and hands the player a single ordinary stream.
It plays on any device
Whether or not that device has more than one video decoder. What arrives is an ordinary stream that already carries the ad: one decoder, nothing installed alongside, no second video to synchronise.
It lands where your breaks already land
On a keyframe, at a segment boundary — the same timing your breaks already use, so nothing new has to be scheduled. And the linear break is the same operation with the whole picture as the region.
Everything above is what this does. Below is what makes a region swappable, and which parts arrive ready. See how the swap works
What makes a region swappable
Two properties have to hold. Modern codecs give you the first. The second is the part Qualabs built.
Independent in the frame — the codec already does this
Tiles, in HEVC and AV1
The frame divides into a grid, and each tile decodes on its own. That makes a tile a unit you can substitute.
Slices, in H.264
The frame divides into full-width horizontal bands instead of a grid — so the substitutable unit is a band.
Independent in time — what Qualabs built
The problem
If a region's prediction looks at its neighbours in the previous frame, replacing it drags the source you removed along until the next full frame.
HEVC has it in the standard
AV1 and H.264 have nothing equivalent — so we built it for both.
Under a hundred lines each
A patch against a clean checkout of the encoder, switched on by one setting and inert without it. The same build still does your ordinary encodes exactly as it does today.
Shapes you can sell — the codec sets the family, you choose inside it
HEVC and AV1
A box, or any set of boxes you can assemble from the grid: the L around the content, side-by-side, a corner box, a lower-third, a banner.
H.264
A full-width band: a banner across the top, a lower-third. Not an arbitrary box, and not the vertical arm of an L.
Decided at encode
The geometry is yours and you set it when you encode — ahead of the campaign that fills it. A layout needing a division you did not encode means encoding again.
Where it runs — one technique, two deployments
At the edge
It sits where your server-side insertion already sits. Reaches every device that can play your stream today, including players you did not write. The per-viewer work stays inside your infrastructure.
In the player
The per-viewer work leaves your infrastructure, so what you run at the edge does not grow with the number of viewers personalised. Arrives on the platforms where you ship a player.
If the players are not yours to change, the edge. If what you are after is personalisation as far as it goes, the player — and the player work with it. Where it runs is a deployment decision rather than a second product.
What arrives built, and what stays yours
- Arrives built
- The component that performs the replacement, the convention that declares which region is replaceable and where its alternative comes from, and the restriction itself — what it prevents, and how it is proved to be preventing it.
- Built for you
- The restriction inside your encoder, one per encoder (e.g. Harmonic, MediaKind, AWS Elemental), and the integration with your ad decisioning (e.g. Google Ad Manager, FreeWheel).
- Stays yours
- Your origin, packager and CDN, and your player apps. Nothing about the technique asks anything of those apps: what plays on a single-decoder device is the stream itself, in both deployments.
Two implementations per installation, and that is the whole of the work that is specific to you. The technique is in use in several places, on each of the three codecs a large operator is likely to be running today.
What would you sell in that space?
Tell us which codec you encode in, and what your commercial team has been asking for that the stream could not carry.
Talk to us