Skip to content
bolt playables Back to site
  1. Home
  2. Playable ad specs

playable ad specs by network.

Most ad networks cap a playable ad at 5 MB and ban network requests, but they disagree on almost everything else: one HTML file or a ZIP, MRAID or their own API, and which CTA function opens the store. Here is every major network side by side, checked against each one's own documentation, with a full spec page for each.

Last checked October 16, 2026 against each network's own documentation

Every network side by side

NetworkFileMax sizeMRAIDCTA callTest with
AppLovinSingle HTML5 MB2.0mraid.open()Playable Preview
Meta (Facebook)Single HTML or ZIP (100 files)5 MBNoFbPlayableAd.onCTAClick()Playable Preview Tool
Google AdsZIP (512 files)5 MBNoExitApi.exit()HTML5 Validator
Unity AdsSingle index.html5 MB3.0mraid.open()Ad Testing app
Liftoff (Vungle)Single HTML or ZIP5 MBYesmraid.open() (no URL)Ads Manager QA
MolocoSingle HTML (no ZIP)5 MBNoFbPlayableAd.onCTAClick()Ads Manager, Creative Lab
MintegralZIP, matching names5 MBNowindow.install()Mindworks test tool
ChartboostSingle HTML3 MB*1.0 + some 2.0mraid.open(url)Exchange demo app
TikTokZIP + config.json5 MBNowindow.openAppStore()Ads Manager upload
SnapchatZIP + config.json5 MBNoScPlayableAd.onCTAClick()Ads Manager upload
AdikteevHTML snippet + JS/CSSNot published1mraid.open(AK_CLICK_DESTINATION_URL)Client partner

* Chartboost's last published self-serve spec. Its exchange has no hard limit and recommends under 5 MB. Sizes are for the file you upload: the HTML file, or the ZIP.

Rules that apply on every network

The networks word them differently, but these hold everywhere. A playable that follows them only needs its packaging and CTA call changed per network:

  • Everything ships in the file. No CDN libraries, web fonts, analytics or remote config. Only the network's own script is allowed (and Google's short allowlist).
  • Only a tap opens the store. No redirect on load, on a timer, or on the first touch.
  • Use the network's CTA call, never window.location or a plain link. It's how the network attributes the click.
  • No close button of your own. The network adds one; leave its corners clear.
  • Sound waits for a tap and stops when the ad is hidden or the phone is muted or locked.
  • Responsive, both orientations, except Meta and Snapchat, which are portrait only.
  • A visible install button for the whole playable, and an end screen.

Three ways networks package a playable

  • One self-contained HTML file with every asset inlined as base64: AppLovin, Unity, Moloco and Chartboost. Meta and Liftoff accept this too.
  • A ZIP with a config file: TikTok and Snapchat want index.html plus config.json at the root; Mintegral wants the zip, folder and HTML to share one name.
  • A ZIP of separate files: Google (with an ad.orientation meta tag), Meta and Liftoff.

That's why every network gets its own build. The CTA call, MRAID handling and packaging all differ, so a file made for one network won't pass review on another.

MRAID or not

MRAID is the IAB standard API that in-app ad SDKs give HTML ads. AppLovin (2.0), Unity (3.0), Liftoff, Chartboost and Adikteev use it, and the CTA is mraid.open(). Meta, Google, Moloco, Mintegral, TikTok and Snapchat don't, and several reject a file that references mraid.js. That's the most common reason a playable built for one network fails on another.

Common questions

What is the maximum file size for playable ads?

5 MB on almost every major network: AppLovin, Meta, Google, Unity, Liftoff, Moloco, Mintegral, TikTok and Snapchat. Chartboost's last self-serve spec allowed 3 MB.

Do all ad networks use MRAID for playable ads?

No. AppLovin, Unity, Liftoff, Chartboost and Adikteev use MRAID. Meta, Google, Moloco, Mintegral, TikTok and Snapchat use their own APIs, and several reject files that include mraid.js.

Can one playable ad file run on every network?

No. Each network needs its own build, because the CTA call, MRAID handling and packaging differ: a single HTML file with mraid.open() for AppLovin or Unity, a ZIP with config.json and window.openAppStore() for TikTok, a ZIP with matching names and window.install() for Mintegral.

Which networks require a single HTML file?

AppLovin, Unity and Moloco accept only one self-contained HTML file. Meta and Liftoff accept a single HTML file or a ZIP. Google, TikTok, Snapchat and Mintegral require a ZIP.

Can playable ads load assets from a CDN?

Generally no. Networks ban network requests, so images, audio and fonts are inlined or packed in the ZIP. Liftoff hosts ZIP contents itself, and Google allows a short list of Google-hosted libraries and Google Fonts.

skip the spec sheet.

We build custom playables and package them for every network on this list, ready to upload. Packaging is included in the price.

Get a quote

Specs by network

  • All networks compared
  • AppLovin
  • Meta (Facebook)
  • Google Ads
  • Unity Ads
  • Liftoff (Vungle)
  • Moloco
  • Mintegral
  • Chartboost
  • TikTok
  • Snapchat
  • Adikteev
bolt playables

Custom playable ads, built by the team that makes them. 7,000+ shipped for every major ad network.

[email protected] LinkedIn

Services

  • Custom playables
  • playable.ad soon

Studio

  • Why direct
  • Work
  • How it works
  • FAQ
  • Contact

Resources

  • Playable ad specs
  • Playable ad examples
  • What are playable ads
  • How to make a playable ad
  • MRAID explained
  • Interactive end cards
  • Video playables

Clients

  • Get started
  • Client sign in

Playable ad specs

  • AppLovin
  • Meta (Facebook)
  • Google Ads
  • Unity Ads
  • Liftoff (Vungle)
  • Moloco
  • Mintegral
  • Chartboost
  • TikTok
  • Snapchat
  • Adikteev

© Bolt Playables

  • Privacy
  • Terms