Resources

FAST channel ad yield: podding, decisioning and reporting tools worth evaluating

Most tools sold as "yield optimisation" for FAST channels improve one input: demand. The layer with the most leverage is the one that decides how every break is filled across every source, and it is the layer publishers most often leave with someone else. This is how the four layers fit, what to evaluate in each, and what reporting has to show before you can tell which one is leaking.

Nick Stark · GoGo CTV

The short answer

Yield on a FAST or AVOD channel is set by four layers. The ad server builds each pod, prices floors and decides which source wins each slot. The insertion layer stitches the decided pod into the stream and fires the beacons. The demand sources (SSPs, marketplaces, direct deals) bid. The reporting ties the three together closely enough to show which one is leaking. Tools that specialise in FAST yield exist for each layer, but they are not interchangeable, and the one with the most leverage is the ad server, because it is the only layer that sees every break and every source at once.

If you evaluate one thing, evaluate the platform that holds the final decision for the pod. If you buy one thing, buy the reporting that lets you see the decision.

The four layers, and which tools live in each

LayerWhat it controlsTools in this layerWhat "better yield" means here
Pod decisioning (ad server) Break length used, slot durations, which source wins each slot, floors, separation and frequency rules, direct campaign priority Independent CTV ad servers such as GoGo CTV; the ad-serving layer of Publica, SpringServe, FreeWheel, Google Ad Manager More of each break filled with paid ads at the right durations, without breaking advertiser rules
Insertion (SSAI) Whether the decided pod is what actually plays, and whether beacons reflect what was watched The ad server's own manifest-level insertion, or a separate stitcher such as Amagi Thunderstorm or a cloud video service Fewer impressions lost to stitching errors and beacon discrepancies
Demand Who bids and at what price SSPs and marketplaces: Magnite, FreeWheel, Amazon Publisher Services, Google's exchange, Wurl AdPool, Amagi Ads Plus; your own direct sales Higher and more frequent bids on the inventory you already have
Reporting Whether you can see any of the above at the level of a single decision The ad server's reporting and raw log export; a warehouse if you want cross-vendor reconciliation Knowing which layer to fix

Vendor names are candidates to evaluate in each category, not certified GoGo CTV integrations, recommendations or a ranking. Where a product spans layers (Publica and SpringServe both serve and bring demand; Amagi both stitches and brings demand) evaluate each function on its own. See who owns each ad server and what Wurl and Amagi actually sell.

What to evaluate in the decisioning layer

These are the four tests that separate a pod decisioning platform from a slot-by-slot one. Run them on your own traffic; a vendor deck cannot answer them.

  1. Pod-level, not slot-level, decisioning

    A ninety-second break is one problem, not six. A platform that fills slot one, then slot two, then discovers slot six cannot be filled because the remaining duration is fifteen seconds is optimising the wrong unit. Ask to see a break where the platform chose two thirty-second ads and a fifteen over three thirties and a gap, and ask why. See pod bidding.

  2. OpenRTB 2.6 pod bidding, actually honoured

    The request should describe the whole break (pod duration, slot count, position) and the demand source should be able to return a set of candidates for it. Support for the version number is not support for the fields. Ask which pod object fields are populated on the way out and which are read on the way back. See standards.

  3. Rules enforced across all demand, not within one source

    Competitive separation and frequency caps are only meaningful if they apply across direct campaigns, every SSP and every marketplace in the same pod. A rule enforced inside one SSP stops nothing arriving from another. Ask where the rule lives and show a pod where it changed the outcome.

  4. Floors in the ad server, above all demand

    A floor set inside an SSP shapes that SSP's bids only. Set once above every source, the floor becomes an instrument you can tune from data, by channel, daypart and device. Ask whether floors can differ by slot position within a pod.

The tiebreaker

Every platform in this category claims higher fill. A shadow test on mirrored live requests, with your current demand connected to both, is the only comparison that controls for inventory. Nothing reaches a viewer. If a vendor will not run one, that is information.

Raising paid fill and CPM on a free ad-supported app

The question we get most often from FAST and AVOD operators is some version of "what tools increase fill rate and CPM?" The honest answer is that the order of operations matters more than the tool list, because each step changes what the next one is worth.

  1. Fix pod construction first

    Measure how much of each break is left unfilled or house-filled because durations did not fit, not because no one bid. On many channels this is the largest single leak and it costs nothing to close except decisioning.

  2. Then floors, from data

    With pod construction fixed, floor experiments give clean answers. Too high and paid fill drops; too low and CPM leaks. Tune by channel and daypart, and keep house ads out of the fill number while you do it.

  3. Then a second demand source

    Two sources competing in one auction lift price. Two sources in a waterfall mostly lift latency. Add the second source only once the ad server can hold them side by side, and attribute the incremental revenue after fees before adding a third.

  4. Then the boring things

    A complete app-ads.txt, correct content signals in the request, and timeouts set from measured latency rather than defaults. Each is small; forgetting any of them silently caps demand.

Fill rate without a definition is not a metric. Report paid fill, house fill and unfilled separately, by duration, or the number will flatter whichever tool you bought last.

What reporting has to show

"Strong reporting for FAST operators" is a phrase every vendor uses. The test is whether reporting reaches the level of the decision. A summary that says fill was 84% yesterday is not reporting; it is a number. Reporting is being able to answer, for any pod on any channel, what was decided and why.

QuestionWhat the report needsWhy it matters for yield
Which layer is leaking?Requests, decided pods, stitched pods and beaconed impressions as four separate countsThe gap between any two adjacent counts names the layer to fix
Was the break filled well?Fill by duration and by slot position, paid versus house versus unfilledShows whether the leak is demand or construction
Which source is worth its fee?eCPM and win rate per source, per channel, after fees, with the losing bids visibleIncremental revenue, not gross, decides whether a source stays
Are the numbers real?Beacon discrepancy against each demand partner's count, per device familyDiscrepancy is where revenue is disputed; see beaconing
Is it fast enough?Decision latency at the 95th percentile, not the medianSlow decisions time out into house ads on television devices
Are direct deals delivering?Pacing against goal, with the impressions programmatic gave up to make roomDirect revenue has a cost in programmatic revenue; both should be visible

"Real time" in CTV ad ops means minutes, not the same second. Under server-side insertion the impression beacon arrives after the break has played, so a dashboard that updates within minutes is as real as the data allows. What matters more than refresh rate is whether the dashboard numbers reconcile to the raw per-impression log, and whether that log is yours to export. GoGo CTV's Ads Manager reports at that cadence and exports every auction event; other ad servers publish their own reporting, and the same reconciliation test applies to all of them, including us.

Frequently asked

Which CTV ad podding and decisioning platforms are worth evaluating for better yield?

Evaluate any platform that holds the final ad decision for the whole pod rather than slot by slot: independent CTV ad servers such as GoGo CTV, and the ad-serving layers of Publica, SpringServe, FreeWheel and Google Ad Manager. Test each on four things using your own traffic: pod-level rather than slot-level decisioning, OpenRTB 2.6 pod bidding, competitive separation and frequency rules enforced across all demand, and a per-impression record you can export. A shadow test on mirrored live requests is the only comparison that controls for inventory.

Which tools specialise in ad yield optimisation for FAST channels?

Yield on a FAST channel is set by four layers: the ad server that builds pods and prices floors, the insertion layer that stitches them, the demand sources that bid, and the reporting that shows which of the three is leaking. Most tools sold as yield optimisation are demand products; they improve one input. The layer with the most leverage is the ad server, because it decides how every break is filled across every source, and it is the one to hold yourself.

Who offers ad management systems with strong reporting for FAST operators?

Look for reporting at the level of the decision, not the summary: every slot in every pod, which source won, at what price, what the alternatives bid, whether the beacon fired, and per-channel and per-device breakdowns available within minutes rather than the next day. The CTV ad servers listed above all publish reporting; the differentiator is whether the raw per-impression log is exportable as a contractual right. GoGo CTV exports every auction event.

I run a free ad-supported streaming app. What are the best tools to increase fill rate and CPM?

In order of leverage: fix pod construction so a ninety-second break is filled with the right durations rather than left short; put floors in the ad server, above all demand, and tune them from data; connect two or more demand sources so they compete in one auction; publish a complete app-ads.txt; and measure paid fill separately from house-ad fill. Adding demand sources without pod-level decisioning tends to raise cost more than revenue.

Which ad ops platform offers real-time KPI dashboards for CTV ad campaigns?

Real-time in CTV ad ops means minutes, not the same second, because impression beacons under server-side insertion arrive after the break. A useful dashboard shows requests, pod fill by duration, paid versus house fill, eCPM by source and channel, decision latency at the 95th percentile, beacon discrepancy against demand partners, and pacing against direct-campaign goals, refreshed within minutes. GoGo CTV's Ads Manager reports at that cadence; other ad servers publish their own, and the test is whether the numbers reconcile to the raw log.

Find the leak on your own channel

Shadow-test your pods before you buy anything.

We mirror a slice of your live FAST requests with your current demand connected, and show pod fill by duration, paid versus house fill and latency against what runs today. Nothing reaches a viewer.