The Ecomm Analyst

Growing stores, one honest take at a time.

The UTM audit every Shopify brand should run quarterly

UTMs are the boring fix for half of your attribution problems. Nobody wants to write a blog post about them. Nobody wants to read one either. Every time I dig into a new client’s attribution, the first 90 minutes is a UTM mess, and fixing that alone tends to recover a meaningful chunk of the “direct/none” traffic that was actually paid or referral traffic in disguise.

This is the audit I run quarterly on my own site and recommend to anyone setting up attribution for the first time.

The audit, step by step

Pull the last 90 days of UTM source and medium values from your analytics platform. Sort by sessions descending. Look at the top 30 rows.

What you’re checking for.

Inconsistent casing. “Facebook” and “facebook” and “FaceBook” are three different sources in your reports. Same for “email” vs “Email” vs “EMAIL”. Pick a casing convention (I use lowercase) and stick with it.

Missing source or medium. Anything that says “(not set)” or shows up as direct/none when it shouldn’t. The biggest offenders here are usually email tools without UTMs in the link template, influencer links pasted without parameters, and SMS sends that go through a short-link service that strips the UTMs.

Inconsistent naming for the same channel. I once audited an account that had paid Facebook traffic showing up under fifteen different source/medium combinations. facebook/cpc, fb/paid, meta/cpc, facebook/social-paid, and so on. The data was technically there. It was unusable for reporting.

Branded vs non-branded search confusion. If you’re not segmenting paid search into branded and non-branded campaigns at the UTM level, you can’t separate them later. Branded search will mask your real prospecting performance.

Campaign-level chaos. Campaign names that are timestamps, or all caps, or include the budget in the name. Pick a campaign naming convention that future-you can parse.

What to do about it

Write a UTM convention document. One page. Spell out the exact format for source, medium, campaign, content, and term across each channel. Then make sure every link generator your team uses (Klaviyo flows, Postscript SMS, ad platforms, blog posts, partnership links) follows that convention.

The convention I use looks something like this.

  • source, lowercase, no spaces (facebook, google, klaviyo, postscript)
  • medium, from a fixed set (cpc, email, sms, social, referral, affiliate)
  • campaign, lowercase, hyphenated, includes channel and intent (fb-prospecting-newcustomer-2026q1)
  • content, ad variant or email name
  • term, keyword for paid search, otherwise blank

This is not glamorous. It’s also the cheapest way to materially improve your attribution data.

How this connects to your attribution stack

A good attribution tool doesn’t fix your UTM problems for you. It can be smart about what direct traffic probably is, using referrer, time-on-site, and other signals to back-fill probable sources. It can’t tell you that a particular session was your influencer campaign launch versus generic Instagram traffic. The UTMs have to carry that information in the first place.

In ThoughtMetric, the channel breakdowns are only as clean as the UTMs feeding them. The platform will dedupe and normalize where it can. It won’t invent data that wasn’t captured. The brands I see getting the most value out of any attribution tool, ThoughtMetric included, are the ones that fixed their UTMs first.

The quarterly habit

Set a recurring 30-minute calendar block once a quarter. Pull the report, scan the top 30 rows, fix what’s broken, update the convention doc if anything’s changed in your stack. That’s it. The first time you do it will take longer, probably a couple of hours. After that it’s maintenance.

Bottom line

You can buy the best attribution tool on the market and still have garbage data if your UTMs are inconsistent. Fix the boring upstream stuff first. Everything downstream gets better when you do.

Leave a comment

Navigation

About

Six years in e-commerce. Three Shopify stores across different niches, one scaled past seven figures. I’ve tested hundreds of ad creatives, obsessed over email flows, and learned more from my failures than my wins.

Now I focus on conversion optimization, retention marketing, and the analytics behind it all. This blog is where I share what actually works, backed by real numbers. No fluff, no guru energy.