Try for free
Learn/Specs by network

What are the Liftoff (Vungle) playable ad specs in 2026?

Liftoff playable rules from its own docs: 5 MB HTML or ZIP, mraid.open or window.Liftoff.open, Vungle download events, what to ask your rep.

Written by Yonathan Avivi, Head of Marketing, Genie Labs

Technical review by Yotam Wolf, CTO · Published Oct 26, 2026 · Last verified Oct 26, 2026 · 7 min read

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.

Key takeaways
5 MB for HTML on Liftoff Accelerate (updated 1 Oct 2026) and 5 MB total on Vungle Adaptive Creative.
Two click methods, depending on the path: mraid.open or window.Liftoff.open on Accelerate; parent.postMessage("download","*") on Adaptive Creative.
MRAID version for Liftoff playables is not published. Vungle Exchange (programmatic) states MRAID 2.0.
No iframes, no custom close button, sound only after a tap.
Ask your rep which path your account is on before you build. It decides the click call.
Genie Playable exports a Liftoff build next to your other networks, from the same source.

What does Liftoff require for a playable?

SpecLiftoff Accelerate (Interactive Ad Integration)Vungle Adaptive Creative (Liftoff Direct)
Max file sizeHTML up to 5 MBTotal ad size 5 MB or less
FormatSingle 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 onlyMain file ad.html or index.html, all files at the same level, no nested folders
MRAID versionNot published (uses mraid.getState, ready, viewableChange, mraid.open)Not published. Adaptive Creative "uses MRAID"; don't reference mraid.js
OrientationBoth where possible. Maps to 320x480, 480x320, 768x1024 or 1024x768 full screenBoth portrait and landscape
Max durationNot publishedNot published (if there's no clear end state, send complete after five or more interactions)
CTA / store redirectmraid.open or window.Liftoff.open, after the API is ready and after a deliberate tap. window.open allowed; avoid window.locationparent.postMessage("download","*") from a user tap. Don't call the stores directly
External callsAbsolute URLs not allowed; Liftoff hosts the assets on its CDN. No iframesNo externally hosted assets, no tracking links or tracking libraries
Analytics / eventsNot 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 toolNot publishedCreative 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 Genie

How should the lifecycle work on Liftoff Accelerate?

01If mraid.getState is "loading", wait for ready before setting click handlers or calling MRAID.
02On ready, set up the CTA and the playable.
03If mraid.viewable is true, start. If not, listen for viewableChange and start on the first true, with a flag so it starts once.
04Register viewableChange once and clean it up.
05Never hang if an MRAID event doesn't fire. Degrade gracefully.

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:

·Is my account on Accelerate or Liftoff Direct (Adaptive Creative)? Which click call should the playable use?
·Single HTML or ZIP: which do you prefer for my campaign type?
·Which MRAID version does the SDK serving my campaigns support?
·Are playables enabled for my account? (Vungle's 2022 asset page says playables need account manager approval.)
·Is there a maximum duration, or a required end state event?
·Which test tool should I use: the Creative Verifier or something else?

QA checklist before you upload to Liftoff

·HTML at or under 5 MB (total bundle at or under 5 MB for Adaptive Creative).
·File names ASCII only, matching case, relative paths, no absolute URLs.
·No iframe, no custom close button, top corners clear.
·Store click uses the call for your path, only after the API is ready and after a tap.
·Starts once, only when viewable. Pauses and resumes cleanly.
·Sound starts only on a tap.
·Works in portrait and landscape at 320x480 and 480x320.
·For Adaptive Creative: no mraid.js reference, complete event at the end, passes the Creative Verifier.

Why do Liftoff playables get rejected?

ProblemFix
Creative Verifier: "index.html NOT found"Rename ad.html to index.html for the test (per Vungle's troubleshooting)
Creative Verifier: postMessage download not foundAdd parent.postMessage("download","*") on the CTA
Clicks unresponsive or unattributedWait for the API to be ready before calling open
Fails to renderRemove iframes; fix non ASCII file names
Policy: fake notifications, alerts or countdownsRemove deceptive UI (Liftoff creative guidelines)
Auto-download or harmful codeRedirect 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 Genie

FAQ

Sources

  1. 01Liftoff Accelerate, Interactive Ad Integration
  2. 02Liftoff Accelerate, Creative guidelines
  3. 03Vungle Help Center, Dos and don'ts of Adaptive Creative
  4. 04Vungle Help Center, Customize the Adaptive Creative experience
  5. 05Vungle Help Center, Test your playable with the Creative Verifier
  6. 06Vungle Exchange, HTML and MRAID creatives submission guidelines
  7. 07Vungle Help Center, Creative asset requirements

Keep reading

All articles →
Playable ads · 7 min read

Playable ad specs by network (2026): size limits, MRAID and file format

Playable ads · 7 min read

What are the Unity Ads playable ad specs in 2026?

Playable ads · 10 min read

Playable ad networks: where should you run playables, and how do you choose?

Ready to ship playables from your game?

Try for freeBook a demo

How to make a playable ad from your own game (without rebuilding it)

Three ways to turn your game into a playable ad: engine export, HTML5 rebuild, or building from your APK. Steps, specs, testing and mistakes to avoid.

Written by Yonathan Avivi, Head of Marketing, Genie Labs

Technical review by Yotam Wolf, CTO · Published Sep 26, 2026 · Updated Sep 26, 2026 · 11 min read

A playable ad from your own game is a 30 to 90 second interactive slice of your game: your characters, your art and one clear mechanic, packaged as a small HTML5 file an ad network can run. You can't ship your game build as it is. Networks cap playables at about 5 MB in a single HTML file or ZIP, with strict rules on code and clicks. So you have three options: export a stripped-down scene from your engine, rebuild the moment in an HTML5 framework, or use a tool that builds the playable from your game's build and assets. This guide walks through all three.

Key takeaways
{{ k }}

What does "a playable ad from your own game" actually mean?

It means the player sees your game, not a generic template with your logo on top. Studios that do this well keep three things fixed and treat the rest as open.

Keep fixedOpen to change
{{ r.ak }} {{ r.av }}{{ r.bk }} {{ r.bv }}

This matches what UA and creative leads tell us. Brand fidelity is non-negotiable. Gameplay is often borrowed from whatever is trending. The catch is policy. The UK ASA now treats even a genuine but non-core mechanic as potentially misleading, and Google Play bans ads that don't represent the app. The closer your playable is to what players actually get, the safer it is, and the better it tends to retain.

Why can't I just ship my game build as a playable?

Ad networks run playables inside their own ad containers, not as apps. Every playable has to fit this box:

SizeAbout 5 MB on every major network (AppLovin, Meta, Google, TikTok, Unity, Mintegral, Moloco, Snapchat). A WebGL export of a real game is usually far bigger. An empty Godot export is already over the limit.
FormatOne self-contained HTML file with every asset inlined (AppLovin, Unity, Moloco), or a ZIP with an index.html (Google, TikTok, Mintegral, Snapchat). Meta accepts both.
No external callsNothing loads from your servers at runtime.
Click-out callmraid.open() on AppLovin and Unity, FbPlayableAd.onCTAClick() on Meta and Moloco, ExitApi.exit() on Google, window.openAppStore() on TikTok, window.install() on Mintegral.
Behavior rulesMuted until the first interaction, no store redirect on the first tap, no auto-redirects, works in portrait and landscape.

The full list lives in our Playable ad specs by network (2026).

What are the three ways to turn my game into a playable?

1. Engine export 2. HTML5 rebuild 3. Build from your APK or HTML and assets
{{ r.k }} {{ r.a }} {{ r.b }} {{ r.c }}

Most studios mix routes: a hand-built hero playable for a launch, and faster tooling for the weekly variations that keep a campaign alive.

What buyers expect to pay and wait: roughly $3,000 to $8,000 and two to four weeks per new playable from an external studio, and roughly $600 to $2,000 in-house once the setup exists. Nobody has a clean source for these numbers, so treat them as market expectations. One mid-size studio we spoke to put it simply: the market norm is "two weeks onwards", and their target is under a week.

Your game is already the brief.

Upload your APK or HTML build. Genie Playable turns it into a playable ad with your own art, characters and live events, ready for 10 ad networks.

Try it free on your game

How do I make a playable ad from my game, step by step?

01\Pick the moment worth playing

Choose one mechanic a stranger understands in three seconds. Good sources: your core loop at its most satisfying, the live event running now, or a format already converting in your genre. If you can't explain the moment in one sentence, it's too complex. One mechanic beats two.

“Merge plus puzzle looks clever and almost always tests worse.”
Segwise

02\Script the arc

Almost every playable follows the same shape:

{{ a.n }} {{ a.k }} {{ a.v }}

03\Prepare your assets

Export characters, backgrounds, UI and sounds from your game, then cut hard. Compress images, use sprite sheets, trim audio to short loops and subset fonts. Base64 inlining adds about a third to file size, so aim for 2 to 3 MB in total and treat 5 MB as the ceiling.

04\Build it

Whatever route you use, keep the logic in plain HTML and JavaScript, make the layout work in 9:16 and 16:9, and keep sound off until the first tap.

05\Package it for each network

This is where engineer time quietly disappears. "A unit that passes on AppLovin can bounce on Unity," as Segwise puts it. Each network needs the right file format, the right click-out call and any required hooks. Mintegral, for example, expects gameReady() and gameEnd() calls. Build once and generate network variants from one source. Hand-editing copies is how bugs creep in.

06\Test before you upload

{{ t.k }}{{ t.v }}

Then test on a real low-end Android phone. A desktop browser hides most of the problems.

07\Launch and measure

Give each playable enough data before you judge it. A common rule of thumb is about 50 conversions in four days, or 100 in seven. Judge on D7 ROAS and retention, not CPI alone. If you can, add events inside the playable (start, first interaction, win or lose, CTA tap, drop-off point), because network dashboards only show the last step.

08\Plan the next version before this one fatigues

Top-grossing games ship dozens of new playables a month, and most of that volume is variations of a winner. Leading teams put roughly 70% of output into variations and 30% into new concepts. Decide now which single thing you'll change next: the hook, the fail state, the character, the event skin or the end card.

What should I keep from my game, and what can I borrow?

Keep everything that helps a player recognise your game after install: art, characters, UI language, sound. Borrow structure freely, whether that's a proven hook, a pacing pattern or a format working in another genre. Racing and narrative studios often tell us their game "isn't playable". The honest read: a playable doesn't need your full core loop. It needs one true moment from your world.

What are the most common mistakes?

Mistake What happens Fix
{{ m.a }}{{ m.b }}{{ m.c }}
The next version, not a new brief.

When a playable fatigues, Genie Playable lets your UA or creative team change the hook, the character or the event skin on the last version and ship it again. No dev queue.

Book a demo

Where does Genie fit?

Genie Playable takes the third route, and adds two more ways in. You can build from your game: your APK or HTML build together with the assets, narrative, mechanics and live events already in Genie. You can start from a format that's already working and rebuild it with your game inside. Or you can start from scratch and describe the playable to Genie Agent.

Genie Core keeps every version on brand, and Genie Playable exports network-ready variants for Meta, AppLovin, Unity Ads, Liftoff, Google Ads, TikTok Ads, Pangle and Mintegral from one source, with Moloco coming soon. No developer is needed at any step, and your team makes the final call on every version. Sign-up is free and covers your first two playables. Try it on your game.

Where to go next

First playable? Follow how to make a playable ad step by step, then run it through the playable ad best practices checklist. Once it's live, read how to know if your playable ad is working and how to A/B test playable ads.

FAQ

{{ f.a }}

Sources

  1. {{ s.n }}{{ s.name }}

{{ a.h1a }} {{ a.h1b }}

{{ a.desc }}

Written by {{ a.author }}

{{ a.meta }}

Ready to ship playables from your game?