◉RORK LABJP
●GPT-6.1 SOL — Added to Rork's model menu (09-29) with Low, Medium and High effort; included on Pro and Max●SONNET 5.5 — Claude Sonnet 5.5 is selectable: strong at UI design and faster than Sonnet 5 (09-28)●SDK 58 — Beta since 09/15 with no stable date yet; running projects in Expo Go has required login since 09/03●WIDGET — A write-up traces an iOS widget that renders black only in production builds●OBSERVE — EAS Observe now records native crashes too (SDK 57.0.21 or later, 10/07)●NEW — My App Open Ad Only Showed When the App…●GPT-6.1 SOL — Added to Rork's model menu (09-29) with Low, Medium and High effort; included on Pro and Max●SONNET 5.5 — Claude Sonnet 5.5 is selectable: strong at UI design and faster than Sonnet 5 (09-28)●SDK 58 — Beta since 09/15 with no stable date yet; running projects in Expo Go has required login since 09/03●WIDGET — A write-up traces an iOS widget that renders black only in production builds●OBSERVE — EAS Observe now records native crashes too (SDK 57.0.21 or later, 10/07)●NEW — My App Open Ad Only Showed When the App…
Articles/Business
⟐ Business/2026-05-30Advanced

Two Weeks After Adding Pangle and Mintegral to My AdMob Waterfall — Notes on eCPM and Fill Rate

A record from a wallpaper app with over 50 million downloads: I added Pangle and Mintegral to my AdMob mediation, then compared two weeks of eCPM and fill-rate data. Bidding-and-waterfall coexistence, the effective-revenue breakdown, region-based groups, and a daily monitoring script — kept in a form you can actually operate.

AdMob73Mediation7PangleMintegraleCPM5App Monetization11Indie Dev40

✦ Premium Article

One morning I opened my AdMob mediation report and noticed that one ad network's fill rate had slipped compared to the previous week. The eCPM itself was fine, but the share of requests that went unfilled had grown — meaning there were windows where I simply wasn't selling my inventory. So I finally tackled a task I'd been putting off: adding two new networks to the waterfall.

I'm Masaki Hirokawa, an artist and solo developer. I've been building wallpaper and relaxation apps on my own since 2014, and the cumulative downloads have passed 50 million. Ad monetization is the area I've touched most in recent years, so here I want to share the actual data from adding Pangle and Mintegral to my AdMob mediation and running them for about two weeks. There's no dramatic conclusion. But if you're weighing the same move, I hope these honest numbers help you guess how it might play out for your own app.

Why I Added Two Networks

My apps swing a lot in display value depending on region. During hours when Japanese users dominate, I can hold a high eCPM, but when the overseas share rises, my existing networks alone start dropping fill rate, and there are moments when no ad comes back for a request. To fill those gaps I picked Pangle, known for strong overseas inventory, and Mintegral, which carries heavy demand from game advertisers.

The reasoning was simple: both support AdMob's open bidding and the waterfall, so the cost of adding them is relatively low. Ever since 1997, when I first touched the internet at sixteen through self-taught programming, I've preferred the approach of "just connect it once and look at the real data." With ad networks too, I'd rather judge by my own app's numbers than by reputation.

What I Did in the Setup

The addition itself isn't hard, but there were three spots where it's easy to stumble. Here they are in order.

First, in the AdMob console you add each network to a mediation group. Bidding-capable networks go into the bidding slot, while waterfall-served ones get registered as manual eCPM rows. At first I pushed both into bidding and ended up losing Mintegral's waterfall inventory.

Next, you issue app IDs and ad unit IDs on each network's own console and paste them into the AdMob mapping. This is copy-and-paste work, but it's easy to mix up test and production, so I leave a one-line note before I start:

# mediation_mapping_memo.txt
app: WallpaperApp-iOS  unit: interstitial_main
pangle:    placement=YOUR_PANGLE_PLACEMENT_ID   mode=bidding
mintegral: unit=YOUR_MINTEGRAL_UNIT_ID          mode=waterfall  floor=manual
# Check: grep for test IDs (t_xxx) leaking into prod before push

Finally, you add the SDKs. In a React Native–based app, you install each mediation adapter and then verify the native dependency resolution. On iOS you also need to add the SKAdNetwork identifiers to Info.plist; forget this and attribution gets dropped, which makes eCPM look lower than it really is. Reflect every identifier each network publishes, without omissions.

✦

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
✦How to design manual-eCPM floors when bidding and the waterfall coexist, and where to place each network
✦A breakdown formula and worked example for how a five-point fill-rate gain flows into effective revenue
✦A step-by-step for splitting mediation groups by region, plus code to watch daily eCPM and fill rate yourself
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 $10 for lifetime access
View Membership →

Related Articles

⟐ Business2026-05-21
Putting AdMob Bidding into Production for a Rork App — Five Networks Bidding in Parallel, eCPM Trends, and Daily Operations
I moved the AdMob mediation layer of my Rork-generated apps from waterfall to bidding, with five ad networks bidding in parallel. Here are my real-world numbers after three weeks of production, the SDK pitfalls, and how I delegate daily monitoring to Claude in Chrome.
⟐ Business2026-10-16
AdMob Balance Below the Payment Threshold for Months: Three Screens to Check Before You Worry
If AdMob earnings stay under the payment threshold (8,000 yen for yen accounts), the balance rolls over rather than disappearing. Here is what actually deserves a check: address verification, payment holds, and account deactivation, based on the Help pages.
⟐ Business2026-09-06
Your Blended eCPM Dropped and Revenue Went Up: Splitting the Change Into Country Mix and Rate
Blended eCPM is a weighted average, not a price. Here is how I split a month-over-month change into a country-mix effect and a rate effect that reconcile exactly to the total, plus what to check before you cut a low-eCPM country.