Interstitial Ads in HTML5 Games: Timing, Rules, and Real Integration
Interstitial Ads in HTML5 Games: Timing, Rules, and Real Integration
Honesty note: my game (Merge Fish 2048) currently integrates rewarded ads — not interstitials — because interstitials demand timing discipline that a merge game is well positioned for but I haven’t shipped yet. This guide maps the decision honestly: the rules, the portal constraints, and the integration pattern (from my SDK work in the ad SDK comparison).
TL;DR
- Interstitials pay per impression, not per action — higher frequency potential than rewarded ads, but with a hard rule: never interrupt gameplay. An interstitial at the wrong moment destroys retention and can get your game rejected.
- The safe timing windows: scene transitions, level completion, game-over → retry, natural pauses. The unsafe windows: mid-action, on load, during an active level, every 30 seconds.
- Portal rules set the floor: CrazyGames and Poki require correct SDK lifecycle calls around interstitials (
commercialBreak()/gameplayStop()— Poki specifics); rate/frequency limits and “only own ad system” rules apply (portal rules). - The honest integration priority: rewarded > interstitial for player-friendliness and retention; interstitials earn more per player only if you don’t drive players away with bad timing. Start rewarded, add interstitials at natural breaks with a strict cap (e.g., max 1 per 3 minutes).
The timing rules that make or break interstitials
The single rule: an interstitial must feel like a natural break, never a disruption. What that means concretely:
| Timing | Verdict | Why |
|---|---|---|
| Scene/level transition | ✅ Safe | Player expects a pause |
| Level complete | ✅ Safe | Natural breath before next |
| Game over → retry | ✅ Safe | Between rounds |
| Pause menu (player-initiated) | ✅ Safe | Player chose the pause |
| On first load | ❌ Avoid | Instant bounce, portal-rejected |
| Mid-level / mid-action | ❌ Never | Destroys the run, kills retention |
| Fixed 30s timer | ❌ Avoid | Feels like a tax, not a break |
| After every level | ⚠️ Cap it | High frequency = player churn |
Portals test for this. The reviewers’ checklist (from my CrazyGames submission notes) explicitly checks ad placement, frequency, and whether an ad interrupts gameplay — an interstitial in the wrong place is a rejection-grade issue, not a tuning issue.
The integration pattern (SDK-aware)
The same lifecycle discipline as rewarded ads, but at break points:
// Pseudo-pattern: interstitial at a safe break
// (pattern from my RewardManager work — [SDK comparison](/blog/game-ad-sdk-comparison))
function onLevelComplete() {
showLevelCompleteUI();
maybeShowInterstitial(); // safe window: between levels
}
function maybeShowInterstitial() {
const now = Date.now();
if (now - lastInterstitialAt < MIN_INTERVAL_MS) return; // cap: e.g. 180_000
if (!sdkAvailable()) return; // graceful degradation
sdk.commercialBreak(() => {
lastInterstitialAt = now; // only counts when actually shown
});
}
The three things that matter:
- Cap frequency (e.g., 1 per 3 minutes minimum) — this is a retention decision, not just a rule.
- Call the SDK break correctly (
commercialBreak()before the ad, resume after) — portals grade this. - Degrade gracefully without an SDK — your own hosted version should just not show ads (mode detection in RewardManager).
Rewarded vs interstitial: the honest math
| Dimension | Rewarded | Interstitial |
|---|---|---|
| Player value | Player opts in for a reward | Player is interrupted |
| Revenue model | Per completed view (high eCPM) | Per impression (lower eCPM, more volume) |
| Retention risk | Low — player chose it | High if badly timed |
| Portal share | 50-70% typical (income) | Same |
| Best for | Rewards, boosters, extra lives | Breaks: transitions, game over |
For a casual game, the standard pattern is rewarded as the workhorse, interstitials as a capped supplement at true breaks. My game ships rewarded-first; interstitials come only with the timing caps above (monetization guide).
Pitfalls
- Interstitial on load — the #1 portal-rejection pattern; never.
- Fixed timers — 30-second popups are the classic retention killer; use event-based breaks.
- No frequency cap — after-every-level without a minimum interval churns players.
- Wrong SDK call —
commercialBreak()/gameplayStop()timing is graded; missing/duplicate events fail review (Poki events). - No graceful degradation — showing nothing when no SDK is present is correct; showing broken ad code isn’t.
Bottom line
Interstitials are a legitimate second revenue channel for HTML5 games — if and only if timing discipline holds. Safe windows are natural breaks (transitions, level complete, game over → retry); the forbidden ones are load, mid-action, and fixed timers. Follow portal SDK lifecycle rules, cap frequency (1 per ~3 min), and degrade gracefully without an SDK. Start with rewarded ads as the workhorse; add interstitials as a capped supplement only at true breaks — that’s the sequence that protects both revenue and retention (full monetization).