RORK LABJP
RORKMAX — Rork Max generates pure Swift instead of React Native, enabling true native apps across iPhone, iPad, Watch, TV, Vision Pro, and iMessageAPPLE — Rork's 2026 direction has a clear theme of native empowerment across the Apple ecosystemEXPO — Standard builds run on React Native and Expo, so you're left with a real project structure and code you can keep working onFUNDING — Rork recently raised $15M and now sees over 743,000 monthly visits with 85% growthPRICING — Rork is free to start, with paid plans from $25/month and Rork Max at $200/monthCROSS — Rork builds iOS, Android, and web from a single prompt, finished off with a bit of follow-up tweakingRORKMAX — Rork Max generates pure Swift instead of React Native, enabling true native apps across iPhone, iPad, Watch, TV, Vision Pro, and iMessageAPPLE — Rork's 2026 direction has a clear theme of native empowerment across the Apple ecosystemEXPO — Standard builds run on React Native and Expo, so you're left with a real project structure and code you can keep working onFUNDING — Rork recently raised $15M and now sees over 743,000 monthly visits with 85% growthPRICING — Rork is free to start, with paid plans from $25/month and Rork Max at $200/monthCROSS — Rork builds iOS, Android, and web from a single prompt, finished off with a bit of follow-up tweaking
Articles/Business
Business/2026-05-25Advanced

How I Layered Rewarded, Interstitial, and App Open Ads to Lift ARPDAU 1.4× on My Wallpaper App

Optimizing AdMob's three formats individually hit a ceiling — they were eating each other's impressions. After redesigning Rewarded, Interstitial, and App Open as a coordinated 3-layer system with strict role separation and an exclusion gate, ARPDAU climbed 1.4× over nine weeks. The full playbook, code, and weekly numbers.

AdMob69Rewarded2Interstitial2App Open2ARPDAUWallpaper Apps3Indie Developer11Rork504

Premium Article

My wallpaper app's AdMob revenue had been flat for about six months. I'm Masaki Hirokawa (@dolice), an artist and indie iOS/Android developer. I've been shipping apps since 2014, and after my catalog crossed 50 million cumulative downloads, I started running into a wall: optimizing each ad format individually no longer moved the needle. When I pushed Rewarded harder, Interstitial impressions dropped. When I added App Open, Rewarded completion rates fell. The three ad formats were cannibalizing each other.

Over nine weeks this spring, I rebuilt the AdMob stack around a single idea: treat the three formats as a coordinated 3-layer system, not three independent levers. ARPDAU (average revenue per daily active user) climbed 1.4× and monthly AdMob revenue returned to a number I had only seen once before — over one million yen in a single month. Here is the design and the operational log.

Why You Have to Think in Three Layers

The official AdMob docs cover Rewarded, Interstitial, and App Open separately. Read in isolation, each guide reasonably tells you to maximize frequency without hurting UX. The problem starts the moment you put all three into the same app. Their guidelines start interfering with each other.

The first collision I hit looked like this: Rewarded promised "watch an ad to unlock three extra wallpapers," but App Open fired immediately before the unlock prompt. Users perceived a wall of ads and bounced. Crashlytics reported zero crashes, yet Rewarded impressions dropped about 30% that week. The root cause was simple — three formats were competing for a single finite resource: the user's attention.

The essence of 3-layer thinking is to assign each format a clear role — lead actor, seasoning, and leak bucket — and have them defer to one another at runtime. I only put that into words after running a wallpaper catalog at 50M+ downloads long enough to feel that single-format optimization had hit a ceiling that no amount of fine-tuning could break through.

The Three Roles — Lead Actor, Seasoning, Leak Bucket

Here is the split I locked in over nine weeks.

The lead actor is Rewarded. It is the only format where the user makes an active choice — "watch this ad and I get something." That positive exchange shows up in higher eCPM (2–3× the others in my apps), higher retention for users who complete a view, and lower review-page complaints. I now start every monetization design by maximizing where this format can fire.

The seasoning is Interstitial. It fits at session boundaries — moments where the user is between actions, not in the middle of one. On a wallpaper app, that means "after swiping through ten wallpapers, when switching categories." The opposite — firing while the user is actively choosing something — pushes CTR up but cuts retention. I tested that once in early 2026 and Day 7 retention fell 11 points. I haven't forgotten.

The leak bucket is App Open. It earns its keep by catching sessions where neither of the other two formats fired. If Rewarded never triggered and Interstitial got rate-limited, App Open recovers some revenue. Promote it to a starring role and users get an ad on every cold launch — a fast track to one-star reviews.

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
Role split (lead actor / seasoning / leak bucket) for Rewarded, Interstitial, and App Open — plus the exclusion-gate code that eliminated ad-on-ad collisions
The four ARPDAU metrics I track weekly and the Firebase Remote Config-driven cap tuning that moved the needle
Three concrete failure modes from the nine-week rollout, including the moment a 'permanent unlock' reward gutted next-week views by 70%
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-06-28
Don't Pay Out a Rewarded Ad on the Client's Word Alone — SSV Verification for a Rork (Expo) App on a Worker
Trusting the client-side 'reward earned' callback alone invites double-grants and spoofing. Here is how to wire AdMob server-side verification (SSV) into a Rork-generated Expo app, verify the signed callback on a Cloudflare Worker, and make payouts idempotent with transaction_id.
Business2026-05-30
Taking Inventory of Your AdMob Ad Units — All the Way to App Open Cooldown Design
When rewarded and interstitial units pile up and you can no longer tell which one fires on which screen, here is the inventory process I use, plus the design for adding a cooldown to an App Open ad that otherwise shows on every launch.
Business2026-05-22
Designing AdMob App Open Ad Frequency Without Hurting Retention — Operational Notes from Wallpaper Apps
Implementation notes from rebuilding the AdMob App Open Ad frequency design in a recent wallpaper app update. Minimum intervals, cold-start exceptions, and post-modal suppression are controlled dynamically through Remote Config, with Claude in Chrome handling the daily dashboard review.
📚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 →