Free tools · No account
Check your playable before the network does
Drop an HTML5 or ZIP playable and see, network by network, whether it passes the size limit, packaging, MRAID and store-call rules, with what to change when it doesn’t.
- Same rules as our export
- Files never stored
- 9 ad networks
merge-garden.html
3.1 MB · single HTML · checked for 9 networks
- AppLovin3.1 MB of 5 MB · MRAID ready gate
- Unity AdsWaits for viewable · mraid.open()
- Meta3.1 MB is over the 2 MB limit
- Google AdsShip it as a ZIP with index.html
- TikTokNo window.openAppStore() call
What the playable ad validator checks
Each rule runs once per network, because networks disagree: a file that is right for Meta is wrong for AppLovin. The rules are the ones our own export is built to pass.
- 01
File size
Against each network’s limit: 2 MB for Meta, 5 MB for the rest. A ZIP checked for a single-file network is sized as one HTML file with its assets inlined, which adds about a third to each asset.
- 02
Packaging
One HTML file for AppLovin, Unity, ironSource, Meta and Moloco. A ZIP with the right entry file for the others: index.html for Google, index.html and config.json for TikTok, ad.html for Liftoff, name/name.html for Mintegral.
- 03
mraid.js
Present where the network serves MRAID (AppLovin, Unity, ironSource), absent where it’s rejected (Meta, Moloco, TikTok).
- 04
Start gate
On MRAID networks the game should wait for MRAID’s ready event and for the ad to be viewable. Unity requires the viewable part.
- 05
Store call
The install button has to use the network’s own call: mraid.open(), dapi.openStoreUrl(), FbPlayableAd.onCTAClick(), ExitApi.exit(), openAppStore(), window.install() or a postMessage.
- 06
External requests
Scripts, stylesheets, fonts, images or fetch calls to other servers, and libraries loaded from a CDN instead of inlined. Ad web views block them and networks reject the ad.
- 07
Network extras
Google’s exitapi.js and ad.orientation meta tag, Mintegral’s gameEnd() call, Liftoff’s "complete" message when the game ends.
- 08
Phone basics
A viewport meta tag, a layout that follows resize and rotation, sound that waits for a tap, no store redirect on a timer and no alert() dialogs.
Playable ad specs for nine ad networks
Size limit, file layout, whether mraid.js belongs in the file and how the install button reaches the store. One page per network.
Guides and comparisons
Guides
- What is a playable ad?How a playable works, what each ad network accepts, the rules a build must pass, and examples you can play.
- How to make a playable adFrom a store link to a file per network, step by step, plus what the same job looks like by hand, in Unity or with a studio.
- Playable ad best practicesThe rules our genre playbooks enforce: the first three seconds, one real mechanic, a fail state, the end card, size budgets and testing.
- MRAID for playable adsWhat MRAID is, which networks expect mraid.js and which reject it, and the start gate and store call our exports use.
Questions about the tools
Skip the fixes: build it right the first time.
Paste your store link. Playbaker builds the playable and exports a file per network that passes these checks.