Magik Install free

How to tell if social media is actually making you sales

In a controlled study, 100% of visits from TikTok arrived with no referrer at all. Shopify files those as "Direct" — and Shopify's default attribution model excludes direct visits by design. That is how a channel that genuinely works reports absolutely nothing.

Published 2026-09-01 · 13 min read

The short answer

If you only read one paragraph

Your social traffic is probably not missing — it's filed under Direct, because the apps people browse in strip the referrer header before the visit reaches your store. Shopify then has nothing to attribute the session to, and its default model, last non-direct click, explicitly skips direct visits when handing out credit.

The fix takes about twenty minutes and costs nothing: put UTM parameters on every link you post. A UTM tag lives inside the URL rather than in the header, so it survives the thing that breaks referrers. Then read the marketing reports rather than the traffic dashboard, and compare the default attribution model against first click — because social usually starts a purchase journey rather than finishing it, and only one of those two models gives it any credit for that.

Below: the study behind the opening number, exactly why Shopify's default hides the channel, a copy-and-paste tagging convention, which of the six relevant reports answers which question, and an honest account of what tagging still can't see.

Where the traffic actually went

"Direct" sounds like it means "people who typed your URL." It doesn't. It means we received no information about where this person came from — an error state that gets displayed as a channel. Rand Fishkin of SparkToro and Steve Lamar of Really Good Data measured how often that happens, by recruiting a panel of around 100 people to click tracking links posted across 11 social networks and recording what arrived. Out of 1,113 visits, this is what the referrer data looked like.

Share of visits arriving with no referral information, by platform. SparkToro / Really Good Data, 1,113 tracked visits, published April 2023.
Where the link was postedArrives with no referrerWhat your analytics calls it
TikTok100%Direct
WhatsApp100%Direct
Slack100%Direct
Discord100%Direct
Mastodon100%Direct
Facebook Messenger75%Direct
Instagram DMs30%Direct
LinkedIn public posts14%Direct
Pinterest posts12%Direct

Read the top row again if you sell through short-form video. Every single TikTok visit in that experiment landed as Direct. Not most — all of them. SparkToro's own site, the study notes, shows 95% of its traffic as Direct in Google Analytics, which the authors describe plainly as untrue.

The cause is mundane. A referrer is an HTTP header the browser attaches to a request, and the in-app browsers inside social and messaging apps routinely don't send one. Nothing is broken on your store, and no app will "recover" the missing data after the fact. The information was never sent.

Why Shopify's default makes it worse

Losing the referrer would be survivable if untagged visits simply showed up as an unknown bucket you could estimate around. The problem is what Shopify's attribution does with them next.

Shopify's default model is last non-direct click, which its documentation defines as giving "100% of attribution credit to the last channel that the customer interacts with before making a purchase, excluding direct visits." A direct visit, in Shopify's words, is what you get when there is "no non-direct source to attribute to." Put those two sentences together and the mechanism is clear: an untagged TikTok visit becomes a direct visit, and a direct visit is then excluded from receiving credit. The sale gets handed to whatever else the customer touched — usually a branded Google search, or the email you sent — and TikTok shows a flat zero.

The same TikTok visit, untagged and tagged Two horizontal flows. The untagged flow: a TikTok video, then the in-app browser sends no referrer header, then Shopify logs the session as Direct, then the last non-direct click model skips it entirely, so it receives no credit. The tagged flow: the same TikTok video, but the utm_source parameter rides inside the URL, so Shopify logs the session as tiktok slash social and the order is credited to TikTok. UNTAGGED LINK TikTok video → profile link In-app browser sends no referrer header Shopify logs the session as Direct Default model skips it TikTok credited: nothing TAGGED LINK TikTok video → profile link ?utm_source=tiktok rides inside the URL Shopify logs tiktok / social The order is credited to TikTok Same person, same video, same purchase. The only difference is twenty characters appended to a URL.
The referrer is a header the browser chooses whether to send. A UTM parameter is part of the address itself, so it can't be dropped in transit — which is why tagging solves the specific failure that makes social traffic vanish.

Tag every link. Here's the convention.

UTM parameters are five optional key-value pairs you append to a URL. Shopify's own guidance calls utm_source and utm_medium required if you use them at all, and advises "lowercase letters for all UTM codes, every time, no exceptions" — because TikTok and tiktok become two separate rows in your reports and neither shows the real total.

The one Shopify-specific detail

Shopify's documentation states that "traffic that comes to your store with utm_campaign parameters in the URL is attributed to marketing." Source and medium alone will populate your traffic reports, but it's utm_campaign that gets a visit into the marketing reports where the revenue numbers live. Never leave it off, even for evergreen organic posts — use the month.

A worked example, linking straight to a product rather than to your homepage:

A tagging convention for a store posting organically to the three main networks. Copy it exactly; consistency matters more than cleverness.
Placementutm_sourceutm_mediumutm_campaignutm_content
TikTok profile linktiktoksocialorganic-2026-09bio
Instagram bio linkinstagramsocialorganic-2026-09bio
Instagram Story stickerinstagramsocialorganic-2026-09story
Facebook Page buttonfacebooksocialorganic-2026-09page-cta
A specific product pushtiktoksociallinen-shirt-launchvideo-01

Assembled, the TikTok bio link becomes:

Paste-ready

https://yourstore.com/products/linen-shirt?utm_source=tiktok&utm_medium=social&utm_campaign=organic-2026-09&utm_content=bio

Three rules that prevent almost every mess we've seen: keep utm_medium identical across all organic social (social) so the channel rolls up as one line; change utm_campaign monthly so you can compare periods without building a date filter; and vary utm_content by placement so you can tell a bio click from a Story click without creating a new channel for each.

Where the tagged links go

Placement mechanics change more often than the analytics does, so treat this as current-as-of-writing rather than permanent. On TikTok, switching to a Business account removes the follower threshold on the profile website field, which is otherwise the main blocker for a new store. Instagram allows several links in the bio and a link sticker on Story slides, one per slide, with no follower minimum. Facebook Pages take a button destination and links in posts directly.

If you use a link-in-bio page rather than pointing at a product, tag the outbound links on that page instead of trusting the tool's own dashboard. You want the data to land in Shopify, next to the orders, rather than in a fourth analytics product that can't see revenue. Every extra hop between the video and the product page is also a place people drop out, so link straight to the product whenever there's only one thing you want them to see.

Now read the right report

Shopify splits this across two report families, and most merchants only ever open the wrong one. Acquisition reports tell you about sessions. Marketing reports tell you about money, and they only see traffic you've tagged — which is why tagging comes first.

Shopify's own report names, and the question each one actually answers.
Your questionReportFamily
Is social sending anyone at all? Sessions by referrer — "whether your visitors are coming to your store directly, from search, or by a referral" Acquisition
How many sessions did my tagged links produce? Sessions attributed to marketing campaigns Marketing
How much revenue did they produce? Sales attributed to marketing Marketing
Which campaign tag performed best? Performance by UTM campaign Marketing
How does social compare to search and email? Performance by referring channel · Marketing top channel performance Marketing

Two limits worth knowing before you go looking for history: Shopify states that session-based metrics in the acquisition reports go back only to 1 October 2022, and attribution data in the Growth section only to 1 October 2021. Tagging is not retroactive either — nothing you do today recovers last quarter's TikTok traffic from the Direct bucket. The clock starts when you tag.

Then change the attribution model on purpose

When a report contains a sales metric alongside a marketing dimension, Shopify shows an attribution menu with five models. They are not alternative opinions about the same number — they answer genuinely different questions, and for social the gap between them is the whole story.

One customer journey scored by Shopify's five attribution models A customer clicks a TikTok video, later clicks a Google search result, later arrives directly, then purchases. Last non-direct click, the Shopify default, gives all credit to Google. Last click gives all credit to the direct visit. First click gives all credit to TikTok. Linear splits credit evenly at 33 percent each. Any click gives full credit to all three. Only first click, linear and any click give the TikTok video any credit at all. One customer, three clicks, five different answers TikTok video Google search Direct visit Purchase Last non-direct click · default Last click First click Linear Any click 100% 100% 100% 33% 33% 33% 100% 100% 100% The default model is the only one of the five that gives the TikTok video nothing while also ignoring the direct visit.
Shopify's definitions, applied to one ordinary journey. Nothing here is a bug — last non-direct click is a reasonable default for paid acquisition. It just systematically undervalues whatever channel people discover you on, which for most stores is the social one.

The practical habit: look at your social numbers under last non-direct click and again under first click, and treat the gap between them as the channel's discovery value. If first click shows meaningful revenue that the default hides, social is doing its actual job — starting journeys — and judging it on the default number will lead you to cut something that works.

What tagging still won't show you

Tagging converts the largest category of invisible social traffic into visible traffic. It does not make the channel fully measurable, and any tool promising that is selling something. Everything below survives a perfect UTM setup.

  1. The journey that changes device. Someone watches a video on their phone, then buys on a laptop after searching your brand name. There is no click on your tagged link in that sequence, so the sale is recorded as organic search. This is extremely common and systematically flatters search at social's expense.
  2. Influence without a click. A video that makes someone remember your brand three weeks later leaves no trace anywhere. The entire top of the funnel behaves this way.
  3. Screenshots and word of mouth. A product screenshotted into a group chat, then searched for by name, arrives as direct or organic. The SparkToro data above is partly a measurement of exactly this behaviour.
  4. Anything before you started tagging. UTM parameters are recorded at the moment of the visit. There is no backfill.

The only practical instrument for that layer is asking. A post-purchase survey — one question, "How did you hear about us?", on the thank-you page — captures the answer at the one moment the customer is engaged, identified and still remembers. Shopify has no native field for this, so it takes a survey app (Fairing, Zigpoll and Grapevine all build for Shopify's checkout extensions). Ask "how did you first hear about us" if you want discovery data, which is the question social answers; ask "what brought you here today" and you'll get last-touch answers you already have.

Expect the survey and the analytics to disagree, sometimes badly. That disagreement is not a failure — it's the size of the gap the analytics can't see, and it's the most useful number in this whole exercise.

One warning about benchmarks

Once you have numbers, you'll want to know whether they're good, and the internet will offer you a conversion rate to compare against — social converts at 0.7%, or 1.1%, or 1.5%, depending which page you land on. Those figures circulate between blogs without a disclosed sample or method, much like the contradictory posting-time studies we've written about before. Compare your channels against each other, in your own store, over the same period. That comparison is real, and it's the one Shopify's reports are built to give you.

A measurement setup that's proportionate

You do not need an attribution platform to run a store. Five things, in this order, get you from "no idea" to "defensible answer."

  1. Tag every social link today. Bio links on all three networks, using the table above. Twenty minutes, and it's the step every later number depends on.
  2. Wait a full month before judging anything. You need enough orders for the difference between channels to mean something, and the data only starts accumulating from the day you tag.
  3. Read two reports, not eight. Sessions attributed to marketing campaigns for traffic, Sales attributed to marketing for revenue. Ignore the rest until those two are telling you something stable.
  4. Check both attribution models. Default, then first click. Write both numbers down. The gap is the discovery value you'd otherwise never see.
  5. Add the post-purchase survey once you're posting regularly. Not before — with low order volume the answers are noise. Once you have a steady flow, it's the only thing that sees the part UTMs can't.

And then the harder question

Measurement tells you whether social is working. It doesn't tell you why it isn't. In our experience the answer is usually upstream of analytics entirely: the account posts twice a week, or posts only product photos, or posts nothing at all for a fortnight when the shop gets busy. Attribution can't rescue a channel that isn't running, and a clean UTM setup measuring four posts a month will confidently report that social doesn't work for you.

That's the gap Magik is built for — it generates posts from your Shopify catalogue as creator-style videos and styled product images and publishes them to TikTok, Instagram and Facebook on a schedule, so the channel actually has volume to measure. It doesn't do attribution, and it isn't a substitute for tagging your links: put the UTM parameters in your bio links yourself, using the convention above, and the posts Magik publishes will drive traffic that Shopify can actually see. If you'd rather compare tools first, the comparison page covers Outfy, Xyla AI, IDEQO, Minta and Buffer honestly, including where each beats us.

Related reading while you wait for a month of data: what filling a content calendar actually costs, what to post beyond product shots, and the setup guides for TikTok and Instagram. If you're generating content with AI, the labelling rules are worth ten minutes too.

Frequently asked

Why does my Shopify store show so much Direct traffic?

Because "Direct" is where any visit with no referrer lands — not just people typing your URL. In SparkToro's study of 1,113 tracked visits across 11 networks, 100% of TikTok, WhatsApp, Slack, Discord and Mastodon visits carried no referral information, and 75% of Facebook Messenger visits carried none. Shopify has nothing to attribute those sessions to, so they become Direct. Untagged social is usually the single biggest contributor to an inflated Direct number.

How do I track TikTok sales in Shopify?

Put UTM parameters on the link in your TikTok profile. Tags live in the URL rather than the referrer header, so they survive the in-app browser that drops referrers. Use ?utm_source=tiktok&utm_medium=social&utm_campaign=organic-2026-09. Shopify's marketing reports key specifically off utm_campaign, so don't omit it. The sessions then appear under Sessions attributed to marketing campaigns and Performance by UTM campaign instead of vanishing into Direct.

What attribution model does Shopify use by default?

Last non-direct click, which Shopify defines as giving 100% of credit to the last channel the customer interacts with before buying, excluding direct visits. Four alternatives are available in the report's attribution menu: last click, first click, any click and linear. Because social usually starts journeys rather than closing them, the default routinely hands the sale to a later branded search and shows social as zero.

Which Shopify report shows sales from social media?

Sales attributed to marketing for revenue and Sessions attributed to marketing campaigns for traffic, both in the marketing reports, plus Performance by UTM campaign to compare tags and Performance by referring channel to compare social against search and email. Sessions by referrer, in the acquisition reports, is the quick traffic check. The marketing reports only see tagged traffic, so tag first.

Do UTM parameters still work if the platform strips the referrer?

Yes — that's precisely why they're the fix. The referrer is an HTTP header the browser may or may not send, and in-app browsers routinely don't. A UTM parameter is part of the URL string, so it arrives intact whenever someone clicks the link, and Shopify reads it on landing.

Will tagging recover my past social traffic?

No. UTM values are recorded at the moment of the visit, so there's no backfill — historical sessions stay in Direct permanently. Shopify also limits how far back you can look regardless: session metrics in the acquisition reports go back only to 1 October 2022, and Growth attribution data to 1 October 2021.

What can't UTM tracking see?

Anything without a click on your tagged link: someone who watches a video on their phone and buys on a laptop after searching your brand, a screenshot shared in a group chat, or a post that builds recognition without generating a visit. A post-purchase survey asking how customers heard about you is the only practical way to see that layer, and Shopify has no native field for it — it needs a survey app.

Link-in-bio tool, or link straight to my store?

Either, as long as the UTM parameters survive. Link directly to a product or collection when there's one thing you want people to see — every extra hop drops visitors and risks dropping tags. If you use a link-in-bio page, tag the outbound links on that page so the data lands in Shopify alongside your orders rather than in a separate dashboard that can't see revenue.

Sources

The attribution definitions and report names come from Shopify's own Help Center; the referrer data from the original published study rather than any summary of it. Shopify revises its documentation and admin regularly, so check against your own store if a name doesn't match.

  1. SparkToro — New research: dark social falsely attributes significant percentages of web traffic as "direct", Rand Fishkin with Steve Lamar of Really Good Data, April 2023. 1,113 visits from ~100 panel participants across 11 networks and 16 tracking URLs; source of every percentage in the misattribution table.
  2. Shopify Help Center — Measuring marketing performance. Source of the five attribution models and their verbatim definitions, the statement that last non-direct click is the default, the rule that traffic carrying utm_campaign is attributed to marketing, the definition of a direct visit, and the 1 October 2021 Growth data boundary.
  3. Shopify Help Center — Marketing reports. Source of the report names: Sales attributed to marketing, Sessions attributed to marketing campaigns, Performance by referring channel, Performance by marketing activity, Performance by UTM campaign, Marketing top channel performance.
  4. Shopify Help Center — Acquisition reports. Source of the Sessions by referrer description and the 1 October 2022 limit on session-based historical data.
  5. Shopify — How to use UTM parameters (and when to use them). Source of the five parameters, the requirement that utm_source and utm_medium be present, and the lowercase-everything naming guidance.
  6. Placement mechanics (TikTok Business account profile links, Instagram bio links and Story link stickers) reflect the platforms' current behaviour as of September 2026 and change more often than anything else on this page. Verify in the app before building a process on them.
  7. Post-purchase survey tools are named as examples of the category, not as endorsements. We have no commercial relationship with any of them.
  8. Published conversion-rate-by-channel benchmarks are deliberately not cited, for the reason given in the text: the figures in circulation have no disclosed sample or methodology.

Keep reading

Best time to post on social media

The two biggest studies contradict each other outright. Why that happens, and how to find your own store's windows.

Does AI content get penalised?

What TikTok, Meta, the EU AI Act and the FTC actually require you to label — and what needs nothing at all.

How much does UGC actually cost?

The 2026 rate data and the add-ons that never appear in a quote — what a cadence really costs per month.

Auto-post Shopify products to TikTok

Account requirements, what TikTok's API allows, and where the video itself comes from.