Ad Network Guide
Playable Ads for Meta (Facebook & Instagram)
Meta's advertising ecosystem spans Facebook Feed, Instagram Feed, Instagram Stories, Reels, and Audience Network: together reaching over 3.2 billion monthly active people, a wider demographic spread than any other single platform. Unlike gaming-only networks, Meta's audience includes large non-gaming groups, which suits apps with broad appeal: lifestyle tools, social apps, casual games, fintech and subscription products. Playable ads on Meta open full screen from inside a social feed, where an ad you can play stands out from the posts around it.
Meta does not use MRAID. Its playable specification says the asset must not require mraid.js, must make no HTTP requests and must not redirect with JavaScript; the store exit is FbPlayableAd.onCTAClick(), which takes no URL. Meta sends the user to the destination configured on the campaign. Size is two numbers: Meta accepts a ZIP of up to 5 MB, but the index.html inside it must stay under 2 MB (2 MB HTML (5 MB ZIP)). The Playable Ads Maker's Meta export calls FbPlayableAd.onCTAClick() and nothing else, ships no mraid.js tag, and is held to 2 MB.
Uploading to Meta is done through Meta Ads Manager: create an App Install or App Engagement campaign, advance to the ad creative step, select Playable as the format, and upload your ZIP. Meta also accepts the playable as a single self-contained .html file; the ZIP is what the Meta export produces. Meta's audience is social first rather than gamers first, so the playables that do best there lean on social context, achievement sharing and a clear reward moment, which work for casual gamers and non-gamers.
Export specifications
| Specification | Value |
|---|---|
| Accepted format | ZIP, or a single .html |
| Playable Ads Maker exports | ZIP (index.html + main.js) |
| Published size limit | 2 MB HTML (5 MB ZIP) |
| Playable Ads Maker builds to | 2 MB |
| MRAID | Must not require mraid.js |
| Store-exit call | FbPlayableAd.onCTAClick() |
| External requests | None allowed at runtime |
| Placements | Facebook Feed, Instagram Feed, Stories, Reels, Audience Network |
| Review time estimate | 24 hours (automated) |
Size, format, MRAID and store-exit rows are taken from Meta (Facebook & Instagram)’s own documentation; “Playable Ads Maker builds to” is our exporter’s own target. Every network side by side: playable ad size limits by network.
If you already have a build, drop the ZIP into the free Playable Ad Spec Checker and it will grade it against these Meta (Facebook & Instagram) requirements (size, packaging, MRAID and the store-exit call) in your browser, with nothing uploaded.
Check my Meta (Facebook & Instagram) playable adHow to upload to Meta (Facebook & Instagram)
- Build your playable in the editor, keeping in mind that Meta's audience includes non-gamers. Design the interaction to be intuitive without gaming conventions, with clear tap targets and visible instructions.
- Select the Meta (Facebook & Instagram) preset in the Export modal. It wires your CTA to FbPlayableAd.onCTAClick(), leaves out mraid.js, and packages index.html and main.js into a ZIP.
- Check the sizes Meta checks: the ZIP must be 5 MB or less and the index.html inside it under 2 MB (2 MB HTML (5 MB ZIP)). The export modal holds a Meta build to 2 MB and shows the estimate before you download.
- Open Meta Ads Manager and create a new campaign with an App Install or App Engagement objective.
- At the Ad creative step, choose the playable format and select your ZIP file.
- Use Meta's built-in device preview tool to see how the playable renders on a phone screen within the Facebook and Instagram feed format before submitting.
- Set your audience targeting, budget, placements, and schedule, then publish the campaign. Meta's delivery system begins serving the playable within a few hours of approval.
File size tip
Meta (Facebook & Instagram) publishes a limit of 2 MB HTML (5 MB ZIP); Playable Ads Maker builds Meta (Facebook & Instagram) exports to 2 MB. If your export is too large, reduce image resolution, switch to WebP at 75–80% quality, or trim animation frame counts in the Playable Ads Maker Export modal. The live size estimate updates as you adjust each setting.
Tips for Meta (Facebook & Instagram) playable ads
Design for a social-scroll context, not a gaming session pause
Unlike Unity Ads or AppLovin where users are mid-session in a game, Meta users encounter playables while scrolling through social content. They have no intent to see an ad and no in-game reward motivating them to engage. The first 2 seconds of your playable have to stop the scroll. Use bold colours, immediate movement, and a clear interactive invitation like 'Tap to play' displayed immediately on load. A slow-loading or delayed-start experience will be swiped past before the mechanic appears.
Do not add mraid.js or a second exit call to a Meta build
Meta's specification says a playable must not require mraid.js and must not redirect with JavaScript, so a creative carrying MRAID wiring or a window.open() fallback is a defect on Meta, not extra compatibility. The store exit is FbPlayableAd.onCTAClick() alone. The Playable Ads Maker's Meta export is built that way; if you edit the HTML after export, do not paste in the MRAID exit from another network's build.
Design portrait-first and keep the layout responsive
Meta's specification asks for a portrait, responsive playable. Build the core interaction for a tall phone screen, keep the tap targets and the CTA away from the edges, and let the layout adapt to the shape it is given rather than depending on one exact aspect ratio. The same creative runs across Feed, Stories and Reels placements.
Avoid gameplay that closely mimics your app without being your actual app
Meta's content review team specifically checks that playable ad gameplay is a genuine representation of the app being advertised, not a fabricated mechanic designed purely to maximise ad engagement. Ads that show a match-3 mechanic but advertise a slot machine app, for example, are rejected and may result in account flags. Build your playable around a condensed but real version of your app's core loop to avoid policy issues and to improve post-install retention.
Playable Ads Maker does the Meta (Facebook & Instagram) packaging (ZIP (index.html + main.js)), wires the FbPlayableAd.onCTAClick() store exit and inlines every asset when you export.
Build your playable ad