Get started
BlogAttribution

RevenueCat attribution: which link brought subscribers

The Unolink team5 min read
On this page
  1. Why RevenueCat doesn't know where subscribers came from
  2. Option 1: an attribution provider integration
  3. Option 2: Apple's ads attribution
  4. Option 3: your own links, joined to RevenueCat
  5. Set it up with Unolink
  6. What you can see
  7. Name links so the revenue reads well
  8. Gaps to know about
  9. Privacy and Apple's rules
  10. Which option to choose

RevenueCat knows exactly who subscribed, when, on which product, and how much they paid. What it doesn't know is why they installed in the first place: which video, creator, ad or newsletter brought them. That's the number you need when you decide where to spend next week.

This post explains why RevenueCat can't answer that on its own, the usual ways teams connect acquisition to subscriptions, and a lightweight setup for indie apps and small studios.

Why RevenueCat doesn't know where subscribers came from

RevenueCat sits inside your app, and only starts seeing someone once the app is open. Everything that happened before, the tap on a link, the store visit, the install, happened somewhere RevenueCat can't see. Its own documentation is direct about it:

So the source has to come from another tool and be joined to RevenueCat's purchases. There are three common ways.

Option 1: an attribution provider integration

RevenueCat integrates with attribution providers such as Adjust, AppsFlyer, Branch, Singular and Tenjin. The provider works out where the install came from, and revenue shows up next to each campaign in the provider's dashboard.

That's the right choice if you already pay for one of those tools for paid campaigns. It's a lot of tool, and a lot of budget, if all you want is to compare five videos and two creators.

Option 2: Apple's ads attribution

RevenueCat can collect Apple's attribution data for Apple's own ads, with the campaign, ad group and keyword, and lets you segment its charts by them. Useful if you run Apple's search ads. It covers those ads only, not your TikTok posts or a creator's video.

If most of your growth comes from links (posts, bios, creators, newsletters, QR codes, ads that send traffic to a website), you need three things:

  1. A link per source. Every post, creator and ad gets its own link that opens the right store.
  2. An SDK in your app that knows which link brought each install.
  3. A connection to RevenueCat, so every trial, purchase, renewal and refund lands on the link that brought that person, including the ones that happen while the app is closed.

That's the whole setup. No ad network accounts, no attribution contract, and you see revenue per post rather than per ad network.

Unolink does option 3, with RevenueCat built in. It needs the Pro plan ($19 a month) or up, for the SDK. Prices are on the pricing page; there's no sales call.

  1. Create your links. A smart link for the app, and a campaign link per post, creator or ad: go.unolink.dev/yourapp/creator-anna. Each opens the App Store on iPhone and Google Play on Android.
  2. Add the SDK for iOS, Android, React Native or Flutter. It's a small library that takes minutes to add, and it shows which link brought each install, without fingerprinting. See the SDK docs.
  3. Connect RevenueCat. The SDK connects to RevenueCat in one line, and you connect RevenueCat once from your app's settings in Unolink. Step by step: RevenueCat docs page.
  4. That's it. Trials, purchases, renewals and refunds arrive by themselves from then on, and nothing is counted twice.

What you can see

Once purchases flow in, every link has a full funnel: clicks, installs, onboarding, paywall, trial, paid and revenue.

Sample data
  1. Clicks2,400
  2. Installs610−75%(biggest drop)
  3. Started a trial140−77%
  4. Paid52−63%

Biggest drop: Installs

Sample data: one made-up creator link. Revenue sits next to these steps in the funnel.
  • Revenue per link, net of refunds. A refund subtracts its revenue.
  • Late payers count. Someone who taps a creator's link today and converts from a free trial next week still counts as a paying user from that link. People are grouped by install date, so last week's numbers can rise as trials convert.
  • When people pay. The Report shows the share of installs paying within a day, 7 days and 30 days, the median wait, and how many came back after a quiet week to pay, overall and per link.
  • Renewals as their own step. Renewed, cancelled, expired and billing issue can be added to any funnel.
  • Already subscribed. Someone who subscribed before this install (a new phone, a reinstall) still adds to revenue, but doesn't count as a new paying user for the link, because that link didn't make the sale.
  • Sandbox purchases stay out, like test devices, so your numbers show real customers only.

Revenue per link is only as useful as the link names. Three months from now, link7 means nothing.

  • Name the source and the variant: creator-anna, tiktok-oct-hook2, newsletter-launch, poster-gym-berlin.
  • One link per thing you'd decide about. If you'd stop paying a creator based on the numbers, the creator needs their own link. If you'd keep or drop a video hook, each hook needs one.
  • Don't reuse links across campaigns. A link used for two posts merges their revenue for good.
  • Keep the UTM tags ads add for you. Many ads append utm_source and utm_campaign themselves; they're kept with the click, so you can split one ad link by campaign later.

Gaps to know about

Be clear about the gaps, whatever tool you use:

  • App-install campaigns open the store directly and skip your link, so their subscribers can't be tied to it. Use the ad platform's own reporting for those.
  • Purchases on the web or on another device need the app to know who the customer is. The Payments and user IDs page covers guests, sign-ups and purchases made elsewhere.
  • Small numbers. A link with ten installs and one subscriber tells you little. Give it time and people before you decide.

Privacy and Apple's rules

Joining your own app's purchases to your own app's installs is first-party analytics. It isn't tracking in Apple's sense, which is about linking your data with other companies' apps or websites for advertising, and it needs no tracking prompt. Unolink doesn't fingerprint devices and never shares your users' IDs. More detail, including how to answer App Store Connect's privacy questions: Payments and user IDs.

Which option to choose

  • You buy ads across several networks and need them optimised for subscribers: an attribution provider, with its RevenueCat integration.
  • You run Apple's search ads: turn on RevenueCat's Apple ads integration; it's cheap to add alongside anything else.
  • You grow through posts, creators and a few website ads: your own links, an SDK and RevenueCat connected. It's the simplest, cheapest setup that tells you which link brought subscribers.

For the bigger picture of measuring without a mobile measurement partner, see Which ad brought each install?, and for the events between install and purchase, Onboarding and paywall funnels: what to track.

Share this article

Keep reading