Get started
BlogAttribution

Which ad brought each install? Tracking without an MMP

The Unolink team6 min read
On this page
  1. What an MMP does
  2. Free tools you already have
  3. A setup for a small team
  4. Doing it with Unolink
  5. Follow each link past the install
  6. When you do need an MMP

You ran a couple of ads, posted a few videos, and a creator mentioned your app. Installs went up. Now you want to put more money and time into whatever worked, and you don't know which one it was.

The industry answer is a mobile measurement partner (MMP): AppsFlyer, Branch, Adjust, Singular, Tenjin and others. For a big paid acquisition budget, that's the right answer. For an indie developer or a small studio, it's often more tool, more setup and more cost than the question needs. This post shows what the free tools you already have can tell you, where they stop, and a simple setup that answers "which link brought installs, and which brought paying users" without an MMP.

What an MMP does

It helps to know what you'd be skipping.

If you spend real money across several ad networks and need them to optimise for purchases, jobs 1 and 2 are hard to do without an MMP. If most of your growth comes from posts, creators, a newsletter, a website and a few ads, you need something simpler, priced for a small team: one link per thing, and what happened after each link.

Free tools you already have

Before adding anything, use what the stores and ad platforms give you.

Free tools you already have, in short. Details below.
FeatureWhat it showsLimitsSource
App Store Connect campaign linksImpressions, product page views, downloads, sales and more, per campaignAggregated, iPhone only; data from five people per campaign, at least 24 hours after launchdeveloper.apple.com
Play Console acquisition reportsStore listing visitors and acquisitions by UTM source and campaignAggregated, Android onlysupport.google.com
The ad platforms' own numbersInstalls from their own adsEach grades its own homework; totals rarely add up to your real install count
Free tools you already have, in short. Details below.

Apple has built-in campaign tracking for App Store links. You tag a link with a campaign name, and App Store Connect shows impressions, product page views, downloads, sales and more for that campaign.

The limits, from Apple's documentation:

  • A download counts for a campaign only if it's a first-time download within 24 hours of using the link.
  • Data appears once a campaign has first-time downloads from at least five people.
  • Campaigns show up at least 24 hours after launch.

You see totals per campaign, not individual installs, and only for iPhone.

Google Play Console acquisition reports

Google Play's acquisition reports can break store listing visitors and acquisitions down by UTM source and campaign (Play Console Help). Again totals only, again one platform.

The ad platforms' own numbers

Every ad platform reports installs for its own ads. Useful, but each one grades its own homework, and their totals rarely add up to your real install count.

What's missing

Put together, these tell you roughly how many installs each campaign brought on each store. They don't tell you:

  • What those people did next. Did the TikTok installs finish onboarding? Did the creator's audience pay?
  • Anything per person, such as how long people from one link take to subscribe.
  • One view across both platforms.

Those questions decide where your next week of effort goes, and they need the app to report back.

A setup for a small team

You can answer all three with three pieces: a link per channel, a small SDK in the app, and your purchases joined in.

  1. Give every post, creator and ad its own link. Each one opens the right store for the device, so you can paste the same link anywhere. Name them so you'll recognise them in three months: creator-anna, tiktok-oct-hook2, meta-traffic-1.
  2. Use links where links work. Bios, pinned comments, descriptions, newsletters, QR codes, and ads that send traffic to a website. App-install campaigns (buttons like Install now) open the store directly and skip your link, so for those, rely on the ad platform's own reporting.
  3. Have the app report the moments that matter: onboarding finished, paywall shown, trial started, purchase.
  4. Bring in purchases. If you use RevenueCat, trials, purchases, renewals and refunds can arrive by themselves, including those that happen while the app is closed.
  5. Read it per link, as a funnel: clicks, installs, finished onboarding, saw the paywall, paid, revenue.

Unolink is built for exactly this setup, at a price that's on the pricing page: free to start, then $6, $19 or $49 a month. No sales call, no per-install fee.

  • Links, on every plan: a smart link per app that opens the App Store on iPhone, Google Play on Android and the desktop store or your website on a computer, and a campaign link per post, creator or ad. Clicks by country, platform, referrer and UTM tag. The Free plan has three campaign links; Indie and up have many more.
  • The SDK, on Pro and up: a small library for iOS, Android, React Native and Flutter that takes minutes to add. It shows which link brought each install, on iPhone and Android, without fingerprinting and without a tracking prompt.
  • Funnel, Journeys and Report: your funnel per link, every install's path from click to purchase, and findings worked out with fixed rules, such as which link is leaking and when people pay.
  • RevenueCat built in: connect it once and purchases arrive by themselves. See RevenueCat attribution.
  • App Store Connect too: turn on Apple's campaign tags for the app in Unolink, and App Store Connect's own numbers line up with your links.

Setup steps are in the SDK docs. For ads specifically, see Links in ads.

With every link reporting a funnel, compare them the way you'd compare ads:

Sample data
  1. Clicks900
  2. Installs80−91%(biggest drop)
  3. Finished onboarding52−35%
  4. Paid8−85%

Biggest drop: Installs

Sample data: a made-up creator link with 80 installs and 10% paying.
  • Rates, not totals. A creator who brought 80 installs with 10% paying beats one who brought 300 with 1%.
  • Give late payers time. Free trials convert days later. Unolink counts a payment for the link the person came from however late it arrives, so last week's numbers can still go up. See Payments and user IDs.
  • Wait for enough people. Ten installs prove nothing. The Report says it's too early until a link has enough data to compare.
  • Keep links separate. Reusing one link for two posts merges their numbers for good.

When you do need an MMP

Be honest with yourself about this list. An MMP is the better choice if:

  • You spend across several ad networks, and they need conversions sent back to optimise.
  • You rely on app-install campaigns, which links can't see.
  • You need fraud protection for paid traffic.
  • You need SKAdNetwork or AdAttributionKit reports decoded and modelled.

Unolink does none of those. If that's you, our comparisons with Branch and AppsFlyer lay out what each offers.

Share this article

Keep reading