You have a bio link. It sends people to your Shopify store. Shopify tells you an order came in. Nothing in that chain tells you the order came from the bio link rather than from an ad, an email, or someone typing your domain.
That missing connection is why most creators underestimate what social actually earns them, and occasionally why they overestimate it.
Why Shopify's own numbers are not enough
Shopify analytics reports traffic sources, and for most stores a large share of orders land under "direct" or "social" with no further detail. "Social" is not a link. If your bio page carries six links, knowing that social produced $4,000 tells you nothing about which of the six to keep.
UTM tags improve this, and if you do nothing else, tag your links. But UTMs break the moment someone copies a URL, and they tell you about campaigns rather than individual links.
The mechanism that works
Attribution needs an identifier that survives the journey:
- A visitor taps a link on your bio page.
- The redirect attaches a unique click ID to the destination URL.
- A small script on your store reads that ID and stores it first-party.
- When the order completes, the store sends the ID back with the order value.
Now the sale is attached to one specific link, not to a channel. This is the same shape as a Meta or TikTok pixel, with one difference that matters: the identifier is stored first-party on your own domain, so it survives the privacy changes that broke a lot of third-party tracking.
Doing it on Shopify
Two places to add the snippet, depending on your theme and plan:
- theme.liquid, just before the closing head tag. This loads the script on every page so the click ID is captured wherever someone lands.
- The order status or thank-you page, where you fire the conversion with the order total. On Shopify Plus this is a checkout extension; on other plans it is the additional scripts box in checkout settings.
The conversion call is one line and takes the order value, so refunds and test orders can be reasoned about later rather than silently inflating your numbers.
What to check before you trust it
Install it, then prove it. Click a link on your own bio page, complete a real order, and confirm the revenue lands against that link rather than appearing as unattributed. If the number shows up unattributed, the usual cause is that you reached the store by typing the URL instead of clicking the link, which skips the click ID entirely.
It is worth doing this once properly. An attribution setup nobody has tested is a report you cannot defend.
What you get for the effort
Not a dashboard. An answer. You find out that the link you promote hardest earns less than the one you nearly deleted, or that a link with a tenth of the clicks produces most of the revenue. That changes what you post, not just what you report.
Set this up on PaidBio and the bio page side is handled for you. Related reading: conversion pixels explained and why your bio link is leaking revenue.