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

  1. 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.
  2. 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.
  3. 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).
  4. 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:

TimingVerdictWhy
Scene/level transition✅ SafePlayer expects a pause
Level complete✅ SafeNatural breath before next
Game over → retry✅ SafeBetween rounds
Pause menu (player-initiated)✅ SafePlayer chose the pause
On first load❌ AvoidInstant bounce, portal-rejected
Mid-level / mid-action❌ NeverDestroys the run, kills retention
Fixed 30s timer❌ AvoidFeels like a tax, not a break
After every level⚠️ Cap itHigh 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:

  1. Cap frequency (e.g., 1 per 3 minutes minimum) — this is a retention decision, not just a rule.
  2. Call the SDK break correctly (commercialBreak() before the ad, resume after) — portals grade this.
  3. Degrade gracefully without an SDK — your own hosted version should just not show ads (mode detection in RewardManager).

Rewarded vs interstitial: the honest math

DimensionRewardedInterstitial
Player valuePlayer opts in for a rewardPlayer is interrupted
Revenue modelPer completed view (high eCPM)Per impression (lower eCPM, more volume)
Retention riskLow — player chose itHigh if badly timed
Portal share50-70% typical (income)Same
Best forRewards, boosters, extra livesBreaks: 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

  1. Interstitial on load — the #1 portal-rejection pattern; never.
  2. Fixed timers — 30-second popups are the classic retention killer; use event-based breaks.
  3. No frequency cap — after-every-level without a minimum interval churns players.
  4. Wrong SDK call — commercialBreak()/gameplayStop() timing is graded; missing/duplicate events fail review (Poki events).
  5. 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).