Learn · Platforms · Updated 2026-08-14

How to track sales from Instagram

Tag every link with UTM parameters and match that data to your store's order records, then add a unique discount code for Instagram as a backup signal, because Instagram's in-app browser can break cookie-based attribution before someone actually buys.

  1. Separate native checkout from link-driven sales
    Instagram Shopping purchases live inside Meta's own reporting and can't be seen by any external link tracker, so measure that path separately from bio-link traffic.
  2. Tag every bio and story link with UTM parameters
    Every outbound link should identify the specific post, not just Instagram as a generic source.
  3. Match UTM data to your store's order data
    A UTM parameter only becomes a revenue number once your store records it at checkout and lets you filter orders by it.
  4. Add a discount code as a cookie-independent backup
    A code typed in at checkout survives the gap where Instagram's in-app browser breaks cookie attribution, since it doesn't rely on a stored cookie at all.
  5. Account for the in-app browser cookie gap
    Treat UTM-based revenue as a provable floor, not the full picture, and use discount code redemptions to estimate what the cookie-based number misses.
  6. Compare Instagram's tap counts to your landing sessions
    A large gap between Instagram's own bio link tap count and your landing page sessions usually points to a broken redirect, not lost interest.
  7. Review revenue by post weekly
    Pulling revenue by post rather than by campaign total shows which specific content is actually doing the work.

The three paths a sale can take, and why they need different tracking

"Sales from Instagram" actually covers three different flows, and conflating them is the most common reason people give up on attribution entirely.

PathWhat it isWhat you can see
Native Instagram Shopping checkoutPurchase completed inside the Instagram app itselfAggregate performance in Meta Commerce Manager
Link-driven sale via bio or story linkClick leaves Instagram, purchase happens on your own siteFull order detail, if UTMs are matched at checkout
Link sticker or bio link with no parametersClick leaves Instagram, nothing attached to identify the postInstagram's own tap count only, no downstream detail

Only the middle path gives you real revenue attribution, and it only works if the tracking is set up before the click happens, not reconstructed afterward from a spike in traffic.

Step 1: separate native checkout from link-driven sales

If you sell through Instagram Shopping directly, that revenue lives inside Meta's own reporting and it isn't something a link tracker, Raydar or anything else, can see or add to. Decide which path a given post is optimized for before you measure it. A post tagged for in-app checkout and a post pointing to a bio link are answering different questions, and holding them to the same tracking standard just produces confusing numbers. Plenty of accounts run both at once, native product tags on some posts and a bio link driving to a fuller site experience on others, which is fine as long as you're not trying to sum the two into one figure. They live in different systems and stay there.

Step 2: tag every bio and story link with UTM parameters

Every link you post, in your bio, in a story link sticker, in a caption, should carry UTM parameters that identify the specific post, not just "instagram" as a blanket source. A UTM builder makes this consistent across a posting schedule, and if the parameters themselves are unfamiliar, what are UTM parameters covers the basics. For the mechanics specific to this platform, including how Instagram's professional account insights report bio link taps, see how to track link clicks on Instagram.

Step 3: match UTM data to your store's order data

UTM parameters only become sales data once your store or CRM records them at the point of purchase and lets you filter orders by source and campaign. Most ecommerce platforms do this natively if the UTM is present in the URL that led to checkout. If it isn't captured there, it never becomes a revenue number, no matter how clean your click tracking upstream was. This is also where a shorter attribution window costs you without any warning: if your store only remembers the last UTM for 24 or 48 hours, a visitor who clicks from Instagram on Monday and buys on Thursday shows up as direct traffic instead, which is a second, separate reason your Instagram-attributed revenue tends to read lower than the platform's real influence on the sale.

Step 4: add a discount code as a backup that doesn't depend on a cookie

This is the part most guides on this topic miss. Instagram's in-app browser, the mini browser that opens when someone taps a link without leaving the app, runs its own cookie session, separate from the person's regular Safari or Chrome session. If someone clicks from Instagram, doesn't buy right away, and later completes the purchase in their normal browser, the cookie your UTM tracking set never carries over, and that sale looks organic or direct instead of Instagram-driven.

A discount code sidesteps this entirely, because it gets typed in manually at checkout regardless of which browser or session the purchase happens in. Give Instagram, or even individual posts, a unique code (something short enough that people will actually type it in) and you get an attribution signal that survives the exact gap where cookie tracking fails. It also survives a phone getting restarted, an app getting reinstalled, or a purchase happening on a completely different device days later, none of which a cookie can do.

ScenarioCookie setCookie survives to purchase
Click in Instagram's in-app browser, buy in the same sessionYesUsually yes
Click in Instagram's in-app browser, close the app, return later in-appYesSometimes, depends on session persistence
Click in Instagram, then buy later in Safari or Chrome insteadYes, but in a different browser contextNo, the two sessions don't share cookies
Click in Instagram, use a saved discount code days later, any browserNot neededYes, a code doesn't depend on a cookie at all

Step 5: account for the gap instead of being surprised by it

Once you know this happens, treat your UTM-based revenue number as a floor, not a ceiling. It's real revenue you can prove came from Instagram. The true number is higher, by an amount you can only estimate from the redemption rate on your backup discount code. Reporting both numbers, the provable UTM figure and the code-redemption figure, is more honest than picking whichever one looks better.

Step 6: compare Instagram's tap counts to your landing sessions

A professional Instagram account shows you tap counts on the bio link in its own insights. Compare that number to the sessions your landing page or link-in-bio tool actually logged for the same window. A big gap between the two usually means broken or missing redirects, not a sudden loss of interest, and it's worth chasing down before you draw any conclusion about the post itself. Run this comparison monthly at minimum, since a redirect that quietly broke three weeks ago looks identical to a slow week unless you're checking both numbers against each other.

Step 7: review revenue by post, weekly, not just by campaign

Campaign-level totals hide which specific post did the work. Pull revenue by UTM content or post identifier on a weekly cadence, and you'll usually find that a small number of posts account for most of the traceable revenue, which tells you more about what to make next than an aggregate monthly number ever will.

Does it matter whether the link is in your bio, a story, or a Reel caption

Not for the tracking mechanics themselves. A UTM-tagged link works the same whether it sits in your bio, a story link sticker, or a caption. What changes is how Instagram surfaces the tap count back to you: a professional account's insights show taps on the bio link as a running total, while story link stickers report per-story. Give each placement its own UTM content value regardless of where it lives, since that is what actually lets you tell a bio-link click apart from a story-link click later, not which part of the app it came from.

Set expectations before you report a number

Whoever you report Instagram revenue to should understand it going in as a provable minimum, not a complete figure. Say so plainly: "this is what we can trace with certainty, and the in-app browser means the real number is somewhat higher." That framing holds up better over time than a single tidy number that later turns out to have been an undercount all along, and it sets the right expectation for why a discount code matters as much as the tracking link does.

What this setup honestly cannot do

A link-in-bio tool like Raydar can tell you which post drove a click, with country, city-level geo, and first-touch and last-touch attribution up to the moment that visitor lands on your page. It cannot see what happens after that, whether they added something to a cart, whether they paid, whether they returned three days later and bought on desktop instead. That handoff is where your store's own order data, matched by UTM or by the backup discount code, has to take over. Anyone claiming a single tool sees the whole path from tap to purchase, on Instagram specifically, is skipping over the in-app browser problem above.

Common questions

Can I track Instagram Shopping checkout sales with UTM parameters?
No. Purchases completed inside Instagram's native checkout happen entirely within Meta's systems and are reported through Meta Commerce Manager, not through your own UTM or link tracking.

Why do my Instagram sales numbers look lower than they should?
Instagram's in-app browser runs a separate cookie session from a person's regular browser, so if someone clicks in-app and later buys in Safari or Chrome instead, that sale usually won't get credited to Instagram by cookie-based tracking.

What's the single most reliable way to attribute a sale to Instagram?
A discount code unique to Instagram, or unique per post, since it's entered manually at checkout and doesn't depend on a cookie surviving across browser sessions the way UTM tracking does.

Does Raydar track purchases made on my store?
No. Raydar tracks clicks on the links and pages it serves, including UTM data and referrer, up to the point someone lands on your site. What happens after that, cart activity and payment, is your store's own analytics to capture and match back by UTM.

Related: How to track link clicks on Instagram · How to track affiliate links (and see what's actually working) · What are UTM parameters? · How to track email clicks (and tell real ones from bots)