Skip to content
bolt playables Back to site
  1. Home
  2. Playable ad specs
  3. Meta (Facebook)

facebook playable ad specs.

Meta takes a playable as one HTML file with everything inlined, or a ZIP with index.html at the root (up to 100 files). The limit is 5 MB. The playable must be portrait and responsive, call FbPlayableAd.onCTAClick() for the install, and work without mraid.js or any network request. Playables run with a lead-in video under the App promotion objective, on Facebook, Instagram and Audience Network.

Last checked October 16, 2026 against Meta's Business Help Center

Meta (Facebook) playable specs at a glance

File formatA single .html / .htm file with all assets inlined as data URIs, or a .zip with index.html at the root
Max file size5 MB (the HTML file, or the whole ZIP)Meta's older developer docs still say 2 MB for a single HTML file. Staying under 2 MB is the safe target.
Max files in a ZIP100
MRAIDNot allowed. Must work without mraid.js or similar frameworks.
CTA callFbPlayableAd.onCTAClick();“Strongly recommended” in the spec, but uploads without it fail with “File missing CTA function call”.
External requestsNone. No XMLHttpRequest, no loading assets from the network.
RedirectsNo JavaScript redirects
OrientationPortrait, responsive across screen sizes
CampaignApp promotion objective only (including Advantage+ app campaigns), with a lead-in video
PlacementsFacebook and Instagram Feed, Stories and Reels; Meta Audience Network
TestingPlayable Preview Tool and the preview in Ads Manager

Required code

Meta adds the FbPlayableAd object itself, so there's no script tag to include. Guard the call so the file still works when you open it in a browser:

installButton.addEventListener("click", function () {
  if (typeof FbPlayableAd !== "undefined") {
    FbPlayableAd.onCTAClick();
  }
});

Meta sends the user to the right store page for the app in your campaign; you don't pass a URL. There are no required meta tags and no lifecycle events. Remove mraid.js, any mraid.open() call, analytics, web fonts and anything else that touches the network.

Single HTML file or ZIP?

  • Single HTML. Every image, sound, font and script is inlined as base64 data URIs. It's the format most playable tools export, and the one Meta has supported longest.
  • ZIP. index.html at the root, with other files in subfolders referenced by relative paths. At most 100 files and 5 MB in total. Meta supports ZIPs on every placement, iOS and Android.

Base64 makes images and audio about a third bigger. If a single-file build is close to the limit, the ZIP version of the same playable is usually smaller.

How Meta playables run

A Meta playable is a two-part ad: a lead-in video plays in the feed, Stories or Reels with a prompt to try the game, and a tap opens the playable full screen. The install button in the playable calls onCTAClick(). You upload the playable in Ads Manager under the ad's destination (Playable source → Upload playable asset), or through the Marketing API.

Playables only work with the App promotion objective, and the app must be registered to the ad account. Any other objective fails with “Selected objective not supported for playable ads”.

How to test a Meta playable

  1. Open Meta's Playable Preview Tool (log in with a Facebook account). It checks the spec, lists errors, confirms the CTA call fires and sends a preview to your phone.
  2. Play it through on a real phone. Meta doesn't support testing on an iPad.
  3. Upload in Ads Manager and check the preview there before publishing.

Upload errors and what they mean

These are the errors listed in Meta's playable troubleshooting article:

  • File size too large: the HTML is over 5 MB.
  • Playable asset has too many files: the ZIP holds more than 100 files.
  • File missing CTA function call: FbPlayableAd.onCTAClick() isn't in the code.
  • This HTML file cannot be uploaded: it failed Meta's anti-virus scan, often because of obfuscated or minified third-party code.
  • Selected objective not supported for playable ads: the campaign isn't App promotion.
  • Selected placement not supported for playable ads: a placement other than those above is selected.
  • App not selected: the ad account has no permission for the app.

Builds also get rejected for depending on mraid.js, loading anything over the network, redirecting by themselves or being built landscape-only.

Common questions

What is the file size limit for Facebook playable ads?

5 MB, for a single HTML file or for the whole ZIP. Meta's older developer documentation says 2 MB for a single HTML file, so staying under 2 MB avoids any doubt.

Do Facebook playable ads use MRAID?

No. Meta requires the playable to work without mraid.js. The install button calls FbPlayableAd.onCTAClick() instead.

What is FbPlayableAd.onCTAClick()?

The function Meta injects into the playable to open the app's store page. Call it when the user taps the install button. Uploads without it fail with 'File missing CTA function call'.

Can a Meta playable be a ZIP file?

Yes. A ZIP with index.html at the root and no more than 100 files, up to 5 MB in total, works on all placements. A single HTML file with everything inlined also works.

Can Facebook playable ads be landscape?

Meta's spec says playables must be built in portrait orientation and be responsive across screen sizes.

Which campaigns support Facebook playable ads?

Only the App promotion objective, including Advantage+ app campaigns. The playable runs after a lead-in video in Facebook and Instagram Feed, Stories and Reels, and on Meta Audience Network.

How do I test a Facebook playable ad?

Use Meta's Playable Preview Tool at developers.facebook.com/tools/playable-preview, which checks the spec and the CTA call and sends a preview to your phone, then check the preview in Ads Manager.

Sources

Networks change their specs without notice. These are the pages this summary was checked against. If anything here disagrees with them, follow the network.

  • Meta Business Help Center: Specifications for playable ads assets
  • Meta Business Help Center: Upload a playable source file
  • Meta Business Help Center: Troubleshoot playable assets uploads
  • Meta Business Help Center: About playable ads
  • Meta for Developers: Playable ads for mobile apps (older 2 MB figure)
  • Meta Playable Preview Tool
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