I ran three ad campaigns last month. Google, TikTok, and a small Reddit push. Google showed the most clicks. TikTok had the best impressions. Reddit looked like a ghost town.
Reddit drove the most purchases.
If I'd been looking at impressions and clicks, I'd have killed the one campaign that was actually making money. That's the problem with surface metrics. They measure activity, not results.
Clicks are not customers
Every ad platform gives you a dashboard full of numbers. Impressions, reach, click-through rate, cost per click. It looks comprehensive. It feels like you're informed.
But none of those numbers answer the question that matters: did anyone actually buy something?
A click means someone tapped your ad. Maybe they were curious. Maybe it was an accident. Maybe they looked at your App Store listing for two seconds and left. The gap between "clicked an ad" and "paid for your product" is enormous, and most small developers never bridge it.
The attribution gap
Here's what typically happens. You run ads on two or three platforms. You watch your App Store Connect dashboard. Downloads go up. Maybe a few purchases come in. You feel good.
But which ad drove those purchases? Was it the Google campaign or the TikTok one? Was it that Reddit post you boosted? You genuinely can't tell. App Store Connect shows you total numbers. It doesn't show you where people came from.
Apple's own attribution is limited. You get some data from Apple Search Ads, but anything outside Apple's ecosystem is a black box. Google and TikTok will both happily claim credit for the same install.
What actually works
The fix is straightforward, even if it takes a bit of setup. You need to track the full chain: ad click → app install → purchase. Not just the first step.
Separate links for each campaign. Don't send all your ads to the same App Store URL. Create a tracked link for each ad, each platform, each campaign. When someone clicks that link and eventually buys something, you can trace it back.
Track purchases, not installs. Installs are nice. Purchases pay rent. Your attribution should connect a specific marketing link to a specific in-app purchase. If your tool can't do that, it's not telling you what you need to know.
Compare cost per purchase, not cost per click. Once you know which ads drive actual purchases, the maths is simple. If Google costs you £2 per purchase and TikTok costs you £8, that's a real comparison. Cost per click tells you nothing useful by itself.
A practical example
Say you're running three campaigns:
- Google App Campaign, budget £5/day
- TikTok carousel ads, budget £5/day
- Reddit promoted post in r/parenting, budget £3/day
You create a tracked link for each one. After two weeks, you check:
- Google: 340 clicks, 12 installs, 2 purchases. Cost per purchase: £35.
- TikTok: 1,200 impressions, 80 clicks, 8 installs, 1 purchase. Cost per purchase: £70.
- Reddit: 45 clicks, 6 installs, 3 purchases. Cost per purchase: £14.
Reddit wins by a mile. But if you'd only looked at clicks, you'd have thought Google was your best channel. And if you'd only looked at impressions, TikTok would have seemed like the obvious winner.
Without purchase attribution, you'd probably have cut Reddit first. The quietest channel was the most profitable.
The enterprise tools and why they don't fit
AppsFlyer, Adjust, Branch, Kochava. These tools all do attribution. They're also built for companies spending thousands a month on user acquisition. Their pricing reflects that.
If your app makes £500 a month, spending £200 on an attribution tool doesn't add up. You need something lighter.
How LinkOwl handles this
LinkOwl was built specifically for this situation. You create a tracked link for each ad campaign. When someone clicks that link, installs your app, and makes a purchase, the whole chain is recorded.
You pay 5p per attributed purchase. No monthly fee, no minimum spend, no annual contract. If nobody buys, you pay nothing.
It works with RevenueCat and Superwall out of the box, so if you're already using either of those for your paywall, the purchase tracking is automatic. You don't need to build anything custom.
The dashboard shows you exactly what you need: which links drove which purchases, and how much revenue each campaign generated. No impressions, no vanity metrics. Just money in, money out.
What to do right now
If you're running ads and you can't trace a purchase back to a specific campaign, you're guessing. Maybe you're guessing well. Probably you're not.
Start with your biggest ad spend. Create a tracked link for it. Run it for a week alongside your normal link. Compare the purchase data to what the ad platform tells you. You'll almost certainly find a gap between what they claim and what actually happened.
That gap is where your money goes to die. Close it.