Ad Network Guide
Playable Ads for TikTok Ads
TikTok Ads reaches over 1 billion monthly active users through an algorithmically curated full-screen, sound-on, vertical video feed. Its audience skews younger than any other major ad platform: Gen Z and younger Millennials who scroll quickly, respond to fast-paced visual content, and are accustomed to interactive media. TikTok's ad placements are full-screen and vertical, so a playable ad has the same shape as organic TikTok content and fills the screen in a way a banner or pre-roll does not.
TikTok does not use MRAID for playable ads. Its documentation asks you to include TikTok's playable JS SDK in the creative and to trigger the store from your CTA with window.openAppStore(), and nothing else: no mraid.js, no JavaScript redirects and no HTTP requests at runtime. The config.json beside index.html is metadata about the creative rather than about your app: its playable_orientation field (0 for responsive, 1 for portrait only, 2 for landscape only) tells TikTok how the material may be shown.
The Playable Ads Maker generates a TikTok-ready ZIP containing index.html with every asset inlined, main.js with the playable itself, and a config.json whose playable_orientation matches your project. TikTok's playable SDK is included for you and your CTA calls window.openAppStore(), which opens the store set on your campaign. Playables run in Smart+ App Promotion campaigns in TikTok Ads Manager: you upload the ZIP there, preview it with TikTok's device simulator to confirm the portrait rendering, and launch. TikTok generates the end card that follows the playable itself, and the same campaign can also reach the TikTok Ad Network (formerly Pangle), its network of partner apps.
Export specifications
| Specification | Value |
|---|---|
| Accepted format | ZIP |
| Playable Ads Maker exports | ZIP (index.html + main.js + config.json) |
| Published size limit | 5 MB |
| Playable Ads Maker builds to | 5 MB |
| MRAID | Not used — TikTok playable SDK |
| Store-exit call | window.openAppStore() |
| External requests | None allowed at runtime |
| Preferred orientation | Portrait (9:16): landscape supported but not recommended |
| config.json purpose | playable_orientation: 0 responsive, 1 portrait only, 2 landscape only |
| Campaign type | Smart+ App Promotion |
| End card | Generated by TikTok |
| Runtime rules | No mraid.js, no JS redirects, no HTTP requests |
Size, format, MRAID and store-exit rows are taken from TikTok Ads’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 TikTok Ads requirements (size, packaging, MRAID and the store-exit call) in your browser, with nothing uploaded.
Check my TikTok Ads playable adHow to upload to TikTok Ads
- Design your playable in portrait (9:16) orientation from the start: TikTok's feed is vertical, and a landscape creative will letterbox inside the player rather than filling the screen.
- Select the TikTok Ads preset in the Export modal. The CTA is wired to window.openAppStore(), which takes no URL: TikTok opens the store set on your campaign.
- The exporter generates index.html carrying TikTok's playable SDK and your styles, main.js with the playable, and a config.json whose playable_orientation matches your project. All three are packaged into a single ZIP.
- Download the ZIP and confirm its total compressed size is under 5 MB. TikTok states its limit against the ZIP after compression.
- In TikTok Ads Manager, create a Smart+ App Promotion campaign, the campaign type TikTok runs playables in. At the ad creative step, select Playable as the creative type and upload the ZIP file.
- Use TikTok Ads Manager's built-in Playable Preview tool to see the ad on a virtual phone screen and test that the interactive mechanic and CTA button are reachable with a thumb on a portrait screen.
- Set your audience, daily budget, and campaign optimisation goal (installs or in-app events), then publish. TikTok's algorithm distributes the playable across TikTok in-feed and, where the campaign includes it, the TikTok Ad Network (formerly Pangle).
File size tip
TikTok Ads publishes a limit of 5 MB; Playable Ads Maker builds TikTok Ads exports to 5 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 TikTok Ads playable ads
Start the action inside the first 3 seconds
TikTok users make a keep-or-swipe decision within the first 1–2 seconds of any content. Your playable must begin with immediate visual action, not a loading screen, not a slow pan, and not a static logo. Start mid-animation: show the game mechanic already in motion, with a single prominent tap target visible before the first second has elapsed. Playables that open with a 'Press play to start' screen get much lower engagement on TikTok than on any other network.
Check config.json's orientation against the canvas you designed on
config.json is metadata about the creative, not about your app: it carries a single playable_orientation field, where 0 means responsive (either orientation), 1 portrait only and 2 landscape only. The exporter sets it from your project, so a playable designed on a landscape canvas and intended for the vertical feed will declare the wrong thing. Open config.json from the downloaded ZIP and confirm the number matches how you want the ad shown. Your store URLs are not in this file or in the creative: window.openAppStore() opens the store set on your campaign.
Design touch targets for single-thumb use on a 6-inch portrait screen
TikTok's primary device is a large-screen phone held vertically in one hand. Interactive elements in the bottom 30% of the screen are easy to reach with a thumb; elements near the top require two-handed use and are commonly ignored. Place your core interaction tap target in the lower-centre or lower-left of the screen and keep the CTA button large (minimum 48px tappable area) in the lower-centre. Avoid interactions that require two simultaneous taps or swipe gestures that conflict with TikTok's own scroll gesture.
Playable Ads Maker does the TikTok Ads packaging (ZIP (index.html + main.js + config.json)), wires the window.openAppStore() store exit and inlines every asset when you export.
Build your playable ad