ADSTACK
What AppLovin actually is
Everything here is sourced from AppLovin's own support documentation (support.applovin.com, read Aug 2026). Strip the branding and the platform is one loop with three doors.
The flywheel the docs quietly encode: Ad ROAS and Blended ROAS advertising campaigns require the app to be on MAX mediation — because MAX's impression-level revenue data is the exact signal those optimization models feed on. Supply-side telemetry powers demand-side bidding. That coupling is the whole company, and it's the thing any rebuilder has to copy first.
The user-acquisition engine
Campaigns are goal-based; the optimization model is fixed at creation and cannot be changed later. Two billing modes: target-goal bidding with CPI billing (cost per result held near target, charged per install) and auto-bidding with CPM billing (spends full budget at lowest cost per result, charged per impression).
| Goal | Optimizes | Documented constraint | Docs recommend for |
|---|---|---|---|
| CPI | Cost per install | Goal below $200 | — |
| CPE | Cost per custom event (e.g. level_10) | Below $500 | — |
| CPP | Cost per purchaser | Below $500 | Uniform-value purchasers (subscriptions) |
| AD ROAS | Return on spend from in-app ad revenue | Target > 10% · needs MAX | Ad-monetized apps |
| IAP ROAS | Return on spend from purchases | Target > 1% | IAP-only apps |
| BLENDED ROAS | Total (IAP + ads) return | Target > 5% · needs MAX | Mixed-revenue apps |
Everything else you can do
- Targeting is deliberately thin: countries (~200), per-country budgets and goals, US states/metros, creative-set-level language (50 languages). No demographics, interests, OS versions, or device models. The model does the targeting.
- Creative: 9:16 video ≤60s ≤1GB (re-transcoded), single-file MRAID playables ≤5MB with a full funnel-analytics API, banners/MRECs/endcards. Creative sets (10 files per type) attach to many campaigns; edits propagate globally.
- Measurement is delegated: an MMP is mandatory (Adjust, AppsFlyer, Kochava, Tenjin, Singular, Branch) — ≥7-day click window, ≥24h view-through, lifetime event postbacks, and strict revenue hygiene: no pLTV, no ad revenue, no trials in purchase postbacks.
- Four APIs: Reporting (day-N ROAS/retention cohorts, 0d→1y), Asset Reporting, Playable (HTML) Metrics, and full Campaign Management (1,000 req/min; 100 errors in 5 min = 24h block).
- Price rails by geo tier: CPI-billed caps from $10 CPI / $1,000 CPP (US) down to $0.50 / $150 (tier 4); a multi-geo campaign inherits its lowest tier's cap.
- Retargeting exists (
campaign_ad_type: rt) but is otherwise undocumented; retention appears only as reporting columns, never as a goal.
E-commerce demand, game-inventory supply
The newer product: DTC brands and lead-gen sites buy the same game inventory. The ad is a fixed three-act sequence — full-screen video, interactive page, dynamic catalog — in interstitial (skippable after 5s) or rewarded (≤60s) placements.
- Audiences: Universal (everyone), Prospecting (new customers), Discovery (never visited your site). The latter two require Shopify integration or purchase-history uploads (CSV/SFTP ≤200MB).
- Goals: ROAS or CPP at Day 0 or Day 7 ("Day 0 suits quick-purchase items, Day 7 higher-value products"), CPL/CPE for lead gen. Auto-bidding only — no manual bids.
- Signal stack: AppLovin Pixel (GTM & GA4-compatible;
page_view → view_item → add_to_cart → begin_checkout → purchase), server-side Conversion API (100-event batches, deduped against the pixel), one-click Shopify app, hashed email/phone identity. Click IDs must survive redirects or attribution breaks. - Dynamic catalogs: Shopify-synced, CSV feeds, or pixel-inferred; the docs' one lift claim — brands with 5+ SKUs "typically see a 10–25% lift in conversion metrics." A no-feed Offering Catalog covers services/lead gen (six offers minimum recommended).
- Attribution: clicks-only or clicks + 1-day views; purchase windows D0 (24h), D7 (192h), plus D14/D28. Twelve pre-integrated third-party measurers (Northbeam, Triple Whale, Measured, Fospha…).
- Creative doctrine, with receipts: among top-5%-spend videos — median 37s, 67% of spend on 31–60s cuts, 95% captioned, ~40% carry a promotion; interactive pages drive 50%+ of a creative set's clicks.
The supply side
- Unified auction: every bidder (Google, Meta, Unity, ironSource, Liftoff, Mintegral, Moloco, Pangle, Amazon APS…) competes per impression; traditional CPM lines can sit alongside. Formats: banner, MREC, interstitial, rewarded, native, app open.
- Optimization tooling: A/B test any waterfall change (50% default split; docs say promote after 24h stable, >10k impressions/day, >2% incrementality); up to 8 segmented waterfalls per ad unit keyed on IDFA state, device type, or SDK-set numeric segments (0–32,000) with AND/OR/NOT rules.
- Programmatic control: Ad Unit Management API (2,000 req/hr) for placements, per-network CPMs, country bid floors, frequency caps, banner refresh locked to 0/10/15/20/30/45/60/300s.
- Reporting: dashboard (fill rate, eCPM, ARPDAU, impressions/DAU) plus revenue API, user-level revenue API, cohort API, and impression-level S2S.
- QA built in: in-app Mediation Debugger (per-network integration status, live-waterfall isolation), Test Mode, Creative Debugger, and dashboard Ad Review to flag bad creatives across 20+ networks.
- House rules with numbers: banner refresh ≥10s, one ad unit per format per app, ~5 ads per user per session, rewarded video ~1–2/day, "focus on global revenue, not eCPM," and a valid
app-ads.txt— "many advertisers do not bid" without it.
What the docs say — and refuse to say
The support site documents ROAS mechanics, never outcomes. These are the only ROAS numbers that exist anywhere in the source:
You choose the target ("1 = 100%", percentage return on the targeted day), and the docs' entire goal-setting doctrine is one sentence: set goals in line with your profitability targets, because unrealistic goals "may prevent the campaign from spending or scaling effectively." Over-aiming doesn't buy better ROAS — it buys silence. Reporting then tracks realized ROAS at 0d/1d/2d/3d/7d/14d/28d/30d/90d/1y, so cohorts accrete long past the optimization day.
What the source never provides: benchmarks, vertical averages, learning-phase durations, ramp timelines — the phrase "learning phase" does not appear on the site at all. Any "AppLovin gets you X%" claim is unsupportable from this source.
So what might ROAS be? Realized ROAS ≈ your target, if the target clears your creative/product/geo reality — the platform steers cost-per-result to the goal, and delivery volume is the truth serum. The floors sketch the envelope (1% D-day IAP recovery for long-payback titles up through 10%+ ad-revenue paybacks), the 30% D28 example is the closest thing to a "typical" figure, and the real drivers are the documented preconditions: clean revenue postbacks, 15–20 conversions/day of budget, broad geo grouping, relentless 9:16 video + playable refresh.
Action items: Roblox builds its own AppLovin
Roblox already owns what AppLovin had to assemble: first-party immersive inventory, a closed-loop currency (Robux) that makes every purchase a clean conversion signal, engagement telemetry, and an existing ads beachhead. What's missing is the machine around it. Six phases, each mapped to the AppLovin capability it replicates.
Phase 1 — Signal layer first
- Ship a Conversions API + postback system that streams Robux spend, experience joins, session depth, and custom developer events (level completes, quest finishes) per attributed user, with strict revenue hygiene rules: actual billed spend only — no predicted LTV, no bundled subsidies. MMP postbacks + the in-app-purchase revenue-sharing rules
- Define attribution policy up front: ≥7-day click window, 24h view-through, lifetime event windows, deterministic in-platform (same logged-in user on both sides — an edge AppLovin never had). Adjust/AppsFlyer required-settings pages
- Build an off-platform pixel + server API so web/DTC advertisers can pass
view_item → add_to_cart → purchasefunnels with hashed identity and click-ID persistence rules, for ads inside Roblox pointing out. AppLovin Pixel + Conversion API (100-event batches, dedupe IDs) - Open measurement to third parties — MMP-grade partner integrations and pre-wired e-commerce measurers, because advertisers won't take a walled garden's word for it. Six MMPs + twelve web measurement partners
Phase 2 — Goal-based buying engine
- Launch the goal ladder in order: CPV/CPI (cost per experience join) → CPE (cost per named event) → CPP (cost per paying user) → Robux ROAS (return on spend measured in attributed Robux revenue, D7 or D28 optimization day, advertiser-set percentage target). CPI/CPE/CPP → AD_ROAS / CHK_ROAS / BLD_ROAS progression
- Copy the rails, not just the goals: minimum accepted ROAS targets so campaigns can't demand the impossible, goal caps by country tier, goal type immutable after creation, and delivery throttling as the honest "your target is unrealistic" signal. 1%/5%/10% floors; $0.50–$10 CPI tier caps; no-spend-if-unrealistic doctrine
- Two billing modes only: target-goal bidding (charged per result) and auto-bid with CPM billing (spend the budget, minimize cost per result). No manual CPM micromanagement. CPI-billing vs. auto-bidding-CPM — the only two modes AppLovin offers
- Enforce the stability floor in the UI: warn any campaign whose budget can't buy ~15–20 target conversions/day, and push single global budgets over per-geo fragmentation. "15–20 conversions per day" + single-global-budget guidance
- Keep targeting thin on purpose: geo, language, device class — and let the model find users. No interest/demo targeting to leak signal or invite brand-safety fights. AppLovin's country-only targeting surface
Phase 3 — Creative system
- Standardize the ad unit as a three-act sequence: video hook → interactive/playable slice → catalog or join card, with hard specs (9:16, ≤60s, size caps, auto-transcode) and instant-join portals as the CTA. Video → Interactive Page → Dynamic Catalog, median 35s watch
- Make playable slices first-class: sandboxed mini-scenes of the advertised experience with a standard analytics funnel (loaded → challenge 25/50/75 → solved → CTA) exposed via API. MRAID playables + ALPlayableAnalytics + HTML Metrics API
- Creative sets, not per-campaign uploads: build once, attach everywhere, edit globally; publish a top-creative library per genre and codify the doctrine the data supports (30s+, captions, early value prop). Creative-first flow; Top Creative Library; the 37s/95%-captioned analysis
Phase 4 — The MAX analog (supply side)
- Give developers a real monetization console: rewarded, interstitial, and native in-experience formats with frequency rails borrowed wholesale — ~5 ads/session, rewarded ~1–2/day, minimum refresh intervals — because AppLovin's caps encode a decade of retention data. MAX best-practice numbers (≥10s refresh, 5/session, 1–2 rewarded/day)
- Open a unified auction to third-party demand (DSPs, e-commerce buyers) competing per impression against Roblox's own demand, with transparent seller records. 22-bidder in-app bidding + app-ads.txt/sellers.json enforcement
- Ship experiment tooling developers trust: A/B testing on placement/pricing changes with explicit promote thresholds (24h stable, volume minimums, measured incrementality), plus audience-segmented ad configurations. MAX A/B testing (50% split, 10k impressions, >2% incrementality) + 8-way waterfall segmentation
- Pay like clockwork and instrument everything: published payout terms (NET 15, low minimums), impression-level revenue APIs, ARPDAU/fill/eCPM dashboards, and in-experience debug overlays for integration QA and bad-creative reporting. NET-15/$100 payouts; revenue + cohort + S2S APIs; Mediation/Creative Debugger; Ad Review
Phase 5 — Commerce demand
- Dynamic catalogs in-experience: Shopify-class feed sync, CSV feeds, and pixel-inferred catalogs rendering as shoppable product rails inside ad units; a no-feed "offering" variant for services and lead gen. Dynamic Product Catalog (5+ SKUs → claimed 10–25% conversion lift) + Offering Catalog
- Universal / Prospecting / Discovery audience modes, with prospecting powered by advertiser purchase-history uploads modeling existing customers. The three web audience strategies + order-history CSV/SFTP uploads
- Age-gate the entire commerce surface: 13+/17+ cohort segmentation, verified-age targeting only, and a public brand-safety story — the one constraint AppLovin never faced and Roblox cannot fumble. No analog — Roblox-specific, and existential
Phase 6 — Platform surface
- Full campaign-management API at parity with the dashboard — campaigns, creative sets, assets (bulk upload), budgets, goals — with published rate limits and abuse rules. Axon Management API: 1,000 req/min, 40-file/10GB uploads, 24h error-block
- Cohorted reporting APIs on both sides: advertiser day-N ROAS/retention out to a year; developer revenue down to impression level; asset-level and playable-funnel reporting. Reporting API (0d→1y windows) + MAX revenue APIs
- Publish the doctrine — specs, floors, payout terms, attribution rules — as public docs. AppLovin's support site is a spec for rebuilding it; Roblox's should be good enough to steal from too. support.applovin.com itself