Playable ad specs by network: four networks compared
Playable specs for Unity, AppLovin, Meta and Mintegral side by side. Size limits, MRAID version and CTA call differ across the docs.
PlayablesMRAID5 min read

Unity's playable checklist: one HTML file under 5 MB, base64 assets, no network, MRAID 3.0, both orientations, store only after a CTA tap.

A playable for Unity Ads is one self-contained HTML file under 5 MB, built for MRAID 3.0, with no network requests, one responsive build for portrait and landscape, and a store redirect only after a tap on a call to action (CTA). The checklist below follows Unity’s docs and is grouped so you can run through it before every upload. Gaps in the docs are listed at the end.
Unity’s What’s new in User Acquisition page lists the playable requirements among its October 2026 entries, as new or changed. The detail is on the playable specifications page and the playable best practices page.

According to the specifications page, the build must meet all of these:
index.html.The same page says a playable that works locally but shows a blank screen in the ad unit usually still references an asset by path or URL. That is the first thing to check when a build looks fine on your machine.
expand, resize, custom close buttons, sms, tel, calendar and storePicture as unsupported.ready event and only when the ad is viewable. It does not start on page load.For a working layout of these steps, see our MRAID 3.0 playable skeleton.
HTMLAudioElement only as a fallback, because HTMLAudioElement ignores the iOS mute switch.viewableChange handler.mraid.open, triggered by a player tap on a CTA after the player has interacted with gameplay.When a player skips or closes the playable, Unity shows its own end card with the app icon, rating, game name and a download button. The best practices page says you don’t build it and can’t change its style.
These come from the best practices page and are targets, not stated limits:
Two Unity pages matter here: Rejected creative packs and Moderation checks. The checks page covers all creatives, not only playables. The items that map onto playables:
The rejected page lists three playable-relevant reasons: the ad breaks when switching between portrait and landscape, it ignores device lock, and it ignores the iOS mute button. Fix the issue and submit again. A campaign needs at least one approved creative pack to go live, and pending packs in a live campaign run automatically once approved. Unity’s docs also state that gambling advertisers need managed accounts and that gambling creatives from unmanaged partners are rejected in moderation.
Unity’s best practices page asks for a build that also runs without MRAID, so you can test the full playable in a desktop browser at mobile resolution. It also asks for a real-device check: the User Acquisition dashboard generates a QR code for each creative pack when you select Show QR code, and the Ad Testing app opens the preview. Rotate the device while it plays. Per the docs, a desktop browser or simulator doesn’t run your playable in the real ad unit, and many common rejection reasons only appear on a real device.
The pages we read are silent on these points, so don’t treat any of them as known:
Other networks set different limits, which is why a build that passes here may fail elsewhere. See playable ad specs by network for the side-by-side.
DarkCore Ramet includes a Playable Builder. This checklist covers Unity’s rules, not the builder, so run any build through it before upload. For video, a file uploaded once in creatives goes to every app that needs it.
Check the build against the spec before you upload
DarkCore Ramet includes a Playable Builder and sends a video you upload once to every app that needs it, through the official Unity API.
Playable specs for Unity, AppLovin, Meta and Mintegral side by side. Size limits, MRAID version and CTA call differ across the docs.
PlayablesMRAID5 min read

A short MRAID 3.0 playable skeleton for Unity Ads: wait for ready, react to viewableChange, start and pause, call mraid.open only on a CTA tap.
MRAIDPlayables6 min read

Unity's docs name one cause of a blank playable: an asset loaded by path or URL. Seven more checks from the spec and moderation pages follow.
PlayablesMRAID7 min read
