RORK LABJP
DEADLINE — Four days remain until Google Play requires Android 16 (API level 36). From August 31 it applies to new apps and to updates of existing ones alikeRULES — The submission rule and the visibility rule are separate. An app you have stopped updating still disappears for new users on newer devices if it targets below API 35EXTENSION — An extension keeps you shipping to all users until November 1, but the form lives in Play Console and has to be filed before the deadline passesEXPO — Expo SDK 57 moves React Native from 0.85 to 0.86 while React stays at 19.2, and 0.86 is intended to land without breaking changesHERMES — 57.0.9 updates React Native to 0.86.2 and clears the Hermes V1 memory regression from SDK 56, which shows up in apps importing reanimated or workletsPREBUILD — expo prebuild now clears and regenerates the native android and ios directories by default, so hand-edited native changes vanish unless you audit for them firstDEADLINE — Four days remain until Google Play requires Android 16 (API level 36). From August 31 it applies to new apps and to updates of existing ones alikeRULES — The submission rule and the visibility rule are separate. An app you have stopped updating still disappears for new users on newer devices if it targets below API 35EXTENSION — An extension keeps you shipping to all users until November 1, but the form lives in Play Console and has to be filed before the deadline passesEXPO — Expo SDK 57 moves React Native from 0.85 to 0.86 while React stays at 19.2, and 0.86 is intended to land without breaking changesHERMES — 57.0.9 updates React Native to 0.86.2 and clears the Hermes V1 memory regression from SDK 56, which shows up in apps importing reanimated or workletsPREBUILD — expo prebuild now clears and regenerates the native android and ios directories by default, so hand-edited native changes vanish unless you audit for them first
Articles/Business
Business/2026-05-14Intermediate

AdMob Mediation Dropped My eCPM by 30% After I Set It Up — What Went Wrong and How I Fixed It

My eCPM dropped 30% the morning after enabling AdMob mediation. Drawing on years of indie monetization work, here are the pitfalls I found in Rork apps, how to verify adapters are actually alive, how to derive floors from real data, and how to decide whether mediation is worth it at all.

AdMob70mediation2Rork544monetization47indie development36

Premium Article

The morning after setting up AdMob mediation, I opened the dashboard and froze.

My eCPM had dropped 30%. I had set up mediation specifically because "competing ad networks drive prices up" — yet somehow the result was the opposite. A cold, sinking feeling I still remember. I've been building apps independently since 2014, and very few monetization experiments have made me feel as much like I'd made a mistake.

When you work on indie app monetization for long enough, the volume of trial and error around revenue keeps growing. From that experience, mediation failures right after setup are remarkably common — and Rork apps have a few specific pitfalls that make them especially prone to it.

In this article I'll walk through the failure and recovery in order: why eCPM drops, the pitfalls specific to Rork, how to verify your adapters are actually running, how to derive floors from measured data, how to measure the effect with real numbers, and finally how to decide whether you should adopt mediation at all.

What Was Actually Happening

Mediation works by letting multiple ad networks (AppLovin, Unity Ads, Meta Audience Network, etc.) compete for each impression, theoretically pushing eCPM higher. When it works, it works well. The key phrase is "when it works."

Looking back, my eCPM drop had a clear cause: the waterfall configuration was wrong. In situations where AdMob should have been called first, lower-CPM networks were responding first instead.

When you implement ads in a Rork app, the AI-generated code handles the basic AdMob setup reliably. Mediation adapter configuration, though, requires a lot of work in the AdMob console outside of the code — and that's where things tend to go sideways.

Why Mediation Can Actually Lower Your eCPM

"Competition should push prices up," yet it went down. To understand the contradiction, you need to look at how waterfall mediation works internally.

In a waterfall, each network gets a priority (an eCPM floor), and AdMob asks them one by one, top to bottom: "Can you serve an ad at this rate?" As soon as a network answers, the auction stops there and lower networks are never asked.

That's where the trap is. If a network with a low floor sits near the top, it fills an impression cheaply that could have sold for much more. In auction terms, you're selling to the first person who raises their hand instead of waiting for the highest bid.

In my case, a network with the default $0.50 floor had effectively become the "instant closer." Impressions that should have sold for $1.80–$2.20 were being cleared around $0.50, one after another. That was the real source of the 30% drop.

In other words, mediation isn't something that raises revenue just by being enabled. It only works once each network's floor matches reality. Skip that step, and adding networks becomes a hole in your revenue.

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 three-step method for setting waterfall floors from the 40th percentile of real eCPM
An adapter health check you run at launch, with the correct consent-to-init ordering
A week-over-week threshold alert that catches an eCPM drop the same night
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

Rork 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 $15 for lifetime access
View Membership →

Related Articles

Business2026-05-12
I Built a Wallpaper App with Rork — An Honest Review from a Developer with 50M App Downloads
After running wallpaper and healing apps with 50M+ downloads since 2014, I prototype-tested Rork on the same genre. Here's my honest take on where it shines, where it struggles, and what it means for solo developers.
Business2026-06-22
A Wallpaper App's Real Work Starts After Launch — Content, Retention, and Revenue Notes from Running One on Rork
A wallpaper app is decided less by its launch and more by how you tend it afterward. Building on a Rork implementation, here are field notes on scheduled publishing that keeps content fresh, onboarding that survives the first week, and a revenue setup whose per-download return doesn't thin out over time.
Business2026-05-23
Minimal Customer Support Architecture for Solo Rork Devs — Running Inquiries for Multiple Apps Alone
The minimum-viable customer support stack I run as a solo developer maintaining a dozen apps with 50M cumulative downloads — in-app form with auto-attached diagnostics, Gmail filtering, reply templates, and the escalation rules that keep me under thirty minutes a day.
📚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 →