Module 4: UTM tracking for every campaign
UTMs are the free, universal way to label your links so analytics tells you exactly which email, post, or ad produced each visitor. Ten minutes to learn, useful forever.

How UTM parameters work
A UTM-tagged link looks like this: yoursite.com/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=march_promo. The part after the ? is invisible to visitors but tells GA4 exactly where the click came from. Three parameters do 95% of the work: utm_source (who sent it: newsletter, facebook, google), utm_medium (how: email, social, cpc), utm_campaign (which effort: march_promo, launch_week).
A real example of why this matters: a business ran a "spring sale" email with clean UTMs, but their homepage banner linking to the same sale page also had UTMs. Every visitor who clicked the banner got re-attributed to the banner instead of their true source — weeks of channel data, quietly corrupted. One stray tagged internal link can poison a whole month of reports.
UTM NAMING CONVENTION
source: where (newsletter, instagram, google)
medium: how (email, social, cpc, referral)
campaign: what (spring-sale-2026, launch-week)
RULES: all lowercase, hyphens not spaces, never change a name once used.
EXAMPLE: ?utm_source=newsletter&utm_medium=email&utm_campaign=spring-sale-2026
The three parameters that do 95% of the work
utm_source
- Who sent it: newsletter, facebook, google
utm_medium
- How: email, social, cpc
utm_campaign
- Which effort: march_promo, launch_week
Build brief
List every place you promote your business online — email, social profiles, ads, directories. Which of these have you never been able to measure properly?
Saved
Tagging discipline: email, social, and ads
Make UTM tagging a non-negotiable step in your publishing checklist. Every email campaign gets a utm_campaign named for the send (e.g., 2026-03-cost-guide). Every social platform gets its own utm_source (facebook, instagram, linkedin) so you can compare them honestly. Paid ads: Google Ads auto-tagging handles most of it (enable it in your Google Ads account under Account Settings), but tag Meta and other ad links manually.
For QR codes on print materials (flyers, business cards, truck signage), UTMs are essential — they're the only way to measure offline-to-online. Generate the tagged URL first, then create the QR code from it: utm_source=flyer&utm_medium=print&utm_campaign=spring_2026. You'll finally know whether the flyers work.
Start the log today even if you only have three links — the habit matters more than the backlog. And when someone else on your team starts creating links (a VA scheduling social posts, a designer ordering flyers), the log plus your naming-conventions doc becomes their onboarding. Tagging discipline scales only if it's written down somewhere other than your head.
Decide once
Clean tagging vs. messy tagging
| Clean tagging | Messy tagging | |
|---|---|---|
| Email medium | Always “email” | “Email,” “e-mail” — three channels in GA4 |
| Campaign name | Named for the send | Vague or missing |
| The log | Date, URL, tagged link, placement | “Which link was that?” |
Tagging "Email", "email", and "e-mail" as three different mediums. Inconsistent UTM naming fragments your data into dozens of tiny buckets that can't be compared. Decide the exact spellings once, write them down, and never improvise — "email" is always lowercase "email", forever.
Build brief
Think of your last promotion or campaign. How did you decide whether it actually worked?
Saved
Reading campaign results in GA4
In GA4, go to Reports → Acquisition → Traffic acquisition, then change the table's primary dimension to "Session campaign" or "Session source/medium." Now you see every tagged campaign ranked by sessions, conversions, and revenue. This is where UTMs pay off: "march_promo email drove 40 quote requests; the Facebook version drove 6."
Compare cost against return. If you spent $500 on Meta ads (tagged utm_source=facebook&utm_medium=cpc) and they produced 10 quote forms worth ~$300 each in expected value, that's $3,000 of pipeline for $500 — scale it. If a channel produces clicks but zero conversions for two months, pause it and reallocate. These are the monthly decisions from Module 1, now backed by clean data.
One caveat: last-click attribution (GA4's default) credits the final touchpoint. A customer might discover you via blog, return via email, then convert via direct visit — GA4 credits "direct." Take channel comparisons as directional, not gospel, and give upper-funnel content (blog, social) credit for assists, not just last clicks.
When a channel looks like a loser on last-click, check its assist value before killing it: in GA4's Advertising section, the conversion paths report shows how often each channel appears earlier in journeys that convert. A blog that never gets the final click but appears in half of all converting journeys is doing real work — cutting it would starve the channels that do get credit.
Where UTMs pay off
One campaign, two channels
Example for illustration — not real results.
Channel ROI calculator
Play with the numbers — everything updates live.
Total pipeline value:0
Cost per conversion:0
Return multiple:0
Write your UTM naming convention in a doc and tag your next email or social post with it. One tagged campaign today proves the system works before you need it at scale.
Where should you NOT use UTM parameters?