← All Posts

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:

  1. Improve placement. Move prompts to natural pause points: level fail, level complete, energy depletion. Never mid-action.
  2. Test reward value. Small increases in reward size can double opt-in without hurting economy if the reward is consumable.
  3. Segment performance by GEO and stop averaging Tier-1 and Tier-3 into one blended number that misleads everyone.
  4. Improve fill rate before touching floors. Unfilled requests earn zero regardless of eCPM.
  5. Compare multiple demand sources or move to a unified auction if you’re on a single partner.
  6. Test server-side vs client-side request handling if latency or ad blocking is eating fill.
  7. Monitor latency. A rewarded video that takes 4 seconds to load has already lost the player.
  8. 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]
  9. Test frequency. Cap ads per session, then raise the cap in steps and watch D1/D7 retention.
  10. 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