Playable ads · specs

Playable ad specs by network

Nearly every network caps a playable at 5MB, and then disagrees about everything else. Google and TikTok want a ZIP, Unity and AppLovin want one HTML file with every asset inlined, and the MRAID version and the click call change per network.

A real Shoppin' Drop playable. More Shoppin' Drop ads

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.

Published playable requirements, read 30 October 2026. Google Ads Help, Unity’s user acquisition docs, the AppLovin support centre, TikTok Ads Manager help and the Mintegral help centre.
NetworkMax sizePackageOrientationClick call
Google Ads5MBZIP, up to 512 filesad.orientation meta tagExitApi.exit() on the CTA
UnityUnder 5MBOne minified index.html, assets inlinedBoth, one responsive buildmraid.open(), MRAID 3.0
AppLovin5MB or smallerOne HTML file, base64 or base122Both requiredmraid.open(), MRAID 2.0
TikTokUnder 5MB compressedZIP, index.html at the top levelconfig.json, Playable_orientationwindow.openAppStore()
Mintegral5MBOne HTML fileEither, no fixed sizeNot 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.

All playable examples

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.