UTM tags travel inside the URL and do not depend on a third party cookie, but they only become attribution once your analytics stores them, and that does depend on what each visitor agrees to. So the realistic expectation is measuring channels and trends reliably, rather than tracing every single sale back to the click that caused it.
What broke, and what was never whole
The third party cookie had been dying for years before anyone announced it. Browsers began shortening the life of identifiers, blocking cross site tracking and limiting what a script may keep on the device, and in the EU a condition sits in front of all of it: storing or reading information on somebody's device for measurement needs their consent, with exceptions that a guide like this one does not get to decide for you. When a visitor says no, the event never arrives, and a sale that really happened shows up in no dashboard at all.
The second half of that is the part nobody says out loud. Perfect measurement never existed either. Word of mouth, the link forwarded in a private message, the screenshot somebody saves and opens three weeks later, the purchase finished in a physical shop: all of that has always sat outside the reports. What changed is not that measurement broke, it is that the share of the gap grew large enough that it can no longer be ignored.
Which leaves one position that survives a full year: stop chasing the exact number and start building a comparable one. A figure that measures the same way every month, even if it undercounts, is a figure you can decide with. A figure that measures differently every month, however precise it claims to be, is worth nothing.
The five parameters, and the three that get read
A UTM tag is a piece of text stuck onto the end of a link. It identifies nobody, stores nothing in the browser and survives any change of cookie policy, because it is part of the address itself. There are five, and the workload between them is very unevenly shared.
| Parameter | What it answers | Needed |
|---|---|---|
| utm_source | Which specific place the visit came from | Always |
| utm_medium | What kind of traffic it is: organic, paid, email | Always |
| utm_campaign | Which specific push brought it | Always |
| utm_content | Which piece or which variant of that push | Only if you will read it |
| utm_term | Which keyword brought it | Paid search only |
The first three answer where from, what kind and why. The last two are where teams hurt themselves: they tag at a level of detail nobody will ever open, everyone writes it their own way, and six months later the report has forty rows saying the same thing in different capitalisations.
Two technical details break more links than you would think. The first is that a
destination already carrying its own query string or an anchor will not take a hand typed
?, and that is the normal case on a product page with filters. The second is that case
matters: to most analytics tools, Instagram and instagram are two different sources.
The UTM builder assembles the link with both problems solved and
shows you what it rewrote and why. It saves nothing and sends the link nowhere, which
matters when what you are pasting in is a campaign that has not launched.
A convention that survives six months
Writing the convention costs an afternoon and saves the whole quarter. Three rules are enough.
- A closed vocabulary for source and medium. A short list, lower case, that does not
grow without somebody approving the addition. If
emailandnewsletterboth live on as a medium, your reports are split down the middle forever. - The campaign name carries its date. Something like
summer-sale-2026-06sorts itself and is still recognisable a year later. Something likenew-campaignmeans nothing the day there are two of them. - Never put personal data inside a parameter. Not an email address, not a name, not a customer reference. That string travels in the URL, stays in server logs and ends up in the third party dashboard that analyses your traffic, and at that point you no longer control it.
The fourth rule is not about syntax, it is about ownership: somebody is responsible for that list. When the convention has no owner, every new person invents their own, and the history stops being comparable in precisely the month you were going to use it to renew a contract.
The bio link, the case most often forgotten
Traffic leaving a social profile often arrives with no useful referrer, because the jump goes through the app's in built browser. Untagged, that traffic gets filed as direct, and you end up reading that your best channel is people typing your domain from memory, which is almost never true.
The links page each brand has is where this gets fixed with the least effort, because the
destinations are all in one place and get tagged in one sitting. Every button carries its
own utm_content, the click history for each one stays on the page itself, and you can
compare what the network says it sent with what your site recorded. How that page is built per
brand is covered in the
link in bio guide.
Why the two numbers never match
It is not a configuration error. They are two different ways of counting, and neither one is lying.
- The platform counts views, your analytics counts visits. Somebody who saw the ad and bought two days later without clicking lands in the platform's report and cannot land in yours, because on your site that session arrived with no tag on it at all.
- The day the conversion is booked differs. The platform assigns it to the day of the click or the view, your analytics to the day of the purchase. With long decision cycles, those two calendars drift apart on their own.
- Each platform counts its own and only its own. If three campaigns on three platforms touched the same person, all three book the sale. Adding up the reports of five platforms produces a total that exists in no till anywhere.
- Part of what you see is modelled. When events are missing, the platforms estimate the gap with their own models and document that in their help pages. It is a reasonable estimate and it is still an estimate.
Everything in this article happens in one place in GoFeed.
Try it freeWhat you can measure without arguing
There are four readings that do not depend on two dashboards agreeing, and nearly every real decision can be made with them.
The first is blended acquisition cost: everything spent in the period divided by every new customer in the period, with no credit shared out between channels. It is crude and it is honest, and because it comes from your own accounts nobody can argue with it.
The second is a period over period comparison under equal conditions: the same number of weeks, the same seasonality, the same objective. Comparing November with August says nothing about your work, it says something about the calendar.
The third is the switch off test. Leaving a channel dark for a window decided in advance and watching what happens to the business total, not to that channel's dashboard, is the only incrementality measurement within reach of a small company. It is decided in advance, written down in advance, and not interrupted on day four because somebody got nervous.
The fourth is asking. An open field on the form gives you biased data, because people remember badly, and it is at the same time the only data that depends on no tag and no consent banner.
Where this sits in your week
UTM tags live in your web analytics, not in the brand's dashboard. What does live in one place is the other half of the picture: the spend and the performance of the Meta, Google, LinkedIn, TikTok and Pinterest accounts each brand has connected, in a single list, with each account hanging off its own brand. The ads page explains how an account is connected and what shows up afterwards.
That dashboard invents no attribution of its own, and that is deliberate. Every platform brings its own window and its own criteria, and a total stitched over five different criteria would be the most comfortable number in the report and also the falsest. What it does instead is put all five sets of figures into the same columns, so a brand's month can be read in one go without adding anything by hand. How to read that report without fooling yourself, starting with the window, is in the guide to reading an ad report, and what each acronym in it actually means is in the ad metrics guide.
One closing warning, because it is the mistake that costs most in front of a client. Nothing here decides which legal basis you rely on or how you ask for consent: that is for whoever handles your compliance, and a measurement guide is no substitute for that work. What you can decide today is not to promise a precision no system can deliver.


