Genie

TikTok playable ad specs

TikTok's 2026 playable rules: ZIP under 5 MB with index.html and config.json, the TikTok Playable SDK, window.openAppStore, orientation and testing.

Yonathan Avivi
Yonathan Avivi, Head of Marketing, Genie Labs Technical review by Yotam Wolf, CTO·Published ·Last verified against TikTok Ads Manager help·5 min read

TikTok accepts playable ads as a ZIP under 5 MB after compression, with an index.html and a config.json in the top-level folder. The playable loads TikTok's Playable SDK and calls window.openAppStore() for the click to the store. It must not use the mraid.js format and can't make HTTP requests, load assets dynamically or redirect with JavaScript. Orientation is set in config.json. The same specs cover TikTok Ad Network, formerly Pangle.

Key takeaways
  • ZIP under 5 MB, with index.html and config.json at the top level.
  • Load the TikTok Playable SDK at the bottom of the body, before your own JavaScript.
  • Click out with window.openAppStore(). No mraid.js.
  • Orientation lives in config.json: 0 flexible, 1 portrait, 2 landscape.
  • Genie Playable exports a TikTok-ready ZIP, config and SDK included, from the same source as your other networks.
Short on time?Analyze this article and get the key conclusions

What are TikTok's playable ad requirements?

RequirementTikTok's rule
FileZIP, under 5 MB after compression
Contentsindex.html and config.json in the top-level folder
OrientationSet in config.json: 0 = flexible, 1 = portrait, 2 = landscape
SDKLoad Playable-sdk.js from TikTok's CDN (sf16-muse-va.ibytedtos.com) at the bottom of the body, before your own JavaScript
Click to storewindow.openAppStore()
MRAIDMust not be in mraid.js format
External requestsNo HTTP requests, no dynamic loading, no JavaScript redirects
CoverageTikTok ads and TikTok Ad Network (formerly Pangle)

What goes in config.json?

The config file tells TikTok how to display the playable. The field TikTok documents is orientation: 0 for flexible, 1 for portrait, 2 for landscape. For most TikTok placements, portrait (1) or flexible (0) is the safe choice. Keep the file at the top level of the ZIP next to index.html, not inside a subfolder.

How is TikTok different from other networks?

TikTokSnapchatMetaAppLovin
FormatZIP + config.jsonZIP + config.jsonHTML or ZIPSingle HTML
Click-outwindow.openAppStore()ScPlayableAd.onCTAClick()FbPlayableAd.onCTAClick()mraid.open()
SDK or MRAIDTikTok Playable SDK; no mraid.jsNot requiredNo mraid.jsMRAID 2.0 required
OrientationSet in configPortrait onlyPortrait firstBoth

TikTok and Snapchat look similar at first glance: both want a ZIP with a config.json. The click-out calls are different, so they still need separate builds. See Meta playable specs and AppLovin requirements.

Config, SDK and click-out, handled.Genie Playable packages every playable for TikTok with config.json and the Playable SDK in place, next to your Meta, Snapchat and AppLovin builds.
Try it free on your game

How do I test a TikTok playable?

  1. 1Check the ZIP: index.html and config.json at the top level, under 5 MB compressed.
  2. 2Confirm the SDK script sits at the bottom of the body, before your own scripts.
  3. 3Search the code for "mraid" and "http" (other than the SDK URL). Neither should be there.
  4. 4Upload in TikTok Ads Manager and use the preview.
  5. 5Note that the jump to the app store doesn't work in preview. Test the CTA wiring in code, and check the live ad once it's approved.

What are the common TikTok playable mistakes?

  • config.json missing or placed inside a subfolder.
  • SDK loaded in the head or after your own scripts.
  • The Meta build reused as is, with FbPlayableAd.onCTAClick() instead of window.openAppStore().
  • An MRAID build uploaded to TikTok.
  • Expecting the store jump to work in preview.

Where does Genie fit?

Genie Playable builds playables from your game (your APK or HTML build plus the assets, narrative and live events in Genie), from a format that's already working, or from a brief. Every playable exports as a TikTok-ready ZIP and as versions for Meta, Google, AppLovin, Unity Ads, Mintegral, Liftoff, Moloco, Snapchat and Digital Turbine, all from one source. Try it free on your game.

FAQ

What is the file size limit for TikTok playable ads?+

Under 5 MB for the ZIP after compression.

What files does a TikTok playable need?+

An index.html and a config.json in the top-level folder of the ZIP, plus your assets.

What CTA function do TikTok playables use?+

window.openAppStore(), provided by the TikTok Playable SDK.

Can I use MRAID on TikTok?+

No. TikTok says playables should not be in mraid.js format.

Do TikTok playable specs apply to Pangle?+

Yes. TikTok Ad Network, formerly Pangle, uses the same playable requirements.

Sources

  1. TikTok Ads Manager help, playable ads
  2. Snapchat Business Help, App Playables
  3. Meta Business Help, playable ads

Ready to ship playables from your game?

Thanks, we'll be in touch.

A Genie expert will reach out to set up your demo.

Tell us about your studio

We'll use this to route you to the right Genie expert.

By submitting this form, you agree to receive product information from Genie. See our Privacy Statement.