Google runs HTML5 playables in App campaigns, which also serve on AdMob inventory, and accepts them as a ZIP of up to 5 MB with no more than 512 files. The playable needs a complete HTML structure in UTF-8, uses ExitApi.exit() from Google's exitapi.js for the click to the store, and declares its orientation with an ad.orientation meta tag. MRAID isn't required. External requests are limited to Google Fonts and Google-hosted jQuery, GreenSock and CreateJS. Check every build with Google's HTML5 Validator before upload.
- ZIP only, 5 MB at most, 512 files at most, up to 20 ZIPs per ad group.
- Click out with
ExitApi.exit(). If you include neither exitapi.js nor MRAID, Google adds its own CTA. - Declare orientation in a meta tag: portrait, landscape, or both.
- Google is the one network that allows a few external libraries, and only those.
- Genie Playable exports a Google-ready ZIP of every playable from the same source as your other networks.
What are Google's HTML5 playable requirements?
| Requirement | Google's rule |
|---|---|
| Where it runs | Google Ads App campaigns, including AdMob inventory |
| File | ZIP, 5 MB at most, 512 files at most |
| Per ad group | Up to 20 ZIPs |
| HTML structure | <!DOCTYPE html>, <html> and <body> with explicit end tags, UTF-8 |
| Click to store | Include exitapi.js from tpc.googlesyndication.com and call ExitApi.exit() |
| MRAID | Not required. Google accepts exitapi.js or an MRAID equivalent; if neither is present it adds its own CTA |
| Orientation | Meta tag ad.orientation: portrait, landscape, or "portrait,landscape". Sizes 320x480 or 480x320, responsive |
| Sound | Not enabled before the user interacts |
| External requests | Only Google Fonts and Google-hosted jQuery, GreenSock and CreateJS |
| Not eligible | Pre-registration and engagement App campaigns |
What goes in the HTML?
A minimal Google playable has three things most other networks don't ask for: the full HTML skeleton with end tags, the orientation meta tag, and the exitapi.js script. For example:
<meta name="ad.orientation" content="portrait,landscape"> <script src="https://tpc.googlesyndication.com/pagead/gadgets/html5/api/exitapi.js"></script> // on CTA tap: ExitApi.exit();
Everything else lives inside the ZIP: images, audio, fonts and your own scripts, referenced by relative paths.
How is Google different from AppLovin and Meta?
| AppLovin | Meta | ||
|---|---|---|---|
| Format | ZIP | Single inlined HTML | Single HTML or ZIP |
| Click-out | ExitApi.exit() | mraid.open() | FbPlayableAd.onCTAClick() |
| MRAID | Optional | Required (2.0) | Must work without it |
| External libraries | A short allowed list | None | None |
| Orientation | Declared in a meta tag | Both, responsive | Portrait first |
The ZIP format helps with size. Because assets don't have to be base64-inlined into one file, a Google build can come in lighter than the AppLovin version of the same playable. Full comparison in Playable ad specs by network.
How do I test a Google playable?
- 1Zip the build with index.html and all assets, and check it's under 5 MB and 512 files.
- 2Run the ZIP through Google's HTML5 Validator at h5validator.appspot.com/adwords/asset.
- 3Confirm the CTA calls
ExitApi.exit()and sound stays off until the first tap. - 4Check both orientations if you declared "portrait,landscape".
- 5Upload to your App campaign ad group and preview.
Google Ads Help also points to Google Web Designer, which has a Google Ads environment for building HTML5 assets.
What are the common Google playable mistakes?
- Missing end tags or DOCTYPE, which the validator flags.
- Loading a library from a CDN that isn't on Google's allowed list.
- No orientation meta tag, so the playable renders in the wrong layout.
- Using the AppLovin build as is, with
mraid.open()and everything inlined into one file. - Trying to run playables in a pre-registration or engagement campaign, which isn't supported.
Where does Genie fit?
Genie Playable builds playables from your game (your APK or HTML build plus the assets, narrative and live events in Genie), from a format that's already working, or from a brief. Every playable exports as a Google-ready ZIP and as versions for Meta, TikTok, AppLovin, Unity Ads, Mintegral, Liftoff, Moloco, Snapchat and Digital Turbine, all from one source. Try it free on your game.
FAQ
What is the file size limit for Google playable ads?+
5 MB for the ZIP, with no more than 512 files inside.
Do Google playables need MRAID?+
No. Google uses exitapi.js and ExitApi.exit(), or accepts an MRAID equivalent.
Can I use external libraries in a Google playable?+
Only Google Fonts and Google-hosted jQuery, GreenSock and CreateJS. Everything else must be inside the ZIP.
Do Google playables run on AdMob?+
Yes. HTML5 playables in Google Ads App campaigns serve across Google's inventory, including AdMob.
How do I validate a Google playable?+
Use Google's HTML5 Validator before uploading.

