Playable ads — demos
Three interactive HTML5 ads in formats that dominate mobile UA today: a physics pin-puzzle, a crowd runner with math gates and a merge battler on PixiJS. Each one is a single HTML file with no external requests, structured for MRAID 2.0. Tap a phone to play.
Tower Rescue — pin puzzle
- Tutorial level, then a 3-pin puzzle: water cools lava into stone, gold melts in lava
- Particle fluid physics on canvas, fail state with retry, end card
- Adaptive hand hint shows only when the player hesitates
Crowd Gates — runner
- Drag to steer through +, −, × gates, then the crowd fights the boss army
- Auto-play until the first touch, so the ad never stalls on a passive viewer
- Win and lose both lead to the end card with a CTA
Merge Army — PixiJS
- Drag same-level soldiers together to merge, buy units, then FIGHT
- Built on PixiJS 8 (WebGL), library inlined — still one file, ~0.8 MB
- Live power vs enemy readout, tutorial hand that switches to the FIGHT button
Stack Up — Telegram Mini App game
- One-tap stacker with perfect-drop combos that grow the block back
- Telegram WebApp SDK hooks (haptics, MainButton, player name, CloudStorage best score) — integration demo, not yet tested inside a live bot
- “Share” challenges friends through Telegram; works as a normal web page too
Technical
- Single HTML file each, no external assets or requests: 12–17 KB for the vanilla canvas ads, ~0.8 MB with PixiJS inlined (sizes well below the common 5 MB playable limit)
- MRAID 2.0 integration scaffold: waits for
readyandviewable, CTA viamraid.open(); Google Ads viaExitApi.exit(); plain web fallback - Portrait and landscape, letterboxed 9:16 logical canvas, retina-aware
build.mjsproduces starting variants for AppLovin, Unity Ads, ironSource, Mintegral and Google Ads; each network's own validator is still the final check before launch