Playable ads guide

AppLovin MAX Playable Ads: SDK, Mediation & Creative Best Practices

AppLovin MAX is both a mediation platform and a demand-side platform. Which role it plays in your campaign affects how you build the playable. When you're buying installs through AppLovin's network (not just using MAX to mediate other networks), your playable ad enters a real-time bidding auction across MAX's publisher inventory: a mix of casual, hyper-casual, and mid-core games. That audience affects everything from file size to interaction timing. Current specs: AppLovin playable ad specs.

AppLovin MAX vs AppLovin Network: Two Different Things

MAX is the mediation layer that publishers use to manage multiple ad networks in one SDK. As an advertiser, you're buying through the AppLovin demand-side platform, not directly 'on MAX.' Your creatives compete against bids from Unity, Meta, Mintegral and others in the same MAX auction. What this means practically: the publisher's app has the MAX SDK integrated, and MAX runs the auction transparently. Your playable HTML file is served inside a MAX webview.

The practical implication for creatives: your file must work inside MAX's webview, which is a standard mobile WebView with MRAID 2.0 support. AppLovin's SDK injects the MRAID interface at serve time. Your CTA must call mraid.open(): a plain window.location redirect won't track correctly.

MRAID 2.0 Requirements for AppLovin

  • Initialize MRAID before displaying your creative: listen for mraid.getState() === 'default' before showing content.
  • Use mraid.open(url) for all CTA clicks: this routes to App Store/Play Store with attribution intact.
  • Handle both iOS and Android: detect via navigator.userAgent and pass the correct store URL to mraid.open().
  • No external network requests: all assets embedded, no CDN calls.
  • File size: AppLovin publishes 5 MB and notes that smaller files perform better (Playable Ads Maker builds AppLovin exports to 4 MB for margin). The real performance sweet spot is under 1 MB for fast rendering in hyper-casual publisher contexts.

Creative Performance in AppLovin Auctions

AppLovin's bidding algorithm factors in predicted CTR when setting bid prices: better-performing creatives get more impressions at similar CPMs. The effect compounds: a playable with a 6% interaction rate gets more volume than one at 2%, which brings more install data and better optimisation. Creative quality counts for more on AppLovin than on networks with simpler bidding.

AppLovin's publisher inventory skews toward casual and hyper-casual games. That audience is used to fast loops that start straight away. A playable that takes 3 seconds to load or requires reading instructions before interacting will underperform. Design for instant interaction: the mechanic should be obvious within 1 second of load.

Rewarded and Interstitial Placements

Playables on AppLovin's inventory are served in full-screen placements, and the two most common behave very differently even when the file is identical. In a rewarded placement the user has chosen to watch in exchange for something in the game they are playing, so they arrive willing to engage and will often play the whole round. In an interstitial the ad appears between moments of someone else's game, uninvited, and the first second decides whether they engage at all.

That affects design. A creative that leans on a slow build-up can do well in rewarded traffic and poorly in interstitials, while one built around an instant, obvious first tap tends to hold up in both. If your data shows most spend going to one placement type, design for that one first. Rewarded vs interstitial playables covers the differences in more depth.

Building Variants for the Auction

Because AppLovin's bidding rewards creatives that perform, the variants you upload matter as much as your favourite. Good variant pairs differ in one real way, not in small details:

  • A short round against a longer one, with the same art and CTA.
  • An easy win against a close 'almost' finish leading into the same end card.
  • Gameplay-first against reward-first: open on the mechanic, or open on what the player gets.
  • A different first frame. On a fast-scrolling audience, the opening image and prompt are often the biggest lever.

Changing several things at once makes the result hard to read; see A/B testing playable ads for keeping tests clean.

File Size Strategy for AppLovin

AppLovin's publishers serve ads on every grade of Android phone, including low-end hardware in emerging markets. A 3 MB end card that loads acceptably on a Pixel 7 may stutter on a budget Android device with limited RAM. Keep background images under 400 KB (use WebP), avoid custom font files (system fonts render instantly), and use CSS animations over JavaScript-driven motion where possible. See reducing playable ad file size under 500 KB for the full optimization workflow.

Exporting AppLovin-Compliant Playables

In Playable Ads Maker, select AppLovin in the export modal. The export injects MRAID 2.0 initialization and wires the CTA button to mraid.open() with your iOS and Android store URLs. The exported HTML is self-contained: no external dependencies. Download, test on a real Android device (AppLovin's dominant platform), and upload in AppLovin's Growth platform under Creatives.

AppLovin creative refresh cadence

AppLovin recommends refreshing creatives every 2–4 weeks as audience fatigue sets in. Keep your best-performing creative as a control, produce one or two variants, upload alongside the control, and let the system optimize. With project duplication in Playable Ads Maker, a variant takes about 20 minutes.

Testing an AppLovin Build Before Upload

Opening the exported HTML in a desktop browser shows you the layout, but not the environment it will run in: there is no MRAID container, no real touch input and no budget Android CPU. A short test pass catches most problems before AppLovin's automated review does.

  1. Run the file through the MRAID validator to confirm the creative waits for MRAID to be ready and exits through mraid.open().
  2. Check the size against AppLovin's published 5 MB, and against your own stricter target, with the size limits tool.
  3. Play it on a real Android phone, ideally an older or cheaper one, and watch for a slow first frame or stutter during animation.
  4. Rotate the device mid-play. The layout should adapt without the round restarting or the CTA disappearing.
  5. Tap the CTA on both iOS and Android and confirm each opens the right store page for the right app.
  6. Leave it running untouched and make sure nothing exits to the store on its own.

Common Problems on AppLovin

  • A 'failed to load' rejection caused by a single external asset: a font, an image or an analytics script pulled from a URL. Every asset must be inside the file.
  • A creative that starts before MRAID is ready, so the first interaction or the CTA fails on some devices and works on others.
  • A store exit through window.open() or a location change left over from another build, which bypasses the container.
  • A blank or frozen first second while large images decode. Smaller, pre-sized images fix this more reliably than any loading screen.
  • Audio that is expected to start by itself. Treat sound as something that begins after the first touch, if at all; see playable ad audio.

When a creative passes review but underperforms, the load time and FPS guide is usually the next place to look.

Create playable end cards in minutes—no code required.

Open Playable Ads Maker

Check 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.