Journal · 2026-05-05 · 4 min

Ads that don't shout.

The studio runs on ads. We say this clearly because pretending otherwise tends to produce either burnout or a paywall, and we don't want either. The interesting design question is: can ads in a calm game feel like a calm thing too?

The program we use

Orvyn Living is part of Google's AdSense H5 Games Ads program — a separate application-only product on top of regular AdSense. It exists because traditional banner ads don't fit games well: a bored sidebar banner during play is just visual noise that nobody clicks. H5 Games Ads gives publishers two formats designed for games: interstitial (a full-screen ad at a natural break) and rewarded (an opt-in ad that grants something in exchange).

Google's program rules forbid showing ads during gameplay. We agree. The whole point of natural breaks is that they're already paused — the player has already stopped.

The choices we made

Within the program rules there's still a lot of room to be either kind or unkind. Some decisions we kept coming back to:

  • Interstitials only at the natural ending. Drift shows one when you crash. Stargaze shows one when you complete the constellation. The Daily Puzzle shows one when you finish. Never mid-round, never on the start screen, never on a level transition with a one-second buffer. The player has already stopped before the ad starts.
  • Rewarded ads must offer something honest. "Watch a video for an extra life on a free game" is fine. "Watch a video to see your photo in colour" is not. Our rewarded ads grant a season change, a constellation hint, a stronger breeze. None of these block progress. The game works fine without them.
  • Closing a rewarded ad is free. A clear "no thanks" path that returns you to the same state. No 30-second countdown to a tiny X.
  • Pause everything before the ad. Audio off, animation paused. Resume on close. This is in Google's policy too, but the practical reason is: it keeps the seam between game and ad obvious. If the music kept playing under the ad, the ad would feel less like an ad and more like a malfunction.
  • Frequency-cap the interstitials. If you're playing five rounds of Drift in a row, you do not see five interstitials. The Ad Placement API handles this for us via preloadAdBreaks, but it's worth knowing the lever exists.

What we won't do

We won't put a banner across the top of the canvas. We won't show an interstitial on first arrival ("watch this ad to begin"). We won't dim the screen and pretend we're loading something. We won't run video ads that auto-play with sound. None of these will make us materially more money than the alternative — they'll just make us feel worse about the games.

Cookies and consent

Personalised ads use cookies. We surface this with a small banner on first visit: Accept all or Essential only. If you choose Essential only, ads still appear, they just aren't personalised. You can change your mind anytime on the Cookies page.

For EU/UK visitors specifically, we also use Google's Funding Choices CMP — required if we want to serve personalised ads to those regions under the IAB's Transparency & Consent Framework. Same banner, more compliance paperwork behind it.

What we'd love to do eventually

Drop ads entirely in favour of small one-time payments — "buy the studio a coffee, lose the ads forever." We're not there yet. Stripe checkout is more friction than ads-by-default for a five-minute browser game, and most people, frankly, would rather see an ad than open a wallet. We may try it anyway.

For now: ads at the rest points, optional rewards, no nags. If you find a moment in any game where the advertising feels louder than the game itself, please tell us. That's a design failure we'd want to fix.

← All notes Play a game