ยท12 min readยทSam Wild

Mobile attribution explained: what it is, how it works, and how to pick a tool

A plain-language guide to mobile attribution for developers and marketers who've heard the term but never quite understood what's happening under the hood.

You're spending money on ads, sending links to influencers, posting on TikTok, and running an email list. People are downloading your app and some of them are paying for it. The question you can't answer: which of those activities caused the purchase?

That's what attribution solves. It connects the dots between a marketing touchpoint and a measurable outcome like a download, a sign-up, or a purchase.

If you've been building apps without attribution, you've been flying blind. Not in a dramatic way โ€” more in the "I think TikTok is working but I'm not actually sure" way. Most indie developers operate like this for months or years before they either figure out attribution or give up on marketing entirely.

This guide explains what mobile attribution actually is, how the technology works, what changed after Apple's privacy updates, and how to choose a tool that fits your budget.

What mobile attribution does

At its simplest, attribution answers one question: where did this user come from?

A user taps a link in someone's Instagram bio. They land in the App Store. They download your app. They open it. They eventually buy something. Attribution connects that purchase back to the Instagram link they tapped three days ago.

Without attribution, your analytics tell you that someone bought your app on Thursday. With attribution, you know they came from an Instagram post by a specific creator, clicked through on Monday, installed on Tuesday, and converted on Thursday.

That second version is obviously more useful. It tells you which creator is worth paying again. It tells you Instagram is outperforming your Reddit ads. It might tell you that users who come through organic social convert at twice the rate of paid users, which changes how you allocate your budget.

How it actually works (the technical bit)

There are a few different mechanisms, and they've changed a lot over the years. Here's what's actually happening when someone clicks a tracked link and installs your app.

Link clicks and device fingerprinting

When a user clicks a tracked link, the attribution service logs information about the click: the IP address, device type, operating system, browser, screen size, and timestamp. This creates a temporary fingerprint.

When the user later opens your app for the first time, the attribution SDK installed in your app sends similar device information to the attribution service. The service tries to match this "open" event to a recent click. If the fingerprint matches and the timing is right (usually within a 24-hour window), the install gets attributed to that click.

This method isn't perfect. Multiple people on the same WiFi network have the same IP address. Device fingerprints aren't unique. But for most indie apps with modest traffic, it works well enough. You're not trying to track millions of installs with surgical precision โ€” you're trying to figure out whether TikTok or Instagram is working better.

Apple's App Tracking Transparency

In 2021, Apple introduced ATT (App Tracking Transparency), which requires apps to ask permission before tracking users across other apps and websites. Most users say no. This broke the old model where attribution tools could use Apple's advertising identifier (IDFA) to match clicks to installs with near-perfect accuracy.

The IDFA was a unique identifier assigned to every iPhone. If a user clicked an ad and the ad network recorded their IDFA, and then the user opened your app and the SDK read the same IDFA, the match was guaranteed. Simple and reliable.

After ATT, most users opt out, so the IDFA is unavailable for roughly 75-85% of users. Attribution tools had to adapt. Some switched to probabilistic fingerprinting (the method described above). Some integrated with Apple's SKAdNetwork, which provides limited, aggregated, and delayed attribution data. Some built their own workarounds.

For indie developers, the practical effect is this: attribution is less precise than it was in 2019, but it still works well enough to be useful. You can still tell which channels drive purchases. The data just isn't as clean as it used to be.

SKAdNetwork (SKAN)

Apple's own attribution framework, SKAdNetwork, deserves a mention because you'll see it referenced everywhere. SKAN gives advertisers limited conversion data without revealing individual user identities. It works for paid advertising campaigns, has built-in delays (24-48 hours before data arrives), and only reports a single "conversion value" per install.

For paid ads on large networks (Meta, Google, TikTok), SKAN provides some signal. For organic marketing, influencer campaigns, and small-scale paid efforts, SKAN is mostly irrelevant. If you're running a ยฃ200/month Apple Search Ads campaign, SKAN won't give you much to work with.

Most indie developers don't need to worry about SKAN directly. Your attribution tool handles it behind the scenes if it's relevant to your setup.

Server-side attribution

A newer approach skips device-side tracking entirely. Instead of relying on an SDK to fingerprint the device, the attribution happens through your backend.

Here's how it works with purchase tracking: when a user makes a purchase, your payment processor (like RevenueCat or Stripe) sends a webhook to your attribution service. The attribution service matches the purchase to a tracked link click using whatever identifiers are available โ€” the link ID stored in the app, a user ID you passed through, or a device fingerprint from the original click.

Server-side attribution is more privacy-friendly and more reliable than client-side fingerprinting alone. It also means you don't need a heavy SDK in your app. Some tools use a lightweight SDK that just captures the initial link click, with everything else happening server-side.

Attribution models (which touchpoint gets credit?)

When a user interacts with multiple marketing touchpoints before purchasing, you need a rule for deciding which one "caused" the purchase. These rules are called attribution models.

Last-touch attribution

The last marketing touchpoint before the purchase gets all the credit. If a user saw your TikTok ad, clicked a Reddit link, and then searched your app name directly โ€” the Reddit click gets credit.

This is the most common model for indie apps and the default in most attribution tools. It's simple and usually good enough. The last thing someone clicked before installing is probably the thing that convinced them.

First-touch attribution

The first marketing touchpoint gets credit. In the example above, the TikTok ad would get credit because it was the user's first interaction with your brand.

First-touch is useful if you want to understand which channels bring in new users. It tells you where people discover you, even if they convert through a different channel later.

Multi-touch attribution

Credit is split across multiple touchpoints. There are several variations โ€” linear (everyone gets equal credit), time-decay (recent touchpoints get more), and data-driven (a model figures out weights based on your data).

Multi-touch sounds appealing but it requires significant traffic volume to produce meaningful insights. If you're getting 50 installs a day, multi-touch attribution will just confuse things. Last-touch or first-touch will tell you what you need to know.

For most indie developers: use last-touch. Switch to first-touch when you specifically want to understand which channels bring in people who've never heard of you. Ignore multi-touch until you're at scale.

What you actually need to track

Attribution tools can track a lot of things. Here's what matters for most small app developers:

Installs by source. Which channel or campaign drove the download? This is the baseline metric. If you can't see this, your attribution isn't working.

Purchases by source. Downloads are nice but purchases pay rent. The whole point of attribution is connecting revenue to marketing spend, so purchase tracking is essential.

Cost per acquisition. If you know how much you spent on a channel and how many purchases came from it, you can calculate your real CPA. A TikTok campaign that costs ยฃ50 and drives 10 purchases (at ยฃ2.49 each) gives you ยฃ24.90 in revenue โ€” you're losing money. That's a useful thing to know before you spend more.

Conversion rate by source. What percentage of installs from each channel turn into paying users? A channel that sends 1,000 installs but only 5 purchases is performing very differently from one that sends 100 installs and 15 purchases. The second channel is 30x more efficient.

Everything else โ€” retention cohorts, in-app event tracking, funnel analysis โ€” is nice to have but secondary. Get the four metrics above working first.

How to choose an attribution tool

The market has tools at every price point, from free options to enterprise platforms costing tens of thousands per month. Here's how to think about it.

Enterprise tools (AppsFlyer, Adjust, Branch, Kochava)

These are the big names. They're designed for apps spending serious money on paid advertising across multiple networks. They offer SDK integrations with dozens of ad networks, advanced fraud detection, multi-touch attribution, audience segmentation, and dedicated support teams.

Pricing typically starts at a few hundred dollars a month and scales with volume. Some charge per install tracked. Adjust starts around $500/month. AppsFlyer has a free tier but the useful features require their paid plans.

If you're spending less than ยฃ1,000/month on marketing, these tools are overkill. You'll pay more for attribution than you spend on the campaigns you're trying to measure.

Mid-range tools (Singular, Tenjin)

These sit between enterprise and indie. They offer similar features to the big players at lower price points, often with more self-serve setup. Still probably too much for a solo developer running a side project, but reasonable for a small studio with a few apps and a real marketing budget.

Lightweight tools (LinkOwl, Linkrunner)

Newer tools designed specifically for indie developers and small brands. They focus on the core attribution flow โ€” tracked links, install matching, purchase tracking โ€” without the enterprise complexity.

LinkOwl charges per attributed purchase (5p per sale) with no monthly fee. You only pay when your marketing actually drives revenue. Linkrunner charges per install at a lower per-unit price but charges regardless of whether those installs convert.

These tools work well if your primary question is "which links are driving my purchases?" rather than "build me a multi-touch attribution model across 15 ad networks."

DIY attribution

Some developers build their own. You create unique URLs for each campaign, track clicks on your server, match them to installs via a lightweight SDK or deep link handler, and connect purchases through your payment backend.

This works in theory but requires ongoing maintenance. Every iOS update might break something. Edge cases multiply. You'll spend time debugging attribution logic instead of building your app.

If you enjoy systems programming and have the time, DIY attribution teaches you a lot. If you want to focus on your app, use a tool.

Setting up attribution (the practical steps)

Regardless of which tool you use, the setup follows a similar pattern:

1. Install the SDK or tracking snippet. Most tools have an SDK you add to your app. Lightweight tools might just need a single initialisation call. Enterprise tools often require more configuration โ€” setting up event tracking, defining conversion events, configuring postback URLs for ad networks.

2. Create tracked links. For every marketing channel, campaign, or influencer, create a unique tracked link through your attribution dashboard. The link points to your App Store listing but routes through the attribution service first, so the click gets logged.

3. Connect your purchase data. The most useful attribution connects marketing touchpoints to revenue, not just installs. If you use RevenueCat, Stripe, or Superwall, connect their webhooks to your attribution tool. This way, when a purchase happens, the attribution service can match it to the tracked link that started the journey.

4. Use the tracked links everywhere. Replace your raw App Store links with tracked links in your social bios, ad campaigns, influencer briefs, email newsletters, and QR codes. Any link that isn't tracked is a blind spot.

5. Wait for data. Attribution needs volume before the numbers mean anything. After a week or two of consistent link usage, you'll start seeing patterns โ€” which channels send traffic, which channels send buyers, and where your money is wasted.

Common mistakes

Mixing tracked and untracked links. If half your Instagram posts use tracked links and half use your raw App Store URL, your attribution data will undercount Instagram's contribution. Be consistent.

Checking data too early. Three installs from TikTok and zero from Reddit doesn't mean TikTok is better. Wait until you have enough volume for the numbers to mean something. How much volume depends on your app, but generally 50+ installs per channel before drawing conclusions.

Ignoring organic. Most attribution tools focus on tracking linked sources. But a chunk of your installs will always be organic โ€” people searching the App Store, word of mouth, press coverage. Don't assume that because attribution can't track organic, organic doesn't matter. Check your App Store Connect analytics alongside your attribution data.

Over-engineering. You don't need multi-touch attribution, custom event funnels, and cohort analysis when you're getting 10 installs a day. Start with basic last-touch attribution on your top 3-4 channels. Add complexity when your volume justifies it.

The bottom line

Mobile attribution tells you which marketing activities are generating revenue. Without it, you're guessing. With it, you can make informed decisions about where to spend your time and money.

The technology has gotten more complex since Apple's privacy changes, but the core concept is the same: track the link, match the install, connect the purchase. Pick a tool that matches your scale and budget, set it up properly, use tracked links everywhere, and let the data guide your marketing decisions.

If you're an indie developer or small brand, you don't need an enterprise attribution platform. A lightweight tool that tracks links to purchases will tell you 90% of what you need to know. The other 10% is interesting but won't change your decisions at this stage.

Start simple. Track everything. Spend money where the numbers say it works.

Track your marketing links with LinkOwl

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

Start tracking free โ†’