ANTIGRAVITY LABJP
Articles/Integrations
Integrations/2026-05-19Advanced

Running AdMob and AppLovin MAX side by side with an Antigravity sub-agent that compares them daily

For the past two months I have been running my wallpaper apps on both AdMob and AppLovin MAX in parallel, and letting Antigravity sub-agents pull eCPM, fill rate and ARPDAU into a single daily comparison. This is an implementation memo from those 90 days, focused on cross-network normalisation and the thresholds I trust an agent with.

antigravity429admob17applovin-maxmediation6monetization31agents124

Premium Article

For the past two months I have been running the wallpaper apps in my catalogue on both AdMob and AppLovin MAX in parallel, and asking Antigravity sub-agents to roll up the numbers every day. I am Hirokawa, an indie developer who has been shipping on App Store and Google Play since 2014, and AdMob has been the revenue backbone of the business for over a decade. Switching mediation is not something I want to take a casual swing at. At the same time, in some countries and ad units AppLovin MAX has been showing a real edge in the auction. So instead of forcing an early answer, I decided to measure both against the same yardstick every day, and let the agent fleet do the heavy lifting.

This memo covers what I built over those 90 days. I will skip the obvious SDK installation work and focus on the parts that actually carried the decision: how to call the report APIs, how to split work between sub-agents, where to put guardrails, and where I refused to let the agent decide on my behalf.

Why I ran them in parallel and which three numbers I watched

I did not jump straight to a full AppLovin MAX migration because of a past experience with a different mediation SDK: it looked great after launch, then dipped for seasonal reasons, and I had no clean data to justify rolling back. I needed at least three months of side-by-side numbers before I would trust a migration decision.

After narrowing the metrics down, I landed on these three.

  1. eCPM — revenue per thousand impressions, the unit price
  2. Fill rate — the share of ad requests that get filled, a proxy for inventory depth
  3. ARPDAU — ad revenue per daily active user, the view from the user side

eCPM on its own lies to you. Fill rate can quietly slip while eCPM rises, and the totals shrink even though the "winning" network looks better. I made this mistake more than once back when I was running AdMob alone and manually flicking through reports. Looking at all three together is the bare minimum for a serious mediation comparison, and I lock the agent output into that exact column order so I never read it any other way.

Four sub-agents, one responsibility each

Antigravity sub-agents survive much better when each one owns a small responsibility and you glue them together by strings, instead of asking one big agent to do everything. After 90 days the split I am happy with is:

  • collector-admob: pulls daily data from the AdMob Reporting API and normalises to JSON
  • collector-applovin: pulls daily data from the AppLovin MAX Reporting API and normalises to JSON
  • normalizer: collapses country, currency and ad-unit name differences into a single comparable table
  • comparator: computes deltas across the three metrics and writes the notification copy when thresholds are crossed

Each one is its own .agent file and the Orchestrator calls them in order. Only the comparator depends on the other three, declared explicitly in the dependencies section of AGENTS.md, so if collector-applovin fails the comparator can still run a one-legged check the next day using yesterday's cached AdMob data. I tried to do this with one big Orchestrator first and ate two full re-runs after report API timeouts before retreating to the split layout.

Thank you for reading this far.

Continue Reading

What follows includes implementation code, benchmarks, and practical content we hope you'll find useful. This site runs without ads — server and development costs are supported entirely by members like you. If it's been helpful, we'd be truly grateful for your support.

WHAT YOU'LL LEARN
A concrete implementation that pulls AdMob and AppLovin MAX reports in parallel from Antigravity sub-agents and normalises by country and ad unit
Threshold design that watches eCPM, fill rate and ARPDAU together, and the boundary at which the agent escalates to a human
How a solo developer running six apps in parallel built up 90 days of evidence before deciding which units to migrate to AppLovin MAX
Secure payment via Stripe · Cancel anytime

Unlock This Article

Get full access to the rest of this article. Buy once, read anytime. This site is ad-free — your support goes directly toward keeping it running.

or
Unlock all articles with Membership →
Share

Thank You for Reading

Antigravity Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • Copy-paste ready implementation code
  • New advanced guides published daily
  • $5/mo or $10 for lifetime access
View Membership →

Related Articles

Integrations2026-05-23
Antigravity × UMP/ATT Consent Rate Optimization Agent — A Weekly Autonomous Loop That Lifts AdMob Revenue Region by Region
ATT and Google UMP consent rates are hidden levers that move AdMob eCPM by 1.3–2.0x. This is a working memo on letting Antigravity sub-agents run weekly experiments on regional consent UX across six apps, and how that lifted ARPDAU.
Integrations2026-05-18
Two Weeks of Letting Antigravity's Browser Sub-Agent Handle My Weekly AdMob Mediation Review
A field record of letting Antigravity's Browser Sub-Agent handle the weekly mediation waterfall review inside the AdMob console for two weeks. What I delegated, what I kept manual, the unexpected behaviors, and what the freed-up time actually surfaced.
Integrations2026-06-26
Designing MCP Tool Output So It Doesn't Flood Your Agent's Context
When a custom MCP server returns large results in one shot, your Antigravity agent quietly degrades. Field projection, pagination, resource_link, and an output budget keep context from overflowing — shown with concrete TypeScript and measured numbers.
📚RECOMMENDED BOOKS
Build a Large Language Model (From Scratch)
Sebastian Raschka
LLM Dev
Prompt Engineering for LLMs
Berryman & Ziegler
Prompting
AI Engineering
Chip Huyen
AI Eng
* Contains affiliate links
See all →