A UTM parameter is a label you add to the end of a link. When someone clicks it, your analytics reads the label and records where the visit came from. You need them because the browser often does not say. Email and chat apps often hide the page that sent the click.
Here is a tagged link:
https://example.com/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=october-launch
Everything after the ? is for your analytics. The page itself ignores it.
The five parameters
| Parameter | What it answers | Example |
|---|---|---|
utm_source | Which site, app or list sent the visit | google, linkedin, newsletter |
utm_medium | What kind of traffic it is | cpc, email, social |
utm_campaign | Which campaign it belongs to | october-launch |
utm_term | The paid keyword, if there is one | web-analytics |
utm_content | Which link or ad version was clicked | header-button |
Source and medium matter most. Most tools, GA4 and Spreelytics included, decide the channel from those two. Campaign is how you group the links of one push together. Term and content are optional.
The medium decides the channel
Channels such as Email, Paid Search or Organic Social are not labels you type. The tool works them out from rules, and the medium is the main input. Use a value the rules know and the visit lands in the right channel. Invent one and it lands in a catch-all: Referral in Spreelytics, Unassigned in GA4.
These are the values Spreelytics recognises. GA4's default rules are close to the same.
| Channel you want | utm_medium to use |
|---|---|
email | |
| Paid Search | cpc or ppc, with a search engine as the source |
| Paid Social | cpc or paid-social, with a social network as the source |
| Organic Social | social |
| Display | display or banner |
| Affiliates | affiliate |
| Referral | referral |
The most common mistake is utm_medium=newsletter. It reads naturally, but no rule knows it, so
your newsletter never reaches the Email channel. Put the list name in the source and keep the
medium as email.
Any medium that starts with paid or contains cp counts as paid, unless it is one of the display
values. That is why cpc, ppc and paid-social all work.
Naming rules that save you a clean-up later
Write everything in lowercase. GA4 treats Facebook and facebook as two different sources.
Spreelytics folds the capitalisation of sources it knows, such as Google or LinkedIn, into one row.
Anything else, such as your own list names, stays case-sensitive.
Pick one spelling and write it down. linkedin, linked-in and li are three rows in every
report. A short shared list of the sources and mediums your team uses prevents most of this.
Use hyphens, not spaces. A space becomes %20 in the link, and some tools turn it into a +.
Never tag links between your own pages. A tag tells your analytics "this visit came from a campaign". On an internal link that is not true, and it can replace the real source of the visit.
Leave search and social posts you do not control alone. An untagged click from Google or LinkedIn is already recognised from the referrer. Tag the links you place yourself, such as ads, emails and the link in your bio.
Ad click ids
Google Ads and Microsoft Ads can add their own id to the link, gclid and msclkid. Spreelytics
reads both. A visit carrying gclid from Google counts as Paid Search even without a medium.
Where to read them in Spreelytics
Open Web analytics and find the Acquisition card. Channels and Sources show the result of the rules above. The UTM Source, Medium, Campaign, Term and Content tabs show the raw values you tagged, which is where a typo becomes obvious.
Click any row to filter the whole page to it. If you connected a payment provider, the same tabs can show the revenue each campaign earned. See Revenue.
A checklist before you send
- Source names the place, medium names the kind of traffic.
- The medium is one of the values in the table above.
- Everything is lowercase, with hyphens instead of spaces.
- The campaign name matches the one your team already uses for this push.
- You clicked the final link once and saw the visit arrive in Realtime.