Blockers suppress ad requests before monetization code runs, reducing total requests. Lost revenue is calculated using Revenue = ad requests x fill rate x eCPM / 1000, where full-screen formats and Tier-1 geos earn several times more.
At a glance
| Fact | Value | Source |
|---|---|---|
| Fill rate formula | impressions / ad requests | playgama.com |
| Revenue formula | requests x fill rate x eCPM/1000 | playgama.com |
You can’t see them directly in ad reports; you can only infer the gap by comparing total page views or game sessions (from your own analytics or backend) against ad requests logged by your monetization SDK. A large, consistent gap across a stable audience usually means blocking, not low fill.
Playgama Ad reports ad requests, match rate, fill rate, show rate, impressions, eCPM, RPM and revenue, broken down by game, placement, format, geo and device.
How can you calculate the revenue lost to ad blockers?
Revenue = ad requests x fill rate x eCPM / 1000. In relative terms, full-screen formats earn several times more per impression than banners, and Tier-1 geos earn several times more than other geos. Because blockers suppress ad requests directly, calculating the lost revenue means estimating missing requests by comparing page views or game sessions against logged ad requests.
What to do in code regardless of blockers?
- Never assume every ad call succeeds. Treat ’empty’ (no fill) as a normal outcome, not an error – there is no ‘error’ event to catch, so branch on the empty/no-fill state and resume gameplay immediately.
- In Unity WebGL, ad calls into browser JavaScript go through a .jslib plugin (Unity’s interop mechanism for calling browser scripts from a WebGL build).
- In Godot 4, the equivalent bridge is the JavaScriptBridge singleton for web exports.
- Design your reward/interstitial flow so the player never gets stuck waiting on a slot that will never fill – always have a timeout or immediate continue path.
Because you can’t fix blocking client-side, focus engineering time on continuing gameplay gracefully and accurate request-vs-session measurement instead of trying to detect or bypass blockers.
Sources
- Playgama Ad
- Playgama Ad getting started
- Unity manual: interacting with browser scripting
- Godot docs: exporting for the Web
Related questions
Can I detect ad blockers directly in my game code?
You can infer blocking by comparing session counts to ad request counts over time, but there is no reliable, universal detection method built into ad SDKs.
Should I show a message asking players to disable their ad blocker?
Some sites do; it’s a policy and UX decision separate from SDK integration, and it won’t recover requests already missed.
What should happen when an ad slot returns empty?
Continue the game immediately – treat empty/no-fill as a normal state to branch on, not an error to catch or retry indefinitely.
Last updated: 24 September 2026