Almost every ad network caps a playable ad at 5 MB and wants one self-contained build with no external requests. They differ in the package (single HTML or ZIP), the API (MRAID or the network’s own) and the exact call that opens the store. Here is each network’s rule, with a link to its documentation.
ZIP; the ZIP, its assets folder and the HTML share one name
Max size
5 MB (ZIP)
MRAID / API
Mintegral JavaScript API
Store click
window.install && window.install();
Call window.gameReady() when loading completes, window.gameEnd() on a win or loss and window.gameRetry() on replay; define gameStart() and gameClose() for the host to call.
All resources are local with no dynamic requests; files other than JS and HTML are converted to base64.
A CTA button stays visible for the whole playable; no close button or loading page of your own; auto-redirects are blocked.
Adapt to portrait and landscape with free rotation, and make it work with a mouse in a desktop browser, where the test tool runs.
ZIP with index.html and config.json at the top level
Max size
Under 5 MB (compressed)
MRAID / API
TikTok Playable SDK (not MRAID)
Store click
window.openAppStore();
Include Playable-sdk.js at the bottom of the body, before your own scripts.
config.json sets the orientation: 0 either, 1 portrait only, 2 landscape only. The TikTok and TikTok Ad Network pages spell the key and SDK path with different letter case, so test the upload.
No HTTP requests, no dynamic loading from external networks and no JavaScript redirects.
Each ad needs at least one video, image or carousel asset next to the playable. TikTok Ad Network (formerly Pangle) runs playables as rewarded and interstitial at 1280×720 or 720×1280.
Don’t want to juggle these rules? Every playable we build ships as a ready-to-ship archive for each network you need — 2D in 2 days from $300, 3D in 4 days from $500.
5 MB on AppLovin, Unity Ads, Mintegral, Google Ads, Meta, TikTok and Liftoff. ironSource Exchange programmatic tags allow 4 MB. Google, Meta and TikTok count the whole ZIP, and TikTok measures it after compression.
Do playable ads have to use MRAID?
No. AppLovin (MRAID 2.0), Unity Ads (MRAID 3.0), ironSource Exchange and Liftoff use MRAID. Google Ads uses its ExitApi, Meta requires the ad to work without mraid.js, TikTok rejects the mraid.js format and Mintegral uses its own JavaScript API.
How does a playable ad open the app store?
Through the network’s own call after a deliberate tap: mraid.open() on AppLovin, Unity Ads, ironSource and Liftoff, ExitApi.exit() on Google Ads, FbPlayableAd.onCTAClick() on Meta, window.install() on Mintegral and window.openAppStore() on TikTok.
Can one playable build run on every ad network?
Not as is. Networks differ in the package (single HTML or ZIP), the store-click call and the required hooks, so each network needs its own build. Arc Studio delivers a ready-to-ship archive for every ad network you need with each playable.
Does ironSource still accept playable ads?
ironSource Ads direct demand sunset on April 30, 2026 and advertisers moved to Unity Ads, so direct playables follow the Unity Ads spec: a single index.html under 5 MB, MRAID 3.0 and mraid.open() for the store link. Programmatic ironSource Exchange tags use MRAID 2.0 with a 4 MB limit.