RORK LABJP
PLAY — Google Play's target API level 36 requirement took effect yesterday, August 31. From today, new apps and updates must target Android 16VISIBILITY — Apps still on API 35 stay listed but disappear for users on newer Android versions. No error is raised; new installs simply fade, which makes the change easy to missEXTENSION — If you missed the deadline, an extension through November 1, 2026 can be requested in Play Console — best filed alongside a concrete migration planAPPLE — On the Apple side, the event lands September 9 and iOS 27 is reported to ship September 14. Testing generated apps on iOS 27 hardware before release week is time well spentEXPO — Expo released expo-paste-input on August 28, a native module that brings image, GIF, and sticker paste to React Native TextInputEAS — EAS Observe reached general availability on August 20, putting crash and performance monitoring on the same EAS platform as builds and updatesPLAY — Google Play's target API level 36 requirement took effect yesterday, August 31. From today, new apps and updates must target Android 16VISIBILITY — Apps still on API 35 stay listed but disappear for users on newer Android versions. No error is raised; new installs simply fade, which makes the change easy to missEXTENSION — If you missed the deadline, an extension through November 1, 2026 can be requested in Play Console — best filed alongside a concrete migration planAPPLE — On the Apple side, the event lands September 9 and iOS 27 is reported to ship September 14. Testing generated apps on iOS 27 hardware before release week is time well spentEXPO — Expo released expo-paste-input on August 28, a native module that brings image, GIF, and sticker paste to React Native TextInputEAS — EAS Observe reached general availability on August 20, putting crash and performance monitoring on the same EAS platform as builds and updates
Articles/Business
Business/2026-04-10Intermediate

Building Monetized Apps with Rork AI — to Ads, IAP & Subscriptions

Ads, IAP, and subscriptions compared on one footing — monthly revenue per 1,000 DAU — with the runnable model behind it, why a misread conversion denominator shifts projections 6x, and a ternary entitlement type that stops cold-start ads.

Rork AI5App Monetization11Ad Integration2In-App Purchases2Subscriptions15

Premium Article

"Ads should bring in around $400 a month, right?" I've been asked some version of this more than once. The honest answer is "it depends on your DAU," which is true and completely useless to the person asking.

What makes monetization hard to reason about is that the three options are never quoted in the same unit. Ads are discussed in eCPM, one-time purchases in conversion percentage, subscriptions in trial-to-paid rates and churn. You can't decide what to build first by comparing numbers that don't share a denominator.

So this piece starts by putting all three on the same footing — monthly revenue per 1,000 DAU — before touching any implementation. Counting first tends to change the order you build things in.

Understanding the Three Pillars of App Monetization

Before writing a single line of code, you need a clear picture of how each monetization model works and which one fits your app.

Advertising

The advertising model lets users access your app for free while you earn revenue from ad impressions and clicks. It maximizes downloads because there's no cost barrier, but average revenue per user (ARPU) tends to be lower than paid models.

Advertising works best for apps with high daily usage — utility tools people open repeatedly, casual games with frequent sessions, news and weather apps, and anything targeting a broad audience where many users would never pay directly.

In-App Purchases (IAP)

In-app purchases offer a "try before you buy" experience. Users get the core app for free and pay only for features or content they genuinely value. This tends to produce higher user satisfaction because people feel they're paying for something they've already decided is worthwhile.

IAP fits apps with naturally tiered functionality — photo editors with premium filters, productivity tools with advanced features, games with additional levels or items, and any app where you can clearly delineate free and paid tiers.

Subscriptions

Subscriptions generate recurring monthly or annual revenue, providing the most predictable income stream. Both the App Store and Google Play offer a favorable revenue split — 85% to developers after the first year of a subscriber's tenure.

Subscriptions work best for apps that deliver ongoing value — content that updates regularly, cloud-synced services with server costs, professional tools that justify continuous payment, and fitness or wellness apps with evolving programs.

What each model actually earns at 1,000 DAU

The three pillars above describe character, not magnitude. To decide which one matters for your app, the units have to match.

Here's a model for a hypothetical app at 1,000 DAU, using mid-range observed eCPM figures for iOS in Japan and a 15% store commission (Small Business Program rate).

// monetization-mix.mjs — figures in JPY
const DAU = 1000, DAYS = 30, CUT = 0.15;
 
const AD = { bannerImp: 4.0, interImp: 1.6, eCpmBanner: 180, eCpmInter: 1250 };
const adMonthly = (dau) => {
  const banner = dau * AD.bannerImp * DAYS / 1000 * AD.eCpmBanner;
  const inter  = dau * AD.interImp  * DAYS / 1000 * AD.eCpmInter;
  return { banner, inter, total: banner + inter };
};
 
// Track subscriber count as a recurrence. Reading only the steady state
// will badly mislead you about year one.
const subSeries = (dau, monthlyConv, churn, months) => {
  const newSubs = dau * monthlyConv;
  let S = 0; const out = [];
  for (let m = 1; m <= months; m++) { S = S * (1 - churn) + newSubs; out.push(S); }
  return { newSubs, series: out, steady: newSubs / churn };
};
const mrr = (S) => S * 580 * (1 - CUT);

Running this under Node v22.22.3 gives:

ModelBreakdownMonthly revenue at 1,000 DAU
Ads onlyBanner ¥21,600 + interstitial ¥60,000¥81,600
Remove-ads IAP (0.2% monthly)2.0 buyers, ¥1,666 gross − ¥163 forfeited ad revenue+¥1,503
Remove-ads IAP (0.5% monthly)5.0 buyers, ¥4,165 gross − ¥408 forfeited ad revenue+¥3,757
Remove-ads IAP (1.2% monthly)12.0 buyers, ¥9,996 gross − ¥979 forfeited ad revenue+¥9,017

Notice the subtraction in the IAP rows. Every user who buys ad removal stops generating ad revenue from that moment on. Adding the purchase revenue without subtracting the loss overstates the gain by roughly 10%. The absolute numbers are small enough that most people skip this, but the error grows with your conversion rate.

The "2-5% conversion rate" figure has no stated denominator

This is where subscription projections tend to go wrong. The commonly cited 2-5% free-to-paid conversion rate almost always means cumulative paying users as a share of cumulative installs. Treating it as a monthly rate against DAU produces an entirely different business.

Monthly conversionChurnNew subsSubscribers at 12 months (MRR)Steady-state subscribers (MRR)Time to 90% of steady state
0.4%
(equivalent to 2.5% cumulative)
3%4/mo41 (¥20,125)133 (¥65,733)76 months
5%4/mo37 (¥18,128)80 (¥39,440)45 months
8%4/mo32 (¥15,587)50 (¥24,650)28 months
12%4/mo26 (¥12,889)33 (¥16,433)18 months
2.5%
(misread as monthly-on-DAU)
3%25/mo255 (¥125,780)833 (¥410,833)76 months
5%25/mo230 (¥113,301)500 (¥246,500)45 months
8%25/mo198 (¥97,419)313 (¥154,063)28 months
12%25/mo163 (¥80,557)208 (¥102,708)18 months

Reading the denominator one way instead of the other moves your steady-state MRR estimate by a factor of six. That is a fatal margin of error for anything you'd put in a plan.

Churn barely moves the needle in year one

The second surprise in that table is how churn behaves over time.

At steady state, 3% churn versus 12% churn is the difference between 133 and 33 subscribers — roughly 4x. At the twelve-month mark it's 41 versus 26, about 1.6x in MRR. The reason is that reaching steady state at 3% churn takes 76 months. Low churn and slow accumulation are very nearly the same property viewed from two sides.

That leads to a few practical calls:

  • To lift year-one MRR, work on new subscriptions (conversion rate and audience size), not on retention
  • Investment in churn reduction shows up in year two and beyond — but when it lands, it lands hard
  • Widening paywall exposure beats building cancellation-prevention flows in the weeks after launch

And under the realistic 0.4% monthly assumption, subscription MRR at twelve months reaches ¥20,125 even at 3% churn — ¥61,475 short of the ¥81,600 that ads alone produce. Betting exclusively on subscriptions at 1,000 DAU is, at least for the first year, the losing side of that trade.

Had I run these numbers earlier, I don't think I'd have made subscriptions the primary model on my first apps. The figures weren't bad. Deciding without looking at them was the problem.

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 runnable model comparing ads, IAP, and subscription revenue at 1,000 DAU, with actual output
Why misreading the denominator behind 2-5% conversion moves steady-state MRR by 6x
A ternary entitlement type that prevents cold-start ads from reaching paying users
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-04-04
Rork App Revenue Design: Where Ads and Subscriptions Eat Each Other
How to layer AdMob, subscriptions, and one-time purchases in a Rork app without letting them cannibalize each other. Covers value-density placement, entitlement-first RevenueCat architecture, server-side receipt verification, and behavior-triggered paywalls.
Business2026-07-12
Lower Store Fees by Their Structure, Not Their Rate — Apple SBP and Google Play's June 2026 Pricing
A working breakdown of Apple's Small Business Program and Google Play's new fee model that started June 30, 2026, framed as fee design for indie developers, with code to compute your effective rate and a break-even table.
Business2026-06-29
Designing a Referral System Without a Heavy Backend
Add a referral program to your Rork (Expo) app without standing up a fleet of servers. Covers code generation, deferred deep-link attribution on first launch, idempotent reward fulfillment that never double-pays, and basic guards against self-referral and device farming, all with working code.
📚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 →