planpo.st
FeaturesFor AI agentsRevenue trackingPlatformsPricingBlogSupport
Sign inStart free trial →
planpo.st

Social scheduling with revenue built in. One platform for creators and businesses who treat social as a growth engine.

Planpo.st on Nick Launches

Product

SchedulerFor creatorsFor agenciesCompare toolsAlternativesPricing

Channels

InstagramLinkedInX (Twitter)ThreadsFacebookYouTubeTikTokAll channels →

AI agents

MCP serverFor AI agentsClaude CodeCursorChatGPTGemini CLIAll agents →

Revenue

Revenue trackingRevenue attributionStripeShopifyRevenueCatAll integrations →

Resources

DocsMCP toolsAPI referenceBlogAboutSupportContactPrivacyTerms

Compare planpo.st

  • planpo.st vs Postiz
  • planpo.st vs Buffer
  • planpo.st vs Hootsuite
  • planpo.st vs Later
  • planpo.st vs Sprout Social
  • planpo.st vs SocialBee
  • planpo.st vs Planable
  • planpo.st vs Metricool
  • planpo.st vs Loomly
  • planpo.st vs Publer
  • planpo.st vs Post Bridge
  • planpo.st vs Mixpost
  • planpo.st vs Blotato
  • planpo.st vs Typefully
  • planpo.st vs RecurPost
  • planpo.st vs Post Planner
  • All comparisons →
  • Alternatives →
© 2026 planpo.st · all rights reservedstatus: ● all systems normal
Back to blog
revenue trackingattributioninstagram

How to Track Sales from Instagram

Instagram is the platform where tracked links break down, because feed captions are not clickable. Here are the surfaces that do carry a link, the three ways to work around the ones that do not, and what the numbers can honestly tell you.

Lukasz BlachuraLukasz Blachura
·
Aug 28, 20268 min read
Share
How to Track Sales from Instagram

Tracking sales from LinkedIn or X is mostly a solved problem. You put a tracked link in the post, someone clicks it, and if they buy, you know which post did it.

Instagram breaks that in the first step. You cannot put a clickable link in a feed caption, and feed posts and Reels are where most people do most of their posting. So the question "which Instagram post made this sale" is genuinely harder than the same question anywhere else, and most of the advice about it quietly skips the hard part.

This is what actually works, what it costs you in accuracy, and what the number at the end really means.

Where Instagram lets you put a link

Start with an honest inventory, because every method below is built on it:

Bio, up to 5 links

Clickable. Since 2023 you can hold five. Only the first shows as itself, the rest collapse into 'and 4 other links'.

Story link sticker

Clickable, on every account. The old 10,000 follower requirement is long gone.

Feed captions

Not clickable. Text only. This is the whole problem.

Reels captions

Not clickable either, same as feed.

DMs and broadcast channels

Clickable, but you are sending them one at a time.

Shopping tags

Clickable, if you run a product catalogue and sell physical goods.

There is one moving piece worth knowing about. Meta has been testing clickable links inside post captions for Meta Verified subscribers, reportedly capped at circa 10 a month and working on mobile only, with the same link showing as plain text on desktop. I have not had it on my own account, and the reports are secondary rather than from Meta's own newsroom, so I would plan as though captions are not clickable and treat it as a bonus if it lands.

The three ways people solve the feed problem

Every approach is a trade between accuracy and effort. Pick by how much posting you do.

01Rotate one tracked bio linkChange the bio link per campaign. Cheapest to run, and you can only attribute to a campaign and a date range, not to a post.
02A link-in-bio page with tracked destinationsOne page, several tracked links on it. Each post says which one to tap. You get per-destination numbers.
03Promo codes as the identifierNo link involved. The code is the tracking. Works when the buyer types it at checkout, and only then.

The second one is what most people should run. The first is fine if you post about one thing at a time. The third is a fallback that also happens to be the only method that survives someone screenshotting your post and buying three weeks later.

Rotating the bio link

You put one tracked link in the bio and change it when the campaign changes. Everything published during that window shares the credit.

Honest about what you get: a campaign-level number, not a post-level one. If you posted nine times in that window, you know the nine of them produced $340, and you do not know which of the nine did the work. That is still infinitely better than nothing, and it takes about a minute a week.

A link-in-bio page with tracked destinations

You point the bio at one page you control, put several tracked links on it, and each post tells people which one to look for. "New guide, top link in bio."

Now the numbers separate. The guide link and the product link have their own click counts and their own attributed revenue, so you can see that the guide post drove traffic and the product post drove money, which is a distinction worth having.

The cost is discipline. If your captions do not tell people which link to tap, they tap the first one, and you are back to a campaign-level number with extra steps.

Promo codes

Give a code per post, or per format, or per campaign. REELS10 on Reels, STORY10 in Stories. When someone uses it, the code tells you where they came from without any link at all.

This is the only method on the list that catches the person who saw your Reel on Tuesday, thought about it for a fortnight, and then went to your site directly. It is also the method most likely to be used by someone who found the code on a coupon site, so read it as directional.

Wiring any of this to actual money

A tracked link that only counts clicks tells you Instagram sent 200 people. It does not tell you whether any of them paid. Closing that gap needs the click and the payment to meet:

01TapSomeone taps a tracked link in your bio or a Story sticker.
02Click recordedThe redirect logs the click against the post or destination it belongs to.
03PurchaseThey buy, minutes or weeks later.
04Payment webhookStripe, Shopify or RevenueCat reports the payment as it happens.
05MatchThe payment is matched back to the click, and the post it came from.

I wrote the concrete version of this wiring, with the actual Stripe and Shopify setup, in connecting posts to revenue. If you want the naming conventions for the links themselves, that is how to use UTM links.

What Instagram's own numbers give you

Instagram Insights will show you reach, impressions, profile visits, and taps on your bio link. Those are real and useful, and you should look at them.

What they will not do is connect any of it to a payment, because Instagram does not know your Stripe account exists. Profile visits are the last thing Instagram can see. Everything after that happens on your site, which means the join has to happen on your side or not at all.

The practical read: use Insights for what happened on Instagram, use your payment data for what happened after, and accept that the handoff between them is where the loss lives.

The part nobody wants to say out loud

Instagram attribution is a floor, not a total

Some buyers will see a Reel, remember your brand, and type your domain in three weeks later with no link involved. Nothing you install will catch that. Every Instagram revenue number you produce is lower than the truth, and the sensible response is to treat it as a floor you can compare against other floors rather than a figure you defend to two decimal places.

It leaks in four places worth knowing about. The first is the browser handoff: someone taps your link, has a look inside Instagram's built-in browser, then reopens the site properly on a laptop later to actually buy. Depending on the setup, that arrives as two unrelated sessions.

The second is the screenshot. People screenshot the product rather than saving the link, and that sale looks like direct traffic forever after.

The third is sharing. Your post gets forwarded in a DM, the friend buys, and the credit lands wherever their click happened to come from, which might be nowhere.

The fourth is the window itself. Last-click matching over 30 days catches most considered purchases and misses the slow ones, so a month is a reasonable default rather than a fact about buyers.

None of this is an argument for skipping the tracking. It is an argument for reading the output as "Instagram produced at least this much" and then comparing it month over month, where the undercount is roughly constant and the trend is real.

A ten-minute weekly routine

  1. Open last week's posts and check which ones told people to tap something. The ones that did not are not being measured, and that is a content problem rather than a tracking problem.
  2. Look at clicks per destination, not per post, unless you are running per-post links.
  3. Look at attributed revenue next to those clicks. A destination with clicks and no revenue is a landing page problem.
  4. Note anything that sold without a click. That is your promo code data and your direct traffic, and it belongs in the same review.

Four questions, once a week. If it takes longer than ten minutes, you are measuring more than you will act on.

What I would do first

If you are starting from nothing, do this in order and stop when it hurts:

  1. Put one tracked link in the bio. Today. Even untargeted, it converts "Instagram probably works" into a number.
  2. Connect your payment provider so clicks can meet payments.
  3. Add a link-in-bio page with two or three tracked destinations, once one link stops being enough.
  4. Add promo codes for the formats where linking is awkward, mainly Reels.

Steps one and two take under an hour together and account for most of the value. Three and four are refinements, and plenty of people never need them.

Where this fits

Instagram is the hardest of the seven networks to attribute, and it is worth understanding why before you conclude your Instagram strategy is failing: the platform is not built to hand traffic to your site, and the numbers reflect that design rather than your content.

There is a fuller guide to scheduling the formats themselves, including which ones can carry a link, on the Instagram scheduling guide. If you want the general model rather than the Instagram-specific version, start with how to track revenue from social media posts.

And if your honest answer to "which Instagram post made money last month" is still a shrug, better analytics will not fix it. One tracked link in the bio will, and it takes about a minute.

Lukas, founder of Planpo.st
Written by

Lukas from Planpo.st

Building Planpost: schedule posts everywhere, see the revenue they bring back.

@lukcombinator
// Try planpo.st

Plan, publish, and prove ROI — from one calendar.

Schedule across all 8 platforms and see the revenue each post drives. Full access free for 7 days.

Start free trial →See pricing

Keep reading

revenue trackingConnecting Posts to Revenue: A Stripe and Shopify Attribution WalkthroughAug 13, 2026revenue trackingHow to Read Your Social Media Revenue NumbersJul 26, 2026social mediaHow to Schedule Social Media Posts Like a ProApr 1, 2025
Previous
Let Claude Post for You: Scheduling Social Media from an AI Agent