One referred signup followed by 24 monthly renewals, with only the first charge marked as paid to the creator

Why Subscription Apps Need Their Own Affiliate Layer

An affiliate program for subscription apps has to do one thing no other kind does: keep crediting a creator as the revenue they caused keeps arriving. A signup is not the sale. It is the first charge of however many that subscriber makes, and on the day you pay the creator it is the only one you can see.

Two categories of tool already exist, and neither was built for that. E-commerce affiliate platforms model a single order. Mobile measurement partners model an ad network. What follows: the gap in dollars, why each category misses structurally rather than lazily, the six things a subscription-native layer has to handle, and how to tell whether you need one yet. Under about five creators, you do not.

#A one-time payout pays for the signup and ignores the renewals

A subscription signup is one charge out of many. Paying a creator a fixed amount at conversion prices every subscriber identically, whatever they go on to pay you. On a $9.99 monthly plan that a subscriber keeps for 24 months, a $2.00 signup bounty is 0.8 percent of the $239.76 that subscriber produced.

That is not a hypothetical tail. RevenueCat's category benchmarks, published 2026-04-24 from a dataset of more than 115,000 subscription apps, put the median first monthly renewal rate between 42 percent in Social and Lifestyle and 61 percent in Business. In most categories, over half the subscribers a creator sends you pay again at least once.

Put two creators side by side. Both send 50 paying subscribers to the same $9.99 monthly plan. Creator A's each pay once and leave. Creator B's each stay 18 months.

CreatorSubscribersPaid months eachRevenueOne-time $2.00 bounty20 percent of every charge
A501$499.50$100.00$100.00
B5018$8,991.00$100.00$1,800.00

Commission per charge is `round(999 × 2000 / 10000)` = `round(199.8)` = 200 cents, which is why a 20 percent rate bills as 20.02 percent of revenue at this price. Revenue: 50 × $9.99 = $499.50, and 50 × 18 × $9.99 = $8,991.00.

The bounty costs 20.02 percent of revenue on the creator who sent churn and 1.11 percent on the one who sent a business, and pays both the same $100. Creator B produced eighteen times the revenue for an identical cheque. Nothing in that payout tells you which of them to sign again.

The flat line is a one-time bounty. The gap between it and the revenue curve is what nobody is measuring.

Our engine defaults its eligible event types to purchase and renewal for this reason, with the rate snapshotted onto each commission row so a later rate change cannot restate what a creator already earned. We would pay a percentage rather than a bounty in almost every case: a bounty prices churn at zero, and a subscription business cannot afford that. The commission and payout guide has the rest of the policy.

#E-commerce affiliate platforms model one order, not a subscription

They were built for a cart. The unit is an order with a total, a commission, and a return window. A subscription has no order: it has a trial that charges nothing, a first charge, renewals at the same price, a proration when the plan changes, and a store that keeps part of every one of them.

Feed a subscription into that model and it degrades to the first charge. No event type for a renewal, so the second month is invisible. None for a trial start, so a 14-day trial looks like a conversion that never happened. None for the store's cut, so the tool calculates 20 percent of a price you received 70 percent of.

That last one is the expensive one. Apple's subscriptions page states that "during a subscriber's first year of service, you receive 70% of the subscription price at each billing cycle, minus applicable taxes", rising to 85 percent after a year of paid service, with free trials excluded. The Small Business Program gives 15 percent under 1 million USD in prior year proceeds, and Google Play's service fee page puts auto-renewing subscriptions at 15 percent in most markets. All checked 2026-09-13.

On the $9.99 plan, round(999 × 2000 / 10000) = 200 cents gross. Net of a 30 percent cut the base is 699 cents, so round(699 × 2000 / 10000) = 140 cents. Sixty cents a period, every period, on a decision most founders make by accident. The net versus gross post has the edge cases.

None of this makes those platforms bad. They beat us at web checkout, and if you sell one-off purchases on your own site, use one. The failure starts at the App Store boundary, where their webhook never fires. We argued for one attribution engine across mobile and web because the alternative is two ledgers disagreeing by the store's cut.

#Mobile measurement partners measure ad networks, not creators

An MMP answers which campaign produced installs, at a scale where individual users must not be identifiable. On iOS that shape is set by Apple, not the vendor: postbacks arrive aggregated, delayed, and stripped of detail below a privacy threshold. Right for buying media, wrong for paying a named person a percentage of a charge.

Apple's ad attribution page, checked 2026-09-13, is explicit about the withholding: "In order to maintain user privacy, conversion-value and source-app-id are conditional values that are only included in App AdAttributionKit postbacks when certain thresholds are met." The same page describes developers receiving a postback within 24 to 48 hours of a user launching the app, and up to three in total. A creator ledger needs a row per charge for three years, not three postbacks in five weeks.

The deeper mismatch: a measurement framework is designed to make the individual unresolvable, and a commission is a payment to one person for one identified subscriber. A creator link does not need that machinery. The click lands on your own domain, the person installs your app, your SDK calls identify with your own user id, and the billing webhook carries that same id. No device graph, no threshold. Our attribution windows post covers how long that record should stay valid.

The other half is simply absent. We have not found an MMP that will hold a creator's balance, apply a hold period, reverse a row on refund and produce a payout the creator can see, because that is not the product they sell. Our deferred matcher refuses rather than guesses: when clicks inside the window point at two different affiliates it attributes nothing, correct for a payment and unacceptable for a campaign report. Keep the MMP if you buy paid installs. It is not competing for this job.

#The three categories, scored on what a subscription needs

Five criteria separate them, and no category scores well on all five. Verdict first: an e-commerce affiliate platform can pay a creator but cannot see a renewal, a mobile measurement partner can see the install but cannot pay anyone, and only a layer that reads your billing events and keeps a commission ledger does both.

CriterionE-commerce affiliate platformMobile measurement partnerSubscription-native attribution
Unit of attributionOne orderOne install, aggregated to a campaignOne subscriber, then every charge they make
Renewal handlingNone. A renewal is a new order or nothingReported as revenue, not credited to a personA `renewal` event paying the same creator
Refund handlingReverses that orderNot modelledReverses the matching commission row
Creator-facing reportingYes, per partnerNo. Network and campaign views onlyYes, scoped to a single creator
PayoutYes, per orderNoneLedger with hold, maturation and reversal
The third column exists because the first two have complementary holes, not because anyone wanted another tool.

Read the third column as a specification, not a product claim. We built against it and still have holes, listed below. The opinion behind the table: the renewal row is the only one that forces a new category, because it needs a durable link between a click and a subscriber that outlives the first charge by years. Everything else could be bolted onto an existing tool.

#What a subscription-native layer has to handle

Six things, each a place where a naive implementation quietly loses money: trials, renewals, plan changes, refunds, the store's cut, and the delay before a commission may be paid. Four of them can move money backwards after you have already recorded it as earned.

Trials. A trial start charges nothing, so there is nothing to take a percentage of. RevenueCat's State of Subscription Apps 2026, built on more than 115,000 apps and over $16 billion in tracked revenue, reports trials of 17 or more days converting at 42.5 percent against 25.5 percent for shorter ones, checked 2026-09-13. Our engine counts trial_start in the funnel and pays zero on it. Per-trial bounties are defensible with a cap, which the free trials post works through.

Renewals. The renewal is where the money is, and it arrives as its own event with its own id months after the click that caused it. This kills every workaround: the attribution record has to still exist, still point at the same affiliate, and still carry the rate it was created with.

Plan changes and prorations. Stripe's proration docs, checked 2026-09-13, describe a customer moving from a $10 to a $20 monthly plan mid-period being credited $5 for unused time and charged $10 for the remainder, a net $5 invoice, with prorations calculated by the second and proration_behavior defaulting to create_prorations. Commission the amount charged, never the list price. Our normalizer ignores product changes today, so this is a gap we own.

Refunds and clawbacks. A refund moves money back to the customer and must reverse the commission. A cancellation does not, because the charge still stands. Detection is harder than the policy: RevenueCat sends no event named REFUND, and a refund arrives as a CANCELLATION carrying cancel_reason: CUSTOMER_SUPPORT. We shipped a mapping keyed on the event that does not exist, and every clawback silently never fired until September 2026. The clawback policy post has the account.

Net or gross. Pick one, publish it before the first payout, and never change it quietly. On the $9.99 plan at 20 percent: $2.00 gross, $1.40 net of a 30 percent cut, and round(849 × 2000 / 10000) = 170 cents net of the 15 percent Small Business Program rate.

Hold windows. A commission has to sit unpayable while a reversal can still land. Our rows carry maturesAt, written at calculation time as the event timestamp plus the app's hold period in days, defaulting to 14. Once cash reaches a creator, your remedies are netting or asking for it back.

#Do you need an affiliate program for subscription apps yet?

Probably not, if you have fewer than about five creators and under twenty paid conversions a month between them. A spreadsheet and a monthly transfer beat an integration at that size, and anyone who says otherwise is selling something. The threshold is not revenue. It is the first month you cannot reconstruct, from records, why a creator was paid what they were paid.

Work through these in order and stop at the first one that hurts.

  1. Count the creators you actually pay. Under five, close this tab. Two people and a shared sheet is the correct architecture.
  2. Count paid conversions per creator per month. Under twenty in total, hand reconciliation costs less than the integration.
  3. Time one monthly reconciliation, honestly. Past two hours, or past the point where you postpone it, the arithmetic has flipped.
  4. Check whether you pay on renewals at all. If a one-time bounty is your entire policy you need a payout list, not a ledger. Reread the first section before you keep it.
  5. Count the disputes. The first creator email asking why your number differs from their analytics is the real threshold, because the answer has to be reproducible.
  6. Add up refunds you paid commission on. If money has left twice on one charge, you need a hold period more than a dashboard.
  7. Decide recurrence length and the commission basis before the next deal. Both restate money creators have already counted.

Those numbers are our judgement from building the thing, not measured data, and we would rather say so than dress them up. It is why the free tier sits at 100 attributed installs a month with three affiliates: the spreadsheet stops working well before anyone wants to pay for software. Our pricing is a flat subscription rather than a share of your revenue, for reasons we wrote down separately.

#Where MyAppAffiliate fits

We are the third column, with the holes named. Live today: six SDKs (iOS, Android, React Native, Flutter, Web and Node) behind two calls, start and identify; webhook ingestion for RevenueCat, Adapty, Superwall, Stripe and Paddle, normalized into one event vocabulary so commissions behave identically whoever bills you; last-touch attribution on a 30 day window, inclusive of the boundary; commissions at amount_usd_cents × rate_bps / 10000 with the rate snapshotted; four commission states with a hold period; founder and creator dashboards; and idempotent CSV payout export.

Not shipped: automatic reversal of a commission on refund, which our attribution engine still documents as an MVP limitation; plan changes and prorations, which the normalizer ignores; automated Stripe Connect payouts, which sit on the pricing page as a Scale tier item and are planned, not built. App Store Server Notifications, Apphud and Lemon Squeezy are on the roadmap. The webhook reference lists exactly which events map to what.

What is an affiliate program for subscription apps?

A program that credits a creator for each charge a referred subscriber makes, rather than the first one alone. It needs an attribution record that survives the install, a commission row per billing event, a reversal path for refunds, and a hold period before money leaves.

Can a web affiliate platform track in-app purchases?

Only if you feed it. Those platforms read your web checkout, and an App Store or Play purchase never touches it. You would have to forward billing webhooks yourself, and the platform still has no event type for a renewal, a trial start or a store refund.

Is a mobile measurement partner enough to pay creators?

No, and it is not the product. An MMP answers which campaign drove installs, in aggregate. Apple states that conversion values and source app ids appear in postbacks only when privacy thresholds are met. Paying a named creator a percentage of a charge needs the opposite of that.

Do you pay commission on a free trial?

We do not. A trial start charges nothing, so there is no amount to take a percentage of. Our engine records it in the funnel and creates no commission. Paying a fixed bounty per trial is a defensible policy, but cap it and watch for trial abuse first.

How many creators before a spreadsheet stops working?

Our rule of thumb is five creators or twenty paid conversions a month, whichever comes first. The real signal is not size. It is the first month you cannot reconstruct from records why a creator was paid what they were paid, or the first refund you paid commission on twice.

#Write down what a renewal is worth before you sign the creator

Take the plan price your creators will promote, multiply it by the paid periods you are willing to credit, and put that number in the offer. It decides whether the program is a bounty scheme or a share of a business, and it is hard to change once a creator has forecast it. Then read the RevenueCat affiliate tracking guide for the wiring.