Liftoff's current Interactive Ad Integration doc allows playable HTML up to 5 MB, uploaded as one HTML file or a ZIP with a single folder, and asks you to open the store with mraid.open or window.Liftoff.open only after a deliberate tap. The older Vungle Adaptive Creative path uses a different contract: ad.html or index.html, a flat folder, and parent.postMessage("download","*") instead of a direct store call. Liftoff's docs are split across two help centers, so this page says exactly which doc says what, and what to confirm with your account manager.
What does Liftoff require for a playable?
| Spec | Liftoff Accelerate (Interactive Ad Integration) | Vungle Adaptive Creative (Liftoff Direct) |
|---|---|---|
| Max file size | HTML up to 5 MB | Total ad size 5 MB or less |
| Format | Single HTML file, or ZIP with one folder of assets. One root HTML; if several, one must be index.html. ASCII, case-sensitive file names, relative paths only | Main file ad.html or index.html, all files at the same level, no nested folders |
| MRAID version | Not published (uses mraid.getState, ready, viewableChange, mraid.open) | Not published. Adaptive Creative "uses MRAID"; don't reference mraid.js |
| Orientation | Both where possible. Maps to 320x480, 480x320, 768x1024 or 1024x768 full screen | Both portrait and landscape |
| Max duration | Not published | Not published (if there's no clear end state, send complete after five or more interactions) |
| CTA / store redirect | mraid.open or window.Liftoff.open, after the API is ready and after a deliberate tap. window.open allowed; avoid window.location | parent.postMessage("download","*") from a user tap. Don't call the stores directly |
| External calls | Absolute URLs not allowed; Liftoff hosts the assets on its CDN. No iframes | No externally hosted assets, no tracking links or tracking libraries |
| Analytics / events | Not published in the integration doc (reporting is a separate API) | parent.postMessage("complete","*") at the end; listen for ad-event-init, ad-event-pause, ad-event-resume |
| Test tool | Not published | Creative Verifier app |
Sources: Liftoff Accelerate, Interactive Ad Integration (last updated 1 Oct 2026), Vungle, Dos and don'ts of Adaptive Creative (Nov 2023), Vungle, Customize the Adaptive Creative experience (Mar 2022).
Why are there two sets of Liftoff specs?
Liftoff and Vungle merged, and the docs still live in two places. The Liftoff Accelerate help center covers the performance buying side and was refreshed in October 2026. The Vungle help center covers Liftoff Direct and Monetize, including Adaptive Creative and the Creative Verifier, and many of those pages date from 2022 and 2023.
The two contracts don't match. Accelerate expects MRAID calls or its own window.Liftoff API. Adaptive Creative wraps your ad.html in its own index.html and listens for postMessage events. The Creative Verifier even fails a bundle that lacks the parent.postMessage("download","*") call. A build written for one path can fail the other.
Our take: build to the Accelerate doc by default, because it's the newest, and confirm with your rep before you upload. One email saves a review cycle.
A Liftoff export, not a Liftoff rebuild. Genie Playable exports a Liftoff build from the same source as your Meta, AppLovin and Unity builds, so moving a working concept to Liftoff is an export and a check, not new development.
Try GenieHow should the lifecycle work on Liftoff Accelerate?
Liftoff also asks you to keep about 50x50 px clear in each top corner for the close button, not to add your own close button, and to trigger sound only from a tap. It recommends progressive loading: a small bootstrap bundle of roughly 10 to 20 KB first, then the main assets. Default fonts are Roboto on Android and Helvetica Neue on iOS.
What do I ask my Liftoff rep?
Because some values aren't published, send these before you build:
QA checklist before you upload to Liftoff
Why do Liftoff playables get rejected?
| Problem | Fix |
|---|---|
| Creative Verifier: "index.html NOT found" | Rename ad.html to index.html for the test (per Vungle's troubleshooting) |
| Creative Verifier: postMessage download not found | Add parent.postMessage("download","*") on the CTA |
| Clicks unresponsive or unattributed | Wait for the API to be ready before calling open |
| Fails to render | Remove iframes; fix non ASCII file names |
| Policy: fake notifications, alerts or countdowns | Remove deceptive UI (Liftoff creative guidelines) |
| Auto-download or harmful code | Redirect only from a deliberate tap |
Policy reasons come from Liftoff's creative guidelines (updated 1 Oct 2026). From what we see, the AppLovin to Liftoff move is usually smooth because both use mraid.open. The problems start when the account is on the Adaptive Creative path. See the AppLovin specs and Unity specs for comparison.
Where does Genie Playable fit?
Genie Playable builds a playable from your APK or HTML build plus the assets in Genie, from a format that's already working, or from a brief with Genie Agent. You iterate from the last version without a developer, and export network-ready builds for Liftoff, Meta, AppLovin, Unity Ads, Google Ads, TikTok Ads, Pangle and Mintegral. Moloco coming soon.
Not for you if Liftoff's own creative team already builds your playables and you don't run them anywhere else. It fits when one concept should go to Liftoff and four other networks. See how we build from your own game.
Add Liftoff to your playable plan. One source in. A Liftoff build out, next to every other network.
Try GenieFAQ
Sources
- 01Liftoff Accelerate, Interactive Ad Integration
- 02Liftoff Accelerate, Creative guidelines
- 03Vungle Help Center, Dos and don'ts of Adaptive Creative
- 04Vungle Help Center, Customize the Adaptive Creative experience
- 05Vungle Help Center, Test your playable with the Creative Verifier
- 06Vungle Exchange, HTML and MRAID creatives submission guidelines
- 07Vungle Help Center, Creative asset requirements
