Playable ad specs for every major network, and how to upload them
AppLovin wants a single HTML, Google wants a zip, Meta wants a video in front of it. A plain field guide to file formats, size limits and upload steps for eight ad networks.
Most studios find out about network specs the hard way. The playable runs perfectly on your laptop, you upload it, and the network rejects it. Sometimes you get a clear error. Sometimes you get a review note four days later saying the call to action "does not respond".
We deliver every playable as a separate file for each network, so we deal with these rules every day. This is the guide we wish someone had handed us when we started. It covers the eight networks our studios buy on most, what file each one expects, and where it goes in the dashboard.
One warning before the details: networks change these rules without much notice. We last checked everything here against each network's own documentation in October 2026. If something looks off when you upload, the network's help page wins.
The short version
| Network | File you upload | Before it goes live |
|---|---|---|
| AppLovin | Single .html | Playable preview tool |
| Unity Ads | Single .html | Ad Testing app, network review |
| ironSource | Single .html (through the Unity dashboard) | Same as Unity Ads |
| Meta | Single .html, with a lead-in video | Preview right after upload |
| Google Ads | .zip | Preview inside the ad group |
| TikTok | .zip | Preview link or QR code |
| Mintegral | .zip | Playable checker, then 3 to 5 business days of review |
| Moloco | Single .html | Preview in Ads Manager |
On size: 5 MB is the number you will see most often, but treat it as a ceiling, not a target. A few placements are stricter (the ironSource exchange, for example, caps at 4 MB) and Meta's documentation has not always been consistent. If you can ship under 2 MB, you never have to think about it. A small file also loads faster on a weak connection, and a playable that is still loading when the player gets bored is a playable nobody plays.
Why one file does not fit all
A playable ad is a small web page. That part is simple. The hard part is the conversation between that page and the network around it.
Each network has its own way of telling the ad "you are on screen now", "the player muted the phone" or "the ad is closing". Each one has its own way for the ad to say "send this person to the store". Some follow the MRAID standard, some add their own layer on top, and a couple have their own script entirely. Get the store call wrong and the playable still looks fine. It just never sends anyone to the store, which is the only thing it was for.
So the honest answer to "can I export one playable for every network?" is: one game, yes. One file, no. You want one build per network, each wired to that network's way of opening the store.
AppLovin
AppLovin takes a single .html file. Do not zip it.
- Open your campaign and create a creative set.
- Go to Add Assets, then Media Library, and switch to the HTMLs view.
- Upload the .html, tick it and confirm.
- Check the preview, then save the set live or paused.
You can put up to 10 playables in one creative set. AppLovin has a public playable preview tool; use it before anything spends money. Tap the button at the end and make sure the store opens.
Unity Ads and ironSource
These two now live in the same place. Playables for ironSource Ads are uploaded through the Unity user acquisition dashboard, with the same steps.
- Open Creative Packs and create one.
- Choose Playable, name it, and pick Responsive (or Portrait and Landscape).
- Upload the .html and set the playable's language.
- Create. The network reviews packs before they run.
If Playable is missing from the list of pack types, your account probably does not have it turned on yet. Support can switch it on. To test, use the Ad Testing app: the dashboard gives you a QR code, you scan it, and the ad runs on your own phone exactly as a player would see it.
If you sell through the ironSource exchange rather than ironSource Ads, the limit drops to 4 MB. It is worth asking which one your team actually uses before the build, not after.
Meta
Meta takes a single .html, but a playable on Meta never runs alone. It always plays after a short video, so have that video ready before you start.
- Create a campaign with the App promotion objective and pick your app in the ad set.
- In the ad, choose Single image or video, then Playable source.
- Choose Set up playable ad, upload the .html and check the preview.
- Add the lead-in video and publish.
The video matters more than people think. It is the first thing the player sees, and it decides whether they ever tap into the playable. A good lead-in shows the exact moment the playable starts from.
Google Ads
Google wants a .zip holding your HTML5 ad, uploaded as an HTML5 asset.
- Open an App campaign for installs and go to its ad group.
- Add an HTML5 asset and upload the .zip as it is.
You can have up to 20 HTML5 assets per ad group. Playables are not available for pre-registration or engagement campaigns, which surprises people every time.
TikTok
TikTok also takes a .zip, and it expects a specific file layout inside it (an index.html and a config file). Do not rename anything inside the zip.
- In Ads Manager, go to Assets, then Creative Library, then Playables, and upload the .zip.
- Confirm the orientation if it asks.
- In your ad, add the playable from the Playable tab next to a video or image.
As with Meta, a playable never runs alone on TikTok; the ad needs a video, image or carousel too. The same zip also runs on Pangle placements, which is a nice bonus for reach in Asia.
Mintegral
Mintegral is the strictest of the group about file names, and the most helpful about testing.
- Run the .zip through Mintegral's playable checker first. Upload it, play to the end and tap the button.
- When every check is green, upload the same .zip as a playable creative in your account.
- Review takes about 3 to 5 business days.
Keep the zip and the files inside it named exactly as delivered. The checker compares them, and a renamed file is the most common reason we see for a red result. Plan for the review time: if you want a playable live on Mintegral by Friday, it should be uploaded by Monday.
Moloco
Moloco takes a single .html and does not accept a zip.
- Upload the .html as a playable creative in Moloco Ads Manager.
- Open the preview and tap the button. A pop-up confirms that the store call works.
That pop-up is a small thing, but we love it. It is the clearest "yes, this works" any network gives you.
A checklist before you upload anything
We run through this for every file, every time:
- The button works. Tap the call to action in the network's own preview, not just in your browser. This catches most rejections.
- It plays without sound. Most players have their phone muted. If the playable only makes sense with audio, it does not make sense.
- It fits both shapes. Check portrait and landscape, and a tall phone as well as a short one. Text that sits under a notch is text nobody reads.
- It is quick to load. Small file, no outside requests. Several networks block any call to a server outside the ad.
- The end card is clear. One message and one button. The player who reaches the end is the player most likely to install; do not make them search.
- The file names are untouched. Especially for zips. Unzip, rename, re-zip is how a working file becomes a rejected one.
Common questions
What is the file size limit for playable ads?
For most networks it is 5 MB, but some placements are lower and the numbers move. Aim well under it. Under 2 MB, you are safe almost everywhere.
Can I upload the same playable file to every network?
No. The game can be the same, but each network expects its own file format and its own way of opening the store. A file built for one network often loads fine on another and then fails at the button.
Do playable ads need MRAID?
Many networks use MRAID 2.0 or 3.0 to talk to the ad, and some add their own layer on top of it. What matters is that each file speaks the language of the network it is uploaded to.
Why was my playable rejected?
In our experience, the usual reasons are a call to action that does not open the store, a file over the size limit, a request to an outside server, or files renamed inside a zip.
If you are still deciding whether playables are worth it for your game, start with our guide to playable ads in 2026. If you already run them and want more winners, read how to test playable ads.
Where we fit in
We built MakePlayable so studios do not have to learn all of this per network. You send us your store link. We build the playable from your own game art, then export one file for each network you buy on, each wired to that network's store call and checked against its rules before it reaches you. Each delivery comes with a short upload guide for every network, like the one above but specific to your files.
If you are about to run your first playable, or your last one got stuck in review, send us your store link. We build one playable of your game first, free, and you can see whether it works for you before anyone talks about money.