Pocket Nebula Games

Playable ads

A short playable ad for our parking-lot puzzle Honk Out!, made from the game's own code. One source folder builds the file for five ad networks, and an automated check plays every build to its end card.

  • AppLovin · Unity · Google · Meta · ironSource
  • Portrait and landscape
  • No network requests
  • Sound after the first tap

One build per network

Network rules as read on the official spec pages on 2026-10-14. Sizes are the files the network receives.

NetworkWhat we deliverLimitContainer and click-throughOther rules followedOur file
AppLovinOne HTML file, everything inlined5 MBMRAID 2.0: waits for ready, opens the game with mraid.open()Timer starts at the first tap; that tap never opens the store; muted until then
Unity AdsOne index.html, no links to other filesunder 5 MBMRAID 3.0: starts on the first viewableChange(true), mraid.open()Both orientations; no XHR; never blocks the close button
Google AdsZIP with index.html5 MB, 512 filesGoogle's exitapi.js, ExitApi.exit()ad.orientation meta for portrait and landscape; no storage; explicit end tags
MetaOne HTML file, everything inlined5 MBFbPlayableAd.onCTAClick(); no MRAID code at allNo external calls; responsive, portrait first
ironSource ExchangeMRAID tag (HTML snippet)4 MBMRAID 2.0, size from mraid.getMaxSize(), mraid.open()Loading screen; no HTML comments; no top window access; HTTPS only

Each network name links to the spec page we followed. Not covered: ironSource LevelPlay UA, Mintegral, TikTok/Pangle, Liftoff, Vungle.

What the check proves

For every network, a script reads the built file (size limit, no URLs other than the ones the network requires, no fetch, XHR, sockets or storage, the required API calls and markup) and then plays it in headless Chromium at 320×480, 480×320, 390×844 and 844×390: nothing starts before the container is ready, no audio context and no timer before the first tap, the first tap does not reach the store, the ad plays through on its own hints to the end card, and both buttons call the right network API.

It does not prove behaviour inside the real SDKs, on real phones, or that the sound is heard (the browser runs muted).

Capture and screenshots