The caps side by side
Five networks publish a playable spec in full. Each row is that network’s own figure, from the page named under the table.
| Network | Max size | Package | Orientation | Click call |
|---|---|---|---|---|
| Google Ads | 5MB | ZIP, up to 512 files | ad.orientation meta tag | ExitApi.exit() on the CTA |
| Unity | Under 5MB | One minified index.html, assets inlined | Both, one responsive build | mraid.open(), MRAID 3.0 |
| AppLovin | 5MB or smaller | One HTML file, base64 or base122 | Both required | mraid.open(), MRAID 2.0 |
| TikTok | Under 5MB compressed | ZIP, index.html at the top level | config.json, Playable_orientation | window.openAppStore() |
| Mintegral | 5MB | One HTML file | Either, no fixed size | Not published |
The rules behind the numbers
What each network asks for beyond the size cap, in its own words, including the ones that reject a creative silently.
- Google Ads, package
A .ZIP of up to 5MB and no more than 512 files, up to 20 per ad group, with every asset on a relative path inside the ZIP.Source: Google Ads Help, HTML5 and playable ads for App campaigns
- Google Ads, orientation
Declared in the head as an ad.orientation meta tag, set to portrait, landscape, or both.Source: Google Ads Help, HTML5 and playable ads for App campaigns
- Google Ads, billing and sound
Charged per engagement, and sound must not start before the viewer interacts. Not eligible for pre-registration campaigns.Source: Google Ads Help, HTML5 and playable ads for App campaigns
- Unity, the file
One minified index.html under 5MB with every image, sound and video inlined as base64. No remote URLs and no network requests at all.Source: Unity, playable specifications
- Unity, MRAID
MRAID 3.0 only, injected by Unity, so the playable ships no MRAID script. Wait for the ready event and for viewability before starting, and pause when the ad stops being viewable.Source: Unity, playable specifications
- Unity, the click
mraid.open() for the store, and only on a CTA tap after the player has interacted. Never on the first tap. Expand, resize and custom close are prohibited.Source: Unity, playable specifications
- AppLovin, the file
A single HTML file of 5MB or smaller with resources embedded as base64 or base122. External resources are prohibited, and it has to work in both orientations.Source: AppLovin support centre, creative specs and guidelines
- AppLovin, MRAID
MRAID v2.0. Wait for the ready event, or check that the state is not loading, before calling MRAID. The ad timer starts only after the first interaction.Source: AppLovin support centre, creative specs and guidelines
- TikTok, package
A ZIP under 5MB after compression, with index.html in the first-level directory and a config.json beside it whose Playable_orientation is 0 for either, 1 for portrait, 2 for landscape.Source: TikTok Ads Manager help, about TikTok playable ads
- TikTok, the click
The TikTok SDK goes at the bottom of the body, before your own script, and the CTA calls openAppStore on the window. MRAID, external requests and redirects are all disallowed.Source: TikTok Ads Manager help, about TikTok playable ads
- Mintegral
One HTML file at 5MB or less, rendering in portrait or landscape with no fixed size, for playable interstitial and rewarded placements.Source: Mintegral help centre, creative asset specifications
- ironSource exchange
A different shape entirely: an MRAID 2.0 tag of raw HTML rather than a document, with everything downloaded to the device capped at 4MB, and absolute HTTPS URLs for assets.Source: Unity Grow, MRAID specifications and guidelines for the ironSource exchange
- Meta
Published in its own help article, Specifications for Playable Ads Assets, and gated to the app install objective. We quote no size for it: the article is client-rendered and we could not read the figures ourselves.Source: Meta Business Help Centre, specifications for playable ads assets
- MRAID itself
The in-app rich media standard the networks build on. Version 3.0 is the newest, with 2.0 and 1.0 kept as previous versions, which is why networks sit on different ones.Source: IAB Tech Lab, mobile rich media ad interface definitions
Why the caps are all 5MB
The limit is not a policy choice, it is the load. A playable has to be on screen and interactive before an impression is wasted, inside another app, often on a phone on mobile data.
That is also why Unity, AppLovin and Mintegral want one file with everything inlined as base64 rather than a folder. One request cannot half-arrive. Inlining costs about a third in size over raw binary, which is the real reason a 5MB cap feels tighter than it sounds: the art budget is closer to 3.5MB.
The two ZIP networks, Google and TikTok, unpack server side and serve the result, so they can afford a bundle. Google allows up to 512 files in it. TikTok wants the entry file at the top level and reads orientation from a config file rather than a meta tag.
The click is the part that silently fails. Every network routes the store through its own call, so a playable built for one network and shipped to another runs perfectly and converts nothing. On one network the CTA calls MRAID, on another a window function, and on Google an exit API. Check that single line before every upload.
Same story for the first tap. Unity and AppLovin both forbid sending a player to the store on it, and both start their timer from the first interaction, so a playable that opens the store immediately is rejected rather than throttled.
What gets a playable rejected
Four rules appear across most of these networks, and each one is a rejection rather than a warning.
It calls out to a server
Unity, AppLovin, TikTok and Moloco all forbid network requests. No analytics beacon, no remote font, no asset fetched at runtime. The playable has to work with the radio off.
It fires its own attribution
The network counts the install. A playable that reports its own events is rejected by Unity outright.
It opens the store on the first tap
Unity and AppLovin both require real interaction first. This is the most common rejection on a playable ported from a different network.
It plays sound unprompted
Google states it plainly: sound should not be enabled before the user interacts with a playable ad.
Playables built to these specs
Each of these is a single HTML file an advertiser shipped to AppLovin, mirrored whole. Open one and it runs here exactly as it ran in an ad slot.
PlayableMonopoly GO“Board, published by Scopely, Inc.”Board, one of the largest playable spenders
PlayableMerge Dragons“Match / merge, published by Gram Games”Merge, the mechanic in one drag
PlayableBingo Blitz“Cards / casino, published by Playtika Santa Monica, LLC”Casino, a single card to dab
PlayableWord Roll“Word, published by PlaySimple Games Pte Ltd”Word, the whole game in one screen
The video side, done for you
A playable is an engineering job. The video ads that run beside it are a weekly one.
Director by Sprites is a full creative team for your startup, in private beta. Every Monday you get finished, on-brand video ads, reviewed by a human.
Strategy, hooks, scripts, shooting and editing, end to end. You never write a prompt. You pick the winners. Sprites ships the campaigns.
Every video is checked by a person before it reaches your inbox. No endless revisions.
Questions
What size can a playable ad be?
Google Ads, AppLovin, TikTok and Mintegral all cap it at 5MB, and Unity asks for under 5MB. The ironSource exchange is the exception at 4MB for everything downloaded to the device.
Is a playable ad one HTML file or a ZIP?
Both, depending on the network. Unity, AppLovin and Mintegral want a single HTML file with every asset inlined. Google Ads and TikTok want a ZIP with an entry file inside it.
Which MRAID version do playable ads need?
Unity requires MRAID 3.0, AppLovin requires MRAID 2.0, and the ironSource exchange is on 2.0. TikTok forbids MRAID entirely and uses its own SDK call instead.
Can I run the same playable on every network?
Not without changing the click. Each network routes the store through its own call, so the same file will run and convert nothing on a network it was not built for.
What are the Meta playable ad specs?
Meta publishes them in its own help article, Specifications for Playable Ads Assets, and limits the format to the app install objective. We do not quote its figures here because we could not read them from the page.
Keep going
Want the video ads around your playables made?
Every Monday you get finished, on-brand video ads, reviewed by a human. You never write a prompt. You pick the winners. Sprites ships the campaigns.