Build APK + AAB
Phaser · PixiJS · Construct · Godot HTML5 · plain canvas

Publishing an HTML5 game on Google Play

Games are the one category where a website wrapped as an app is not suspicious — a game is the functionality. The Play Console asks different questions of games, and the ads and purchases rules bite harder. Here is the game-specific path.

Build the APK + AAB → Publishing checklist

App type and category

When you create the app in Play Console, choose Game, not App. Games get their own store surfaces, a category picker (Arcade, Puzzle, Casual…) and the game-specific questions below. Changing type later is possible but resets some listing fields.

Content rating: IARC for games

The IARC questionnaire asks about violence, fear, sexual content, language, controlled substances, gambling themes, and interactive elements (users interact, shares location, in-app purchases). Answer for what the game contains — cartoon violence in a platformer is a specific option and yields a low rating. Undeclared content found in review is a metadata violation plus a re-rating.

Ads in a game

  • Declare "contains ads" if any ad network is present, web or AdMob.
  • Rewarded ads must be opt-in: the player chooses to watch for a reward, with a clear decline option. Auto-playing a rewarded ad is a violation.
  • Interstitials may not appear at app launch, before the player has interacted, or in a way that blocks the game unexpectedly. Between levels is the accepted pattern.
  • Banners may not sit where gameplay taps land.
  • If the game targets children or could appeal to them, the Families policy restricts ad networks to Families-certified ones and forbids personalised ads.

If your web game already runs a web ad network, don't also enable AdMob in the builder on the same screens.

In-game purchases: Play Billing

Virtual currency, skins, level packs, remove-ads purchases — all digital goods consumed in the app, all Play Billing only. A WebView wrapper that sells them through Stripe or PayPal is rejected under the payments policy. Options:

  • Make the Play version free with no purchases (ad-supported), and keep web purchases on the web version.
  • Integrate Play Billing natively — beyond a wrapper; requires a native bridge into the game's JavaScript.
  • List as a Trusted Web Activity and use the Digital Goods API from the game's JavaScript, which routes purchases through Play Billing. The sister site FreeWebToApp covers making the game a PWA first.

Declare purchases in the console's pricing settings and in the IARC questionnaire.

Builder settings for games

  • Orientation: lock to what the game supports. Landscape for most action games; portrait for casual.
  • Screen mode: immersive (hides status and navigation bars).
  • Splash: black or the game's background colour so the canvas appears seamlessly.
  • Exit confirmation: on, so the back gesture doesn't kill a session.
  • Pull to refresh: off — a downward swipe in a game must not reload it.
  • Offline screen: on; if the game is self-contained, the WebView cache may keep it playable offline for a while, but don't promise offline play unless you've tested it.

Performance and the pre-launch report

Play's pre-launch report runs your game on real low-end devices and flags crashes, ANRs (the UI frozen for 5 seconds) and excessive memory. WebGL games that assume a desktop GPU are the usual offenders. Test on a cheap phone; cap the render resolution; unload textures between levels. A report full of red slows review and, after launch, drags the listing down in Android vitals.

Listing assets for games

Screenshots in the locked orientation from the installed game — gameplay, not menus. A promo video matters more for games than for any other category; the promo video tool handles short loops from captures. Feature graphic: key art, not text. The listing guide has the game-specific notes.

Frequently asked questions

Does the minimum-functionality policy apply to games?

A game is functionality, so a wrapped HTML5 game is not the pattern the policy targets. Reviewers still check that it works, that ads follow the ads policy and that purchases use Play Billing.

Can I sell coins or skins through my own web payment inside the app?

No. Digital goods in a Play-listed app must use Play Billing. Remove purchases from the Play version, integrate Play Billing natively, or use the Digital Goods API in a Trusted Web Activity.

Can I show rewarded video ads?

Yes, if the player opts in each time with a clear choice to decline. The builder's rewarded flow is built that way.