ยท8 min readยทSam Wild

How to attribute app purchases to social media posts

You posted a reel, a TikTok, a tweet. Downloads went up. But did that specific post cause the purchase? Here's how to trace sales back to individual social media posts.

You check your RevenueCat dashboard on a Monday morning and see five new purchases over the weekend. Nice. You also posted an Instagram reel on Friday, two TikToks on Saturday, and a tweet on Sunday. Which of those posts did the work?

Without attribution, you'll never know. You'll assume it was the TikTok because TikTok "feels" like it's working. Or you'll credit Instagram because a friend said they saw your post. This is how most indie developers run their marketing โ€” on vibes and hunches.

The fix is boring and mechanical: give every post its own tracked link, connect your purchase data, and let the numbers tell you what happened.

Why post-level tracking matters

Channel-level attribution tells you that TikTok drives more purchases than Instagram. That's useful. But post-level attribution tells you something much more specific: which type of content on TikTok actually converts.

Maybe your product demos get views but your "day in the life" posts drive purchases. Maybe carousels outperform single images. Maybe posts published at 8pm convert better than ones published at noon. You can't learn any of this without tracking at the individual post level.

The difference between a creator who grows and one who stays flat is usually this: the one who grows figured out which content formats actually produce revenue, and doubled down. Everyone else keeps guessing.

The mechanics

Here's the actual workflow. It takes about two minutes per post once you've done the initial setup.

1. Create a tracked link for each post.

Before you publish anything, generate a unique tracked link in your attribution tool. Name it something you'll recognise later โ€” "tiktok-product-demo-march15" is better than "link-47."

The link redirects to your App Store listing, but records the click first. That click record is what allows you to match a later purchase back to this specific post.

2. Use that link in the post.

On TikTok, it goes in your bio (swap it before posting and point your video there). On Instagram, same deal with the bio link, or use it in a story swipe-up. On Twitter/X, drop it directly in the tweet. On YouTube, put it in the video description.

The friction here is real: platforms like TikTok and Instagram don't let you put clickable links in post captions. You're stuck routing through the bio. This means you need to update your bio link for each post, or use a link-in-bio page with tracked links for each piece of content.

3. Connect purchase data.

Your attribution tool needs to know when a purchase happens, not just when a click happens. If you're using RevenueCat, this means setting up a webhook that fires on every purchase event. The webhook sends the purchase details to your attribution tool, which matches it against recent clicks.

This step is usually a one-time setup. Once the webhook is connected, every future purchase gets automatically matched to whatever link the user originally clicked.

4. Wait and read.

Give it a week. Then check which links generated clicks, which generated installs, and which generated actual purchases. The drop-off between each stage tells you different things:

  • High clicks, low installs: the App Store listing needs work, or the audience isn't right
  • High installs, low purchases: the app itself isn't converting free users, or the paywall needs adjusting
  • High everything: that post format works, make more like it

Platform-specific realities

Each social platform has its own quirks around link placement. Knowing these saves you from wasting effort.

TikTok is the most annoying. No clickable links in captions. Your bio link is the only option for most creators. Some people work around this by changing their bio link before each post and saying "link in bio" in the video. It's clunky, but it works. The alternative is using a link-in-bio service and having one tracked link per content theme rather than per post.

Instagram is similar. Bio link only, unless you have the swipe-up feature in stories (requires 10k+ followers or a business account). For reels and feed posts, you're routing through bio. Carousels can include a slide that says "link in bio" which pushes people there.

Twitter/X lets you put links directly in tweets. This is the easiest platform for per-post tracking because every tweet can contain its own unique link. The downside is that tweets with links sometimes get lower algorithmic reach, so some people put the link in a reply instead.

YouTube is straightforward. Link goes in the video description. You can also use pinned comments. Viewers who are interested enough to click a description link tend to be higher-intent, so YouTube attribution often shows strong conversion rates even with lower click volumes.

Reddit allows links in posts and comments. Be careful here โ€” overt self-promotion gets downvoted or removed. But if you're genuinely contributing to a relevant subreddit and include a link naturally, the traffic tends to convert well because Redditors are usually researching before they buy.

What the data actually looks like

After a month of post-level tracking, you'll have a table that looks roughly like this:

Post: TikTok product demo (March 3) โ€” 340 clicks, 45 installs, 6 purchases Post: TikTok meme (March 5) โ€” 1,200 clicks, 12 installs, 0 purchases Post: Instagram carousel (March 8) โ€” 89 clicks, 22 installs, 4 purchases Post: Tweet thread (March 10) โ€” 56 clicks, 14 installs, 3 purchases Post: TikTok tutorial (March 12) โ€” 580 clicks, 67 installs, 8 purchases

The meme got the most clicks by far. It also drove zero purchases. If you were optimising for views, you'd make more memes. If you're optimising for revenue, you'd make more tutorials and product demos.

This is the kind of insight that only comes from tracking at the post level. Channel-level data would just tell you "TikTok drives the most traffic" which would lead you to make more of everything on TikTok โ€” including the memes that generate vanity metrics and nothing else.

Handling the bio link problem

The biggest practical obstacle is platforms that force you to route through a bio link. Changing your bio link before every post is tedious and error-prone. Here are three approaches that work:

Rotate per post. Update your bio link before publishing, mention "link in bio" in the post, wait 48 hours, then update it again for the next post. Simple but manual. Works fine if you're posting a few times a week.

Use a link-in-bio page. Services like Linktree let you list multiple links. Create a tracked link for each content category (demos, tutorials, testimonials) and keep them all on your bio page. Less granular than per-post, but much less maintenance.

Track by time window. If you can't use unique links per post, you can approximate by looking at click timestamps relative to post publish times. If a tracked link got 200 clicks in the hour after you published a specific post, those clicks probably came from that post. It's imprecise, but better than nothing.

Commission tracking for influencer posts

If you're paying creators to post about your app, post-level attribution becomes a financial tool, not just an analytical one.

Give each creator a unique link. When they publish, their followers click that specific link. Purchases get attributed to that link. At the end of the month, you can see exactly how many sales each creator generated.

This makes commission-based deals clean and fair. Instead of negotiating flat fees based on follower counts (which correlate poorly with actual sales), you pay a percentage of revenue from attributed purchases. The creator with 8,000 engaged followers who drives 20 sales earns more than the one with 200,000 passive followers who drives 2.

Both parties can see the same data. No arguments about whether the promotion "worked" โ€” the numbers are right there.

Getting started

If you're not tracking post-level attribution right now, here's the minimum viable version:

  1. Pick an attribution tool that supports tracked links and purchase webhooks. LinkOwl does this at 5p per attributed sale with no monthly fee. There are other options too.
  2. Connect your purchase data (RevenueCat webhook takes about five minutes).
  3. Create three tracked links: one for TikTok, one for Instagram, one for whatever your third channel is.
  4. Use those links for the next two weeks of posts.
  5. Check the data. See what you learn.

Once you see which channels convert, get more granular. Start creating links per content type, then per individual post. The whole system scales naturally โ€” you're just adding links and checking results.

The goal isn't perfect attribution for every post you've ever published. It's knowing enough about what works to stop wasting effort on what doesn't. After a month of tracked links, you'll have a clearer picture of your marketing than most apps get in a year of guessing.

Track your marketing links with LinkOwl

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

Start tracking free โ†’