When no ad is available, the game should continue immediately – no blank screen, no waiting. No-fill is often a market condition, but check technical causes first: ads.txt, consent, script loading, requesting before the SDK is ready. In code, resume on no-fill, show a reward button only when an ad is ready, preload the next ad and log no-fill with geo, format and reason.
At a glance
| Fact | Value | Source |
|---|---|---|
| Fill rate in Playgama Ad reports | impressions ÷ ad requests | wiki.playgama.com |
| Match rate in Playgama Ad reports | requests that received an ad from demand ÷ ad requests | wiki.playgama.com |
| AdSense H5 Games Ads behavior when no ad is shown | adBreakDone() is always called with a status | developers.google.com |
| Play-Games.com fill rate with Playgama Ad (case result) | above 96% | playgama.com |
| Demand partners connected to Playgama Ad | 11, including Google Ad Manager | playgama.com |
No-fill happens when an ad request goes out and no ad is shown for it. Often it’s a market condition – no buyer wants that impression at that moment, in that geo, in that format – but check technical causes first (see the list in post 12): ads.txt, consent, script loading, requesting before the SDK is ready. Either way, the rule for the player is the same: the game should continue immediately.
What is the difference between fill rate, match rate, and show rate?
These numbers are often used interchangeably, and that is where developers get confused. Ad requests are how many times the game asked for an ad; everything else is measured against them or against the ads that came back.
| Metric | Formula | What a low value points to |
|---|---|---|
| Match rate | Requests that received an ad from demand ÷ ad requests | Thin demand for that geo or format |
| Fill rate | Impressions ÷ ad requests | Either thin demand (low match) or ads that came back but weren’t shown |
| Show rate | Impressions ÷ ads returned | Rendering, timeouts, the player leaving, or the game not calling show |
Low match rate → thin demand for that geo or format. Match rate high but fill rate low → ads came back but weren’t shown: rendering, timeouts, the player leaving, or the game not calling show.
How to handle no-fill in code
- Always resume the game on no-fill – don’t wait.
- Show a reward button only when an ad is ready.
- Preload the next ad in advance.
- Log no-fill with geo, format and reason to see patterns.
- Don’t retry immediately in a loop.
With Playgama Ad, the SDK reports each ad’s lifecycle through events: ready (the ad can be shown), empty (no ad available), rendered, viewable, rewarded (rewarded ads only: grant the reward here) and closed (resume the game). Resume on empty and on closed, and show a reward offer only after ready.
What happens on the Playgama Ad side when a slot is empty?
Playgama Ad is your main ad solution: one SDK connected to all its demand partners. Playgama Ad combines header bidding via Prebid with Google Ad Manager (Playgama is a Google Ad Manager MCM partner). First, demand partners bid in a Prebid auction; the winning bid is then sent to Google Ad Manager, which runs the final auction against Google Ad Exchange and other demand, and the highest-yielding ad is shown (Prebid, Google Ad Manager). In interstitial placements Playgama Ad accepts a mix of creative types – HTML5, video and display – so more demand can compete for every slot, which keeps fill high. Its reporting breaks fill rate, match rate, and show rate down per game, per placement, per format, per geo, and per device, so a developer can see that no-fill is concentrated in, say, one region or one banner size, rather than staring at a single blended percentage that hides the pattern.
How does Google’s Ad Placement API handle no-fill?
Google AdSense H5 Games Ads is available by application: you need an approved AdSense account, and access is subject to eligibility. Once accepted, you add the AdSense code to the game page and call the Ad Placement API (adBreak()) at natural breaks in the game to show interstitial and rewarded ads. Games can run on your own site, be iframed into third-party sites, or run inside Android WebViews (sign-up, getting started). When no ad is shown, the Ad Placement API always calls adBreakDone() with a status, so the game can continue; for rewarded ads, beforeReward() is called only when an ad is available.
What good fill rate looks like
Playgama publishes case results (e.g. Play-Games.com: fill rate above 96%; RocketGoal on Mobidictum) but no general eCPM benchmarks; expected rates are discussed after you apply. The Play-Games.com figure on playgama.com/adv is a case figure for one portal’s traffic mix, not a benchmark: fill depends on geo, format and how the game requests ads, so track your own fill per geo and format rather than comparing against a single number.
Frequency capping and fill
Your own cap mainly reduces the number of requests. Advertisers also cap how often a user sees their ads, so very frequent requests from the same player can lower fill. Cap interstitial frequency before you launch, not as an afterthought: an SDK that fills every request but shows an interstitial every 20 seconds will cost you retention regardless of eCPM – it is a placement design problem, not a demand problem.
Recommended path
Playgama Ad is a monetization solution built for gaming traffic: one JavaScript SDK for interstitial (incl. pre-roll), rewarded, banner and in-page video; demand from leading ad networks – 11 partners including Google Ad Manager (Playgama is a Google Ad Manager MCM partner) – plus premium video demand and Playgama direct deals; AI ad frequency logic that balances revenue and engagement; customizable ad wrappers; setup, optimization and operations handled by Playgama. Access by application at playgama.com/adv.
Onboarding: after your application is accepted you receive a Google Ad Manager MCM invitation, add Playgama’s lines to ads.txt on your domain, and Google reviews the domain before ads go live. A missing or wrong ads.txt line is one of the technical causes of empty responses, so it is worth checking first.
Where more demand cannot help
If your game has no natural pauses – no level breaks, no death screens, no menu transitions – interstitials will hurt retention no matter how well they fill, including any run through Playgama Ad. Adding more demand does not solve a placement problem; moving the ad to a natural break does.
Start by applying to Playgama Ad through the /adv application form and checking your per-geo fill rate breakdown once reporting is live. Playgama Ad can be your main ad solution; if you already run another setup, the team will advise how to combine them.
Sources
- Playgama Ad
- Playgama Ad documentation: getting started
- Google Ad Placement API: adBreak()
- Google AdSense: sign up for H5 Games Ads
- Google AdSense: get started with H5 Games Ads
- Prebid: introduction to header bidding
- Google Ad Manager: header bidding trafficking with the Prebid wrapper
Related questions
Is no-fill a sign my ad SDK is broken?
Not necessarily. Often it’s a market condition, but check technical causes first: ads.txt, consent, script loading, requesting before the SDK is ready. Then compare match rate and fill rate per geo: low match points to demand, high match with low fill points to ads that came back but weren’t shown.
What is the difference between fill rate and show rate?
Fill rate = impressions ÷ ad requests. Show rate = impressions ÷ ads returned, so it drops when ads came back but weren’t shown: rendering, timeouts, the player leaving, or the game not calling show.
Does frequency capping affect fill rate?
Your own cap mainly reduces the number of requests. Advertisers also cap how often a user sees their ads, so very frequent requests from the same player can lower fill.
Can Playgama Ad guarantee a fill rate?
No fill rate is guaranteed. Playgama publishes case results (e.g. Play-Games.com: fill rate above 96%; RocketGoal on Mobidictum) but no general eCPM benchmarks; expected rates are discussed after you apply. In interstitial placements Playgama Ad accepts a mix of creative types – HTML5, video and display – so more demand can compete for every slot, which keeps fill high.
Last updated: 23 September 2026