The revenue equation
CTV revenue is impressions multiplied by eCPM divided by a thousand. Impressions come from your audience size, watch time and ad load. eCPM comes from demand quality, audience GEO, verification status and seasonality. Every optimization you make moves one of these terms. Understanding which term is limiting you — fill, price or volume — is the difference between tuning and guessing.
Fill rate: the silent revenue killer
Fill rate is the share of ad opportunities that actually return an ad. Unfilled breaks are lost revenue that never appears in a CPM report. Fill drops when demand is thin for your GEO mix, when your floor prices are set too high, when ad requests are malformed, or when timeouts are too short for the demand chain to answer. Monitor fill per placement and per GEO, not as one average — a healthy overall number can hide entire regions with near-zero fill.
CPM and eCPM explained
CPM is the price a buyer pays per thousand impressions. eCPM is your effective revenue per thousand impressions across all demand, fill included: revenue divided by impressions served, times a thousand. A high CPM source with poor fill can earn you less than a moderate CPM source that fills everything — eCPM is the honest metric. We do not publish promised CPM numbers: real prices depend on your audience, GEOs, content and verification, and are discussed after reviewing your inventory.
Ad frequency and pod duration
How often ads appear and how long each break lasts directly shapes both revenue and retention. Typical CTV practice is a break every 8 to 20 minutes of content, with pods of 60 to 120 seconds, but the right setting is yours: watch session length and return rates after changing ad load, not just daily revenue. Ad fatigue on CTV shows up as shortened sessions long before viewers complain. Competitive separation inside a pod — not running two rival brands back to back — is a standard buyers appreciate and some require.
Creative duration and rotation
Most CTV demand is built for 15 and 30 second slots; supporting both doubles the demand pool compared to a single duration. Rotation matters at two levels: the same creative should not repeat within one pod, and frequency caps per household protect both viewer experience and advertiser budgets. Your ad server or SSAI configuration controls both — misconfigured rotation is one of the most common reasons buyers downrate otherwise good inventory.
What moves the number in practice
The publishers who grow CTV revenue steadily do four things: publish app-ads.txt and keep it current; watch fill rate and eCPM per GEO weekly; adjust ad load based on session data, not guesses; and keep VAST responses fast and error-free. If you want an outside read on your setup, register as a publisher — an inventory audit comes before any commercial discussion, and conditions are agreed individually.
FAQ
Q.What is a good fill rate for CTV?
There is no universal good number — it depends on GEO mix, floors and demand depth. What matters is measuring fill per placement and per GEO and investigating drops, rather than chasing an industry average.
Q.What CPM can I expect?
No honest answer exists before your inventory is reviewed: CPM depends on audience geography, content genre, season and verification status. Anyone quoting fixed CPM without seeing your app is guessing. Terms with Mobadly are agreed individually.
Q.How many ads per hour should a FAST channel run?
Viewers tolerate roughly 8 to 12 minutes of ads per hour in FAST environments, split into several pods. Start conservative, watch session length, and increase gradually — retention loss costs more than the extra impressions earn.
Q.Should I support both 15s and 30s ads?
Yes. Most CTV demand is produced in both durations, and accepting both widens the pool of campaigns that can run on your inventory without any viewer-facing downside.
Q.What is the difference between fill rate and render rate?
Fill rate means an ad was returned for the request; render rate means it actually played for the viewer. VAST errors, slow responses and player issues create a gap between the two — track both.
Q.Does higher ad load always mean more revenue?
No. Past the point your audience tolerates, extra ad load shortens sessions and reduces total impressions. The optimum is found by watching watch-time metrics as you change load, not by maximizing break count.
Q.What is competitive separation?
Keeping rival brands out of the same ad pod. It is configured in your ad server or SSAI and increasingly expected by brand buyers running on CTV.
Q.How do I start with Mobadly?
Register through the publisher form, choosing your inventory type — CTV app, FAST channel or web video. We review the inventory first, then agree commercial terms individually.
Become a publisher