← Back to blog
Need setup details while you read? Visit the Help Center.
Links, coupon codes, UTM tags or a first-party tracking domain. Here is how each affiliate tracking method works, where each one breaks, and which to use for a Shopify store.
Published on September 11, 2026
by Fawaz
Every affiliate program comes down to one question.
When a sale happens, how do you know who sent it?
Get that wrong and everything downstream is wrong with it. You pay the wrong person, or you pay nobody and the affiliate who did the work quietly stops promoting you. Nobody files a complaint about a missing commission. They just go and promote someone else.
There are four methods in common use, and they are not equally reliable. The one most programs lean on hardest is also the one that fails most often, and it fails on the traffic that makes up most of an affiliate program.
I want to go through each of them, show you where each one breaks, and then say plainly which combination I would use. If you want the underlying mechanics first, we covered them in our guide to tracking affiliate sales on Shopify.
Affiliate traffic does not behave the way it did ten years ago.
In our data across 1,178 Shopify affiliate programs, around 80% of affiliate referral traffic arrives on a phone, store-weighted, and the typical store is closer to 87%.
Look at where it comes from and the picture sharpens.
| Traffic source | Share of referral visits |
|---|---|
| 28.8% | |
| No identifiable referrer | 25.5% |
| YouTube | 15% |
| 14% | |
| Other websites | 11% |
| TikTok | 2% |
| X | 2% |
That second bar is the one that should worry you.
A quarter of referral visits arrive with no identifiable referrer, which is what a link looks like after it has been pasted into a DM, forwarded through a group chat, or tapped from a link in bio.
Private shares, opened on a phone, usually inside an app's built-in browser.
That is your affiliate channel now, and it is the hardest environment there is for browser-based tracking to survive.
The free option, and the one merchants usually try first.
You give each affiliate a UTM tag, Shopify records it on the order, and you tally sales in a spreadsheet at the end of the month.
It works, technically. It stops working as soon as you have more than two or three affiliates.
Shopify's reporting is built for marketing attribution, not affiliate payouts.
It is last click and session based, it only records the visit if the customer accepts cookies, and it ignores every click that did not end in a sale.
So you cannot see clicks, you cannot see conversion rate, and you have no way to show an affiliate why their number is what it is.
Where it breaks: anything beyond a handful of affiliates, and any dispute about who earned what.
This is the standard method, and the one every affiliate app is built around.
Each affiliate gets a unique link.
When someone clicks it, the app records the click and stores the affiliate's identifier in the visitor's browser.
If they buy before it expires, the order is credited.
When it works it is excellent.
It needs nothing from the customer, it captures clicks as well as sales so you can actually measure performance, and it works no matter what the customer buys.
The only weakness with this method is the cookie.
It does not survive a customer switching from a phone to a laptop.
It frequently does not survive an in-app browser handing off to the real browser at checkout.
It does not exist at all when the sale runs through a checkout on another domain, for example Shop, or any payment sheet that is not your storefront.
Go back to that chart. Mobile, private, in-app traffic is where cookies are least likely to last, and that is where most affiliate traffic now lives.
One thing that is rarely the problem, despite being the first setting merchants reach for: the length of the window.
The median gap between referral visit and order is 9.5 minutes, and 96.8% of referred orders land inside 30 days.
We went through the reasoning in our affiliate cookie duration guide.
Where it breaks: device switches, in-app browsers, third-party checkouts, aggressive privacy settings.
Each affiliate gets a unique discount code.
Whoever's code is on the order gets the commission.
This method has one enormous advantage over link tracking: the code is part of the order, not part of the browser.
It does not depend on cookies, domains, devices or which checkout ran.
Any checkout that accepts a discount code preserves it.
It also works where links cannot go at all.
A podcast read, a video where nobody taps a description, a printed insert, someone telling a friend in person.
Its weakness is the customer. They have to remember the code, carry it through the shopping session, and type it correctly at checkout on a phone.
Plenty of them do not, and every one who does not is a commission your affiliate loses without ever knowing why.
There is a second cost. A code means a discount on every sale it touches, whether the discount was needed to close it or not.
Where it breaks: any time the customer does not enter the code.
This is the method most comparison posts skip, and it is easy to mistake for a solution.
Instead of storing the referral cookie on the affiliate app's domain, the cookie is set on a subdomain you own, like track.yourstore.com.
Browsers treat that as a first-party cookie, the same family as the rest of your store. Safari and a lot of privacy tooling are harsher on third-party cookies than on first-party ones, so this survives some of the blocks that kill a cookie sitting on someone else's domain.
It is still a cookie.
It still has to be readable at the moment the order is created.
It does not follow a customer from their phone to their laptop. It does not travel to a checkout on another domain. It does not survive an in-app browser that hands the customer to Safari to pay.
So it is a more durable version of method 2, not a different method. Useful if you are already running link tracking and losing sales to third-party cookie blocks. Not useful if the break is a device switch or a checkout that never sees the cookie.
Where it breaks: the same places ordinary link tracking breaks, minus some third-party cookie blocks.
Line the four methods up next to each other and one pattern falls out.
So every method that asks nothing of the customer depends on the browser.
And the one method that escapes the browser asks something of the customer.
That trade-off is the reason most programs run links and codes together and quietly accept losing sales in both directions.
You do not have to accept that trade-off any more.
An auto-applying coupon link is one URL that does both jobs at once.
The customer clicks it, the referral is recorded, and the affiliate's discount is applied automatically before they ever reach checkout.

So the order carries two independent routes back to the affiliate.
The cookie, if it survives. And the code sitting on the order, if it does not.
The affiliate shares one link instead of a link and a code.
The customer types nothing.
And the failure mode that costs programs the most sales, a cookie dying somewhere between an Instagram DM and a mobile checkout, stops costing you anything, because the discount is already on the order.
This is how tracking works in Affilitrak, and it is totally free to use.
Two honest caveats.
Pick your method by asking where your affiliates actually promote.
If it is podcasts, video without clickable links, or word of mouth, you need coupon codes, because nothing else reaches those sales.
If your affiliates post links and your customers buy on the same device in the same browser, link tracking is clean and measures the most.
For everyone else, and that is most Shopify stores, the honest answer is that you need both, and the least painful way to have both is one link that carries the code with it.
Because the question was never which method tracks best in ideal conditions.
It is which method still credits the sale when the customer opens your store inside Instagram, jumps out to Safari to pay, and never types anything at all.
You can install Affilitrak free and have links and auto-applying codes tracking together from your first sale.