Liftoff and Moloco are programmatic demand-side platforms (DSPs), not ad networks with their own publisher apps. They buy inventory on your behalf across many publisher SDKs (AppLovin MAX, Unity LevelPlay and open exchange inventory), using their own ML bidding to decide which impression is worth buying and at what price. So your playable competes in real-time auctions across thousands of publisher apps at once, not in one network's inventory. Current specs: Liftoff and Moloco playable ad specs.
How Programmatic DSPs Score Creative Performance
Standard ad networks optimize for installs: maximize the number of users who tap the CTA and download the app. Liftoff and Moloco both offer ROAS-based optimization. They optimize for downstream revenue events (in-app purchase, subscription, Day 7 retention) rather than raw installs. So the creative has to attract people likely to spend, not anyone willing to tap install.
For playable ads specifically, the engagement signals Liftoff and Moloco read from your creative (interaction rate, interaction completion rate, dwell time before CTA tap) become proxy signals for install intent quality. A user who spends 8 seconds in your mini-game before tapping install is a higher-quality signal than one who taps the CTA immediately after load. Build creatives that make the interaction worth staying for.
Liftoff Creative Best Practices
Liftoff's publisher inventory skews toward mid-core and hard-core mobile games. That audience is comfortable with complexity. They will read a short instruction, play through several steps and tap install deliberately rather than on impulse. So a Game Template mini-game or a Break System interaction that takes 5–10 seconds will perform better here than on hyper-casual networks where users expect instant one-tap mechanics.
Liftoff (Accelerate) takes a ZIP with one HTML file at its root, or a single HTML file, up to 5 MB, and forbids external requests and iframes. It uses MRAID for timing: the creative checks MRAID's state, waits until it is ready and on screen, then exits with Liftoff.open() or mraid.open() with no URL, because Liftoff supplies the destination. The creative draws no close button of its own. One Liftoff-specific tip: they support multiple creative variants per campaign and will automatically A/B test them, allocating budget to the winner over time. Upload at least two variants, one with heavier interaction and one lighter, and let the system decide.
Moloco Creative Best Practices
Moloco's Product Revenue Optimization (PRO) bidding looks for users who will spend, not only install. Their ML model needs 30–50 revenue events per week to optimize effectively: this means you need sufficient volume before Moloco can exit the learning phase. During learning, creative data counts for more: a playable with clear, distinct engagement signals helps the model settle faster.
Moloco's inventory is particularly strong in APAC markets. Build your playable for variable network speeds: target under 500 KB, test on a 4G-throttled connection, and avoid JavaScript-heavy animation that strains lower-end Android devices. System-font text, CSS keyframe animations, and optimized WebP images perform consistently across Moloco's device range.
Preparing Creatives for the Learning Phase
Both platforms need time and data before their bidding settles, and the creatives you launch with are part of what the model learns from. A few habits make that period shorter and cleaner.
- Launch with the variants you intend to test, rather than adding them a week later. A creative added mid-learning is judged against ones that already have history.
- Avoid replacing files during learning. Swapping the creative changes the thing being learned and can push the campaign back towards the start.
- Make the variants clearly different. Two creatives that differ only in a shade of button colour give the model little to separate; a lean and a rich version do.
- Keep the conversion event steady. If you change what the campaign optimises for, the creative results from before the change are not comparable with those after it.
See delivery, bidding and the learning phase for how this works across platforms more generally.
Building a Lean and a Rich Variant, Step by Step
The callout below recommends a richer variant and a leaner one. In practice they can come from the same project:
- Build the rich version first: the full interaction, the reward moment, effects and the end card.
- Duplicate the project and name the copy as the lean variant.
- In the copy, cut the round to its single strongest interaction and move the CTA earlier.
- Replace large images with smaller WebP versions sized to the display, drop decorative effects and remove audio.
- Keep the lean export as small as the mechanic allows, and the rich one well inside Liftoff's 5 MB limit.
- Export both for each platform and upload them as separate creatives with names that say which is which.
Exporting for Liftoff and Moloco
Liftoff and Moloco handle the click very differently. Liftoff takes a ZIP, waits for MRAID to report the ad ready and on screen, and exits with Liftoff.open(). Moloco takes one data-URI-compressed HTML file that must not be zipped and must not include mraid.js; its store exit is FbPlayableAd.onCTAClick(), the same call Meta uses. In Playable Ads Maker, export with the Liftoff or Moloco network selection and each file is built that way. Upload to each platform's creative library in their respective dashboards.
Segment your creative strategy by platform
Don't run identical creatives on Liftoff and Moloco without evaluating fit. Liftoff's mid-core audience responds to depth; Moloco's APAC reach rewards lightweight, fast-loading creatives. Test a richer variant on Liftoff and a lean variant on Moloco simultaneously before consolidating.
Measuring Playables Bought Programmatically
With ROAS optimisation, the result you care about arrives days after the impression, and it reaches the DSP through your MMP's postbacks rather than from the creative itself. That has two consequences. First, the revenue and retention events must actually be sent to the platform; a campaign optimising for purchases cannot learn from purchases it never hears about. Second, creative-level reading needs creative-level naming: if both variants are called 'playable', the MMP cannot tell you which one brought the paying users.
On iOS, much of this signal arrives through SKAdNetwork with less detail and a delay, so iOS creative conclusions take longer and rest on less. See SKAdNetwork and playable measurement. For reading the engagement side of the funnel, playable ad metrics covers how the in-ad numbers relate to installs.
Common Mistakes on Programmatic Buys
- Uploading one file to both platforms. Liftoff and Moloco take different packages with different store exits, so a file built for one will not work on the other. Export each separately.
- Judging on installs alone when the campaign optimises for revenue. A variant that wins on install rate can still lose on the metric the bidder is chasing.
- Assuming the inventory is the platform's own. Because a DSP buys across many publisher apps, the creative meets a wide spread of devices and connections; test on a modest Android phone, not just a flagship.
- Ignoring creative fatigue. Programmatic reach is wide, but a winning creative is still shown to the same people repeatedly at scale. See creative fatigue.
- Building for complexity everywhere. Depth suits Liftoff's mid-core audience; it is a cost, not an advantage, where the audience expects one tap.
Create playable end cards in minutes—no code required.
Open Playable Ads MakerCheck a build against these specs
The free Playable Ad Spec Checker grades an HTML or ZIP against every network’s size cap, packaging, MRAID rules and store-exit calls. It runs entirely in your browser — no upload, no sign-up.