·8 min read·Sam Wild

Attribution for subscription app developers

Subscription apps need to know which channels drive subscribers, not just downloads. Here's how to track it properly.

You built a subscription app. People are subscribing. But when someone asks you where your subscribers come from, you point at your App Store Connect dashboard and shrug.

Downloads tell you almost nothing useful for a subscription business. Someone can download your app from a TikTok link, never open it, and you've learned nothing. Or they can download it organically, subscribe on day one, and you'll never know that a Reddit post three weeks ago planted the seed.

Subscription apps have a specific attribution problem that one-time purchase apps don't share: the money arrives later, sometimes much later, and it keeps arriving. Knowing the source of a subscriber isn't a nice-to-have. It's the difference between scaling the right channel and burning money on the wrong one.

Why downloads are the wrong metric

If your app costs £4.99 one-time, tracking downloads at least gets you in the ballpark. More downloads from TikTok probably means more revenue from TikTok.

Subscriptions break that logic. A channel that sends 500 downloads with a 2% trial-to-paid conversion is worth less than one that sends 50 downloads with a 40% conversion rate. The second channel brought you 20 paying subscribers. The first brought you 10.

Most indie developers running subscription apps optimise for downloads because that's what the App Store shows them. They post on every platform, see which one spikes their install numbers, and double down there. Then they wonder why subscriber growth doesn't follow the same curve.

The gap between "installed your app" and "pays you monthly" is where attribution matters most. And it's exactly the gap that most tracking setups ignore.

The trial problem

Free trials make attribution harder. Someone clicks your Instagram bio link on Monday. They start a 7-day trial on Tuesday. They convert to paid the following Tuesday. By then, the attribution window on most tools has closed or gotten muddled with other touchpoints.

If you're using discount codes for attribution, trials cause a different headache. The user enters the code at the start of the trial, not when they convert. If they cancel during the trial, you've counted an attribution that never generated revenue.

What you actually want to know is: which marketing channel produced a subscriber who stuck around? That means your attribution needs to survive the trial period and only count when real money changes hands.

What RevenueCat knows and doesn't know

If you're using RevenueCat (and most indie subscription apps are), you've got solid data on who subscribed, when they converted, what plan they picked, and whether they renewed.

What RevenueCat can't tell you on its own is why they showed up. It doesn't know whether a subscriber found you through a Google search, a YouTube review, or your own newsletter. That context lives outside RevenueCat's scope.

This is where webhook-based attribution fills in. When RevenueCat fires a webhook on a new purchase or renewal, an attribution service can match that event back to the tracked link the user originally clicked. The result: you see "this subscriber came from your TikTok campaign in January, and they've now renewed twice."

RevenueCat's webhook sends you the transaction type, the product, the price, and a user identifier. If your attribution tool stored the original click data against that same identifier, you can connect the dots without any manual work.

Setting up attribution for subscriptions

The basic flow works like this:

  1. Create a tracked link for each marketing channel or campaign (one for TikTok, one for your newsletter, one for each influencer)
  2. When a user clicks that link, a small identifier gets passed through to your app
  3. Your app stores that identifier alongside the user's RevenueCat ID
  4. When RevenueCat sends a webhook for a purchase or renewal, the attribution service matches it back to the original click

The key part: this chain survives the App Store redirect. The user clicks your tracked link, gets redirected to the App Store, installs your app, opens it, and the attribution identifier is still there. No cookies involved, no fingerprinting needed.

For subscription apps specifically, you want the webhook to fire on renewals too, not just initial purchases. A subscriber who came from your newsletter and renewed for 12 months straight is worth knowing about. That tells you the newsletter isn't just driving trials — it's driving retention.

What to track beyond the first purchase

One-time purchase attribution is straightforward. Someone bought, you trace it back, done.

Subscription attribution should answer harder questions:

Which channels produce subscribers who actually stay? A TikTok campaign might drive lots of trial starts but if 90% cancel after the free period, the channel looks good on the surface and terrible underneath. Compare trial-to-paid rates across sources.

Which channels produce higher-value subscribers? If your app has multiple tiers, you want to know whether Instagram drives more premium subscribers than Reddit. Even with the same conversion rate, a channel that skews toward your higher tier is worth more per subscriber.

What's the payback period per channel? If you spent £200 on a YouTube sponsorship and the subscribers it brought in generate £15/month in total, you need about 14 months to break even. Compare that to an organic Reddit post that cost nothing and brought in £8/month. The Reddit post is already profitable.

These questions are impossible to answer if you only track the initial download source. You need attribution data tied to ongoing subscription events.

A practical example

Say you're running a meditation app with a £5.99/month subscription and a 7-day free trial.

You create three tracked links:

  • One for your TikTok bio
  • One for a wellness newsletter sponsorship
  • One for an influencer on Instagram

After a month, here's what your attribution data might show:

The TikTok link got 340 clicks, 89 installs, 41 trial starts, and 12 paid conversions. Cost per subscriber: free (organic post).

The newsletter got 180 clicks, 62 installs, 38 trial starts, and 28 paid conversions. Cost: £150 for the sponsorship. Cost per subscriber: £5.36.

The influencer got 520 clicks, 201 installs, 95 trial starts, and 18 paid conversions. Cost: £300. Cost per subscriber: £16.67.

Without attribution, you'd look at installs and think the influencer won. With attribution tied to actual subscriptions, the newsletter is your best channel by a wide margin. Higher conversion rate, lower cost per subscriber, and you can run it again next month.

Renewal tracking changes everything

Here's where subscription attribution gets properly useful. Three months later, you check renewal data:

  • TikTok subscribers: 8 of 12 still active (67% retention)
  • Newsletter subscribers: 24 of 28 still active (86% retention)
  • Influencer subscribers: 7 of 18 still active (39% retention)

The influencer brought in curious browsers. The newsletter brought in people who actually wanted a meditation habit. That 86% retention rate means the newsletter subscribers are generating roughly £124/month in recurring revenue from a single £150 placement.

The influencer's subscribers are generating about £42/month and dropping. That £300 sponsorship is looking less clever by the week.

You'd never see this without attribution that tracks beyond the first transaction.

Getting started

If you're building a subscription app and want proper attribution, the minimum viable setup is:

  1. Pick an attribution tool that integrates with your payment provider. If you use RevenueCat, make sure it supports RevenueCat webhooks specifically — that's where your subscription events live.

  2. Create tracked links per channel. One link per marketing source. Keep them organised because you'll accumulate them quickly.

  3. Add the attribution SDK to your app. Most lightweight SDKs just capture the click identifier on first open and associate it with the user. A few lines of code.

  4. Wire up webhooks so subscription events (new purchases, renewals, cancellations) flow back to the attribution tool with the user's ID attached.

  5. Wait. Subscription data takes time to become meaningful. After 30 days you'll have conversion data. After 90 days you'll have retention data. That's when the real insights show up.

LinkOwl does this for 5p per attributed purchase. No monthly fee. RevenueCat webhook integration is built in, so subscription events get matched back to the original tracked link automatically. Renewals are tracked too, so you can compare retention across channels over time.

The longer game

Once you have three months of attributed subscription data, you can start making confident decisions. Double down on the channels with high conversion and retention. Cut the ones that send tyre-kickers. Run the numbers before every sponsorship deal.

Most subscription app developers fly blind on channel quality for months or years. The ones who track it properly tend to spend less on marketing and grow faster, because they stop watering dead plants and focus on what's actually growing.

Your subscribers are telling you where they came from. You just need to listen.

Track your marketing links with LinkOwl

5p per sale, no subscription. Know exactly which post, influencer, or campaign drove each purchase.

Start tracking free →

Related articles

← Back to all articles