ยท8 min readยทSam Wild

Shopify attribution: finding what actually sells

Shopify tells you how much you sold. It's less helpful at telling you why. Here's how to fill the attribution gaps so you know which channels are pulling their weight.

Shopify's analytics dashboard is good at telling you what happened. Orders went up. Revenue hit a new weekly record. Someone in Portugal bought three hoodies at 2am.

What it's not great at is telling you why that happened. Was it the Instagram reel you posted Tuesday? The influencer who mentioned you in a story? The Google Shopping ad you forgot to pause? Shopify sees the sale. It doesn't always see the journey that led to it.

If you're spending money on marketing โ€” or even just spending time on organic content โ€” that gap matters.

What Shopify gives you out of the box

Shopify's built-in attribution uses a combination of UTM parameters and referrer headers. When someone lands on your store from a link with UTM tags, Shopify records the source, medium, and campaign. When there are no UTMs, it falls back to the HTTP referrer โ€” which might say "google.com" or "instagram.com" or nothing at all.

This gives you a rough picture. You can see that 40% of sessions came from Google, 25% from Instagram, and 15% from direct. But there are real blind spots.

First-click vs last-click. Shopify uses last-click attribution by default. If someone first discovered you through a TikTok video, then came back a week later through a Google search, Shopify credits Google. TikTok gets nothing, even though it did the hard work of introduction.

Social media dark traffic. When someone copies your link from Instagram DMs, WhatsApp, or a messaging app and pastes it into a browser, Shopify sees "direct" traffic. No referrer, no UTM, no attribution. This is a bigger slice than most people realise โ€” some estimates put dark social at 30-40% of all referral traffic.

Cross-device gaps. A user sees your product on their phone, then buys it on their laptop later. Shopify treats these as two separate sessions. The phone visit might have come from an ad, but the laptop purchase shows up as direct.

Platform-reported overlaps. Facebook says it drove 50 sales. Google claims 40. TikTok takes credit for 30. That's 120 attributed sales, but your actual order count is 75. Every platform overcounts because they each use their own attribution windows and claim shared customers.

Why this matters for small brands

If you're a small clothing brand or a solo founder running a Shopify store, you're probably doing two or three marketing channels at once. Maybe Instagram content, a few Google Shopping ads, and the occasional influencer collaboration.

Without proper attribution, you can't answer basic questions. Should you spend more on Google ads or find another influencer? Is your Instagram content driving sales or just likes? When you sent that newsletter last Thursday, did anyone actually buy something?

You end up making marketing decisions based on gut feeling. Sometimes that works. Often it means throwing money at whatever feels right rather than what the numbers support.

The UTM discipline

The simplest fix โ€” and one that costs nothing โ€” is being rigorous with UTM parameters on every link you share.

Every link that leaves your control should have at minimum:

  • utm_source โ€” where the traffic comes from (instagram, tiktok, newsletter, creator-jane)
  • utm_medium โ€” the type of channel (social, paid, email, influencer)
  • utm_campaign โ€” the specific campaign or promotion (summer-sale, march-drop, collab-2026)

If you're sharing a link on your Instagram bio: yourstore.com?utm_source=instagram&utm_medium=social&utm_campaign=bio-link

If you're giving a creator a link: yourstore.com?utm_source=creator-jane&utm_medium=influencer&utm_campaign=march-collab

Shopify captures these and makes them available in your analytics reports. It's not perfect โ€” it's still last-click, and it breaks when people don't click the link directly โ€” but it's a massive step up from having no parameters at all.

The hard part is consistency. Every single link needs UTMs. One untagged link in an influencer's bio means those sales show up as direct traffic, mixed in with everyone who typed your URL by hand.

Per-influencer tracking

If you're working with influencers โ€” even casually, even unpaid โ€” you should be giving each one a unique tracked link. Not just for your records, but so you can actually tell them how they performed.

The approach is straightforward. Create a unique link for each creator. When someone clicks that link and eventually makes a purchase, the sale is attributed to that specific creator.

This works regardless of what platform the influencer posts on. Instagram story, TikTok bio, YouTube description, Twitter thread โ€” the link is the same, and the tracking follows the click.

Tools like LinkOwl make this easy for small brands. You create a link per influencer, hand it over, and see purchases attributed per creator in your dashboard. The cost is per sale (5p per attributed purchase), so you're only paying for measurement when you're actually making money.

Compare that to enterprise attribution platforms where you're paying hundreds a month whether you sell anything or not.

Beyond last-click

Shopify's last-click model means your awareness channels always look worse than they are. TikTok, Instagram reels, podcast mentions โ€” these introduce people to your brand. But the actual purchase often happens later through a direct visit or Google search.

There's no easy fix for this at the Shopify level. Multi-touch attribution models exist (linear, time-decay, position-based), but they require more data infrastructure than most small brands can justify.

What you can do is look at assisted conversions. If someone first arrived from an Instagram link (with UTMs) and later purchased through Google search, Shopify records both touchpoints. You can see this in the "conversion details" view for individual orders. It's manual and tedious for large volumes, but for a brand doing 50-200 orders a month it gives you real insight.

The practical takeaway: don't judge your top-of-funnel channels purely on last-click numbers. If Instagram is consistently showing up as the first touchpoint for customers who later buy through search, it's doing more work than your attribution report suggests.

Tracking offline and dark social

Some of your best marketing won't have a clickable link at all. Someone mentions your brand in a group chat. A customer tells their colleague about you at lunch. A podcast host describes your product but the listener doesn't click the show notes link โ€” they just Google you later.

You can't attribute these precisely. But you can estimate their impact.

Post-purchase surveys. Add a "How did you hear about us?" field to your order confirmation or follow-up email. Keep it simple โ€” a dropdown with your main channels plus an "Other" free text field. It's self-reported and imperfect, but it catches the channels your tracking completely misses.

Discount codes. Give each channel or creator a unique discount code. Even if they don't use a tracked link, the code tells you where the customer came from. This is especially useful for podcast and video sponsorships where clicking a link is harder than remembering a code.

Correlation analysis. When an influencer posts about you, does your traffic spike the same day? You won't know which specific visitors came from that post, but the timing correlation is often clear enough to be useful.

What a practical setup looks like

For a small Shopify brand doing under ยฃ50k/month, here's a sensible attribution stack:

  1. UTM parameters on everything. Every shared link gets tagged. Use a spreadsheet or URL builder to keep them consistent. This is free and takes five minutes per link.

  2. Unique links per influencer/creator. Use a tracking tool that lets you create per-creator links and see attributed purchases. The cost should scale with your sales, not be a fixed monthly fee you pay whether or not anything sells.

  3. Post-purchase survey. One question, mandatory or optional depending on your preference. "How did you hear about us?" catches dark social and word of mouth.

  4. Monthly channel review. Sit down once a month and look at the data. Which channels drove attributed sales? Which have high session counts but low conversions? Where are you spending money with no measurable return?

That's it. You don't need a data warehouse, a customer data platform, or a six-figure analytics budget. You need tagged links, a tracking tool, and the discipline to look at the numbers regularly.

The gap Shopify won't close

Shopify is a selling platform, not an attribution platform. It'll keep improving its analytics, but it's never going to solve multi-touch attribution for a brand running campaigns across six channels with five influencers and a podcast sponsorship.

That's fine. You don't need Shopify to solve it. You need your own tracking layer โ€” one that gives each marketing activity a unique, measurable link and follows the chain from click to purchase.

The data won't be perfect. Some sales will always land in the "direct" bucket when they shouldn't. But knowing where 70% of your sales come from is infinitely better than guessing about all of them.

Track your marketing links with LinkOwl

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

Start tracking free โ†’