How to Benchmark Your Rewarded Video Ad Revenue for Your Web Game (2026)

How to Benchmark Your Rewarded Video Ad Revenue for Your Web Game (2026)

A developer’s guide to knowing whether your HTML5 or WebGL game is actually monetizing well, and what to fix when it isn’t.

TL;DR

•      Total revenue tells you nothing about performance. Benchmark against your opportunity: traffic, GEO, device and engagement.

•      Seven metrics matter: eCPM, fill rate, completion rate, opt-in rate, revenue/DAU, ads/DAU and revenue/session. eCPM alone is the least useful of the seven.

•      A $10 eCPM at 30% fill earns less than a $7 eCPM at 90% fill. Optimize total yield, not the headline number.

•      Use the Rewarded Revenue Equation (Traffic × Eligible × Opt-In × Fill × eCPM) to find which factor is leaking money.

•      Before switching providers, run a controlled test. Advertised CPMs are not benchmarks.

Are You Actually Monetizing Well?

Most web game developers look at one number: total ad revenue for the month. It’s the number the dashboard shows first, and it’s the number you tell your co-founder. It is also almost useless for judging performance.

A game earning $500 a month might be doing extremely well. A game earning $5,000 a month might be leaving twice that on the table. The dollar figure can’t tell you which, because it ignores the thing that determines what you should be earning: your traffic. Where players come from, what device they play on, how long they stay and how often they opt into a reward all set the ceiling. Revenue only tells you how close you got to it.

Benchmarking means measuring revenue relative to opportunity, not in isolation. To do that, you need to look past the total and examine four things: yield (eCPM), demand (fill rate), engagement (completion rate) and efficiency (revenue per DAU or per session). Each one isolates a different part of the pipeline, and each one can fail independently.

Don’t ask “How much did I make?” Ask “How much should I be making from this traffic?”

The 7 Metrics You Need to Benchmark

Rewarded video has a longer chain between player and payout than any other web ad format. A player has to be eligible, choose to watch, receive a filled ad, finish it and claim the reward. Seven metrics cover that chain. Track all of them, because a single strong number often hides a weak one next to it.

Metric
What it tells you
Why it matters

Rewarded eCPM
Revenue per 1,000 impressions
Measures yield

Fill rate
% of ad requests that returned an ad
Measures demand

Completion rate
% of started videos watched to the end
Measures engagement and reward fit

Opt-in rate
% of eligible users who chose to watch
Measures placement and reward quality

Revenue / DAU
Daily monetization per active user
Measures overall efficiency

Ads / DAU
Rewarded impressions per user per day
Measures monetization intensity

Revenue / session
Earnings per play session
Comparable across games and genres

CPM vs eCPM vs what you actually get paid

Developers use these terms interchangeably. They aren’t. CPM is what an advertiser bids per 1,000 impressions. eCPM (effective CPM) is what your inventory actually earned per 1,000 impressions after the auction cleared, averaged across every demand source that filled. Publisher revenue is eCPM multiplied by impressions, minus the platform’s share, converted at whatever net terms your contract specifies.

This is why a provider’s advertised CPM is meaningless as a benchmark. It may be the top bid on US desktop traffic in December. Your eCPM is the blended result across every GEO, device and hour you actually served. And your revenue depends on how many of your requests were filled at all.

A $10 eCPM with 30% fill is worse than a $7 eCPM with 90% fill. That single sentence explains most rewarded video underperformance, and the rest of this article builds on it.

Start With the Right Benchmark: Your Traffic

There is no universal “good” rewarded video CPM. Anyone who quotes one without asking about your traffic is selling something. Your baseline is defined by four variables, and you need to segment by all of them before comparing anything.

Segment
Typical breakdown
Why it moves the number

GEO
US/Canada · Western Europe · LATAM · Asia · Africa
Advertiser budgets are regional. A US impression can clear 10× a Tier-3 impression.

Device
Desktop · Mobile web · Tablet
Screen size, viewability and browser autoplay rules all change bid density.

Game type
Casual · Hypercasual · Puzzle · Simulation · Action · IO
Session length and progression loops determine how often a reward is worth watching for.

Traffic source
Organic · Game portals · Direct · Social · Paid
Portal traffic often carries a revenue split and different audience quality than direct.

The classic mistake: a developer with 70% African and South-East Asian traffic reads a forum post from a US-heavy publisher, sees the gap and concludes their monetization is broken. It isn’t. Their GEO mix is different. They need to compare their US segment against a US benchmark and their Tier-3 segment against a Tier-3 benchmark. Only then do real gaps appear.

The same applies to device. Desktop web rewarded inventory behaves differently from mobile web, and both differ from native mobile app benchmarks. Those mobile app numbers, the $20 to $40 rewarded eCPMs you see in industry reports, are not your benchmark. They come from SDK-level targeting and identifiers that browsers don’t expose. Web rewarded eCPMs sit in a different band, and comparing against the wrong one will send you chasing problems that don’t exist.

What Is a Good Rewarded Video eCPM?

For HTML5 and web games, blended rewarded eCPM typically lands in the $4 to $15 range, with the premium end reserved for US and Western European desktop traffic in strong demand seasons. Rewarded sits at the top of the web format stack because the player opted in, the video plays to completion far more often than pre-roll, and advertisers pay for that attention.

Within that range, eight variables push your number up or down:

GEO mix: the largest single factor, often 5× or more between tiers.
Demand conditions: how many bidders are competing for your inventory on a given day.
Seasonality: Q4 runs hot, January and early Q3 run cold. Budget for it.
Device: desktop generally clears higher than mobile web for rewarded.
User engagement: players with longer sessions see more ads, and advertisers detect that quality.
Ad format: 15s vs 30s, skippable vs non-skippable, end-card behavior.
Completion rate: buyers pay for completed views. Low completion feeds back into lower bids.
Auction mechanics: single demand source vs unified auction, floor price settings, timeouts.

Rather than fixate on a single target number, use a three-band framework and diagnose from there.

Band
What it means
What to do

Below benchmark
Yield is weak for your traffic profile. Likely causes: poor GEO mix, low-quality inventory, bad placement, low completion, technical issues, or thin demand.
Work through the troubleshooting matrix below. Fix fill and completion before touching floors.

At benchmark
Healthy monetization for your segments. Yield reflects the market.
Shift focus to opt-in rate and ads/DAU. More impressions at the same eCPM is now the lever.

Above benchmark
Something is working unusually well: a placement, a GEO, a partner.
Isolate what’s driving it. Confirm it isn’t a temporary demand spike, then test whether it scales.

Network-level data by segment is what turns this from a guide into a genuine benchmark. If your provider can’t give you segment-level comparisons for your traffic profile, that itself is a signal.

How to Benchmark Fill Rate

Fill rate is the most under-examined number in web game monetization, and the one most likely to explain a revenue gap.

Fill Rate = Filled Impressions ÷ Ad Requests × 100

A high eCPM tells you what the ads you served were worth. It says nothing about the requests that went unanswered. Every unfilled request is a player who pressed the reward button, waited, and got nothing. That’s lost revenue and a broken promise to the player in the same moment.

Fill drops for a handful of recurring reasons: geographic demand gaps (Tier-3 traffic is chronically underfilled by single-source setups), demand partner coverage, single demand source versus a unified auction, request timeouts on slow connections, ad blockers, and consent or CMP problems that leave the request without the signals buyers need. That last one is specific to the web and frequently missed. A TCF string that fails to load, or a consent prompt that never fires, silently kills fill in the EU.

Here is the math that should change how you read your dashboard:

Scenario A: 100,000 requests × 40% fill = 40,000 impressions

40,000 ÷ 1,000 × $10 eCPM        = $400

 

Scenario B: 100,000 requests × 90% fill = 90,000 impressions

90,000 ÷ 1,000 × $7 eCPM         = $630

 

Scenario B earns 58% more with a 30% lower eCPM. If your provider reports only eCPM, or reports fill rate as a footnote, you are being shown the number that flatters them and hidden from the one that pays you.

Optimize total yield, not CPM in isolation. eCPM × fill is the number that hits your bank account.

Benchmark Completion and Opt-In Rate

These two metrics are unique to rewarded video, and together they describe the health of the placement itself. Map them onto the funnel first:

Eligible users → Ad requests → Ads served → Ads started → Ads completed → Reward granted

 

Opt-in rate is the ratio of eligible users who saw the prompt to those who accepted it. It measures whether your reward is worth the player’s time at that moment. Completion rate is the ratio of started videos to finished ones. It measures whether the player stayed once they committed.

Completion for a well-integrated web rewarded placement should run high, often above 85 to 90 percent, because the player chose to watch and wants the reward. When it falls, look at video length, whether the ad interrupted a moment of active play, tab-switching behavior (the Page Visibility API matters here), and whether your SDK is correctly waiting for the complete status before granting.

The trap is reading high completion as a healthy placement. A 95% completion rate with a 4% opt-in rate means the handful of players who accept the offer are happy, and everyone else is ignoring it. The placement is weak, the reward is mispriced, or the prompt is appearing at the wrong beat in the loop. High completion on a tiny base is a placement problem wearing a good number as a disguise.

Benchmarks for both vary by genre and placement type, so segment by placement before comparing. [AppLixir data: network median opt-in and completion rates by placement type] A second-chance placement after a failed level will always out-convert a soft-currency booster on the main menu.

Calculate Your Revenue Per Player

eCPM is a price. It isn’t a measure of how well your game converts players into revenue. For that, move to per-user metrics.

Revenue per DAU = Daily rewarded revenue ÷ DAU

Worked example:

10,000 DAU

4,000 rewarded impressions/day  (0.4 ads per DAU)

$8 eCPM

Revenue   = 4,000 ÷ 1,000 × $8 = $32/day

Rev/DAU   = $32 ÷ 10,000       = $0.0032 per DAU per day

 

Why this matters: two games can have identical eCPMs and completely different revenue per player, because their players engage with rewarded prompts differently. Game A shows 0.4 ads per DAU while Game B, with the same $8 eCPM, shows 1.6 ads per DAU because its placements sit inside the progression loop. Game B earns four times the revenue per user from the same ad price. Nothing about the demand side changed. Everything about the design side did.

Three related metrics round out the picture:

Revenue / session: the cleanest number for comparing across games of different lengths.
Revenue / MAU: useful for longer-horizon planning and for games with weekly rather than daily play patterns.
Rewarded impressions / DAU: the intensity dial. Raising it lifts revenue until it starts costing retention, which is the subject of the Placement Playbook.

Rewarded Video Benchmark Calculator

You can run your own numbers with five inputs. Fill in the worksheet below with your last 30-day averages, then compare the output to what your dashboard reports. If the two disagree by more than a few percent, you have a reporting problem before you have a monetization problem.

Input
Your value
Notes

Daily ad requests
______
Count requests, not impressions

Fill rate (%)
______
Filled ÷ requests

eCPM ($)
______
Blended, net of nothing, as reported

Completion rate (%)
______
Completed ÷ started

DAU
______
Same 30-day window

 

Impressions/day       = Requests × Fill

Completed views/day   = Impressions × Completion

Daily revenue         = Completed views ÷ 1,000 × eCPM

Monthly revenue       = Daily revenue × 30

Revenue per DAU       = Daily revenue ÷ DAU

Ads per DAU           = Impressions ÷ DAU

Example: 50,000 requests, 80% fill, $9 eCPM, 90% completion, 20,000 DAU. That’s 40,000 impressions, 36,000 completed views, $324/day, roughly $9,720/month, $0.016 per DAU and 2.0 ads per DAU. Change fill to 55% and monthly revenue drops to about $6,680 with no other change. That’s the size of the lever fill rate represents.

An interactive version of this calculator belongs on the live page. Bookmark it, rerun it monthly, and keep the outputs in the dashboard below.

Build Your Own Benchmark Dashboard

Most provider dashboards show you what they want you to see. Build your own view, even if it’s a spreadsheet pulling from their reporting API.

Track daily
Segment by
Review window

Requests, impressions, fill rate
GEO (at minimum Tier 1 / Tier 2 / Tier 3)
7-day rolling average for early signals

eCPM, revenue
Device (desktop / mobile web / tablet)
30-day average for decisions

Completion rate, opt-in rate
Game (if you run more than one)
Month-over-month for trend and seasonality

DAU, revenue/DAU, ads/DAU
Traffic source (organic, portal, direct, social, paid)
Never react to a single day

Ad placement (each prompt, individually)

The three-window rule is the important one. Rewarded demand is volatile day to day. A single Monday with a 40% eCPM drop is noise. Three weeks of 15% decline is a trend. If you make changes on a 7-day view, you will chase noise and undo good decisions. Decide on 30-day data and use the 7-day view only to spot something that needs watching.

Diagnose Poor Performance

When a number is off, the pattern of which numbers are off tells you where to look. This matrix covers the common combinations.

Symptom
Most likely cause
First check

High requests, low fill
Demand gap or technical issue
Fill by GEO; SDK timeout; consent string loading

High fill, low eCPM
Weak demand or yield problem
Floor prices; single vs unified demand; GEO mix

High eCPM, low revenue
Low volume
Opt-in rate; ads per DAU; placement count

High impressions, low completion
Poor UX or reward mismatch
Video length; interruption timing; tab-switch handling

High completion, low opt-in
Weak placement
Prompt position in the loop; reward value vs effort

Good US eCPM, poor overall revenue
Traffic GEO mix
Segment revenue by tier; check portal referrals

Revenue drops suddenly
Seasonality or demand shift
Compare same week last year; check partner status page

 

Work top to bottom. A fill problem masks everything downstream, so fix fill before evaluating eCPM, and fix completion before evaluating opt-in. Diagnosing out of order leads to tuning reward values when the real issue is a consent prompt that never fires for EU visitors.

How to Improve Your Benchmark

Once you know which factor is leaking, the fixes are mostly known. In rough order of impact for a typical web game:

Improve placement. Move prompts to natural pause points: level fail, level complete, energy depletion. Never mid-action.
Test reward value. Small increases in reward size can double opt-in without hurting economy if the reward is consumable.
Segment performance by GEO and stop averaging Tier-1 and Tier-3 into one blended number that misleads everyone.
Improve fill rate before touching floors. Unfilled requests earn zero regardless of eCPM.
Compare multiple demand sources or move to a unified auction if you’re on a single partner.
Test server-side vs client-side request handling if latency or ad blocking is eating fill.
Monitor latency. A rewarded video that takes 4 seconds to load has already lost the player.
Optimize consent/CMP implementation. TCF 2.3 compliance done right increases fill and eCPM in the EU; done wrong it zeroes both. [AppLixir data: consent-flow opt-in lift]
Test frequency. Cap ads per session, then raise the cap in steps and watch D1/D7 retention.
Compare net revenue, not headline CPM, when evaluating any change or any provider.

 

Finally, benchmark your provider, not just your game. Every six to twelve months, run the same traffic through an alternative and compare net revenue on identical segments. Providers change demand partners, payment terms and reporting quality over time. What was the best option two years ago may not be today.

When Should You Consider Switching Providers?

Switching costs engineering time and risks a temporary revenue dip, so the bar should be real. These are the signals worth acting on:

Consistently low fill, especially outside Tier-1 GEOs
Large gaps between your best and worst GEO with no path to close them
Declining eCPM over three or more months while your traffic is stable
Reporting that hides fill rate, segment data or net-of-fee revenue
No optimization support beyond a knowledge base
Net-60 or longer payment terms
Limited demand: a single source, no unified auction
No transparency on revenue share or how the auction clears
Slow or absent technical support when an SDK update breaks

Before you switch on the strength of an advertised CPM, run a controlled test. Route a fixed share of traffic, ideally a clean GEO and device segment, through the alternative for at least 14 days. Compare net revenue per DAU on that segment, not eCPM, and not total revenue. A provider unwilling to support a side-by-side test is telling you what the outcome would be.

AppLixir was built for exactly this comparison. As a web-first rewarded platform for HTML5 and WebGL games, it reports fill, completion and segment-level eCPM by default, and uses an explicit status.type === “complete” callback so you only grant rewards on verified completions. The integration is a few dozen lines and runs alongside your existing setup, which makes a controlled 14-day test straightforward.

Conclusion: Know Your Number

There is no universal good rewarded video CPM. There is only your number, for your traffic, and the gap between what you earn and what that traffic should produce. The framework that captures it:

The Rewarded Revenue Equation

Revenue = Traffic × Eligible Users × Opt-In × Fill × eCPM

Factor
Owner
Primary lever

Traffic
Growth / distribution
Acquisition, portals, retention

Eligible users
Game design
Where and how often prompts are offered

Opt-in
Game design + economy
Reward value, placement timing

Fill
Monetization provider + tech
Demand coverage, consent, latency

eCPM
Monetization provider + traffic
GEO mix, completion, auction setup

Every factor multiplies the others, so a 20% improvement in any one lifts total revenue by 20%. That’s the good news. The bad news is that a 50% fill rate halves everything upstream of it, no matter how strong your design is. Find the weakest factor, fix it, then move to the next.

And the goal isn’t the highest eCPM. It’s the maximum sustainable revenue per user without damaging the player experience. A benchmark that ignores retention is a benchmark for a game that won’t exist in six months.

FAQ

What is a good rewarded video eCPM for HTML5 games?

Blended web rewarded eCPMs typically fall between $4 and $15, with US and Western European desktop traffic at the top of that range. Native mobile app benchmarks of $20 to $40 do not apply to browser games and should not be used as a comparison.

Why is my fill rate low even though my eCPM is high?

eCPM only measures the impressions that were filled. Low fill usually comes from geographic demand gaps, a single demand source, request timeouts, ad blockers or a consent string that fails to load. Fix fill first; it usually matters more than eCPM.

What’s the difference between CPM and eCPM?

CPM is an advertiser’s bid per 1,000 impressions. eCPM is what your inventory actually earned per 1,000 impressions after the auction, blended across all demand. Your revenue is eCPM times impressions, minus the platform share.

How do I calculate revenue per DAU for rewarded video?

Divide daily rewarded revenue by daily active users. For example, 4,000 impressions at an $8 eCPM is $32 a day; across 10,000 DAU that’s $0.0032 per user per day. It’s the best single metric for comparing monetization efficiency across games.

How often should I benchmark my rewarded video performance?

Review 7-day averages weekly to spot changes, make decisions on 30-day averages, and compare month over month for trend. Run a controlled provider comparison every six to twelve months.

Want to see how your rewarded video performance compares?

AppLixir runs monetization reviews for HTML5 and WebGL studios. Send us your current requests, fill, eCPM and completion numbers and we’ll show you where the gap is, and whether a controlled A/B test is worth running.

Request a monetization review at applixir.com

 

The post How to Benchmark Your Rewarded Video Ad Revenue for Your Web Game (2026) appeared first on AppLixir – Rewarded Video Ad Monetization.

Leave a Reply

Your email address will not be published.

Previous post Former Rockstar dev says the GTA 6 leaks are a ‘nothing burger’: ‘There won’t be much damage’