UTM naming conventions for ecommerce campaigns
For where this sits in the wider ecommerce marketing technology stack, see the index. This page is about tagging and naming, not the tool that reads the tags.
What does it do?
A UTM parameter is a tag added to a link. It tells analytics tools where a visit came from.
The three that matter most are utm_source (where: a platform or site), utm_medium (how: email, paid social, and so on) and utm_campaign (which campaign).
Values are case-sensitive, so utm_source=google and utm_source=Google are different values1. Missing UTM parameters result in "(not set)" values in reporting1.
What should a UTM naming convention include?
Google's own best-practice list is a good skeleton1:
- Source. One value per platform, such as fb for Facebook and insta for Instagram.
- Medium. One value per channel, such as paid_social or organic_search.
- Campaign. One name that matches the exact campaign name in the ad platform, so one effort does not split into several rows.
- Case. Lowercase as standard practice.
- Dynamic values. Where a platform supports dynamic parameters, use them to avoid typing errors.
Our view: write the whole rule on one page.
Reports built on these tags decide how attribution looks. Attribution assigns credit for a purchase to the clicks and touchpoints before it. If the tags are inconsistent, the credit goes to the wrong rows. A session in GA4 is a period of user activity, and the traffic source on it comes from these tags or from auto-tagging.
Auto-tagging. Google Ads can tag clicks for you. Google's help says auto-tagging adds a parameter called GCLID (Google Click Identifier) to the URL after someone clicks your ad, and that it is on by default for new accounts2. If a link carries both, Google Analytics uses the auto-tagged values for source, medium and other traffic-classification dimensions3. Google Ads Help adds that in GA4 auto-tagging is prioritised over manual tagging, with no override option2. Where the GCLID cannot be used as intended and any UTM parameter is present, Google Analytics takes all cross-channel traffic-source values from the UTM parameters alone3.
Why do e-commerce brands use it?
Because every channel report depends on it. If emails, social posts, influencers and partner links arrive with random names, the channel report is unreadable.
It is also one of the cheaper tracking fixes: no code, no developer, no new tool.
How do we implement it?
Write the rule
One page: values for source, medium and campaign, in which case, with which separators. Three simple parameters, used every time.
Decide per channel
Choose auto-tagging or manual tags for each channel, not both. Tag where traffic enters, not on internal links.
Apply it everywhere
Every link, including emails and influencer briefs. Someone on your team owns the rule, and new people and agencies use it.
Check the report
Look regularly for stray values and "(not set)".
When should you not use it?
Do not rely on manual source and medium for Google Ads links with auto-tagging on: GA4 prioritises auto-tagging2.
Do not tag internal links.
Do not build a convention nobody will follow. Our view: three simple parameters used every time beat ten fields used sometimes.
What does it cost in effort?
No figures. The effort is:
- Agreeing the rule. One short document: which values for source, medium and campaign, in which case, with which separators. Keep it in one place everyone can open.
- Applying it. Every link, every time, including the ones in emails and influencer briefs.
- Checking. Look at the channel report regularly for stray values and "(not set)".
- Teaching. New team members and agencies must use the same rule.
Pitfalls
Case differences
Google treats "Meta" and "meta", or "SpringSale" and "Spring_Sale", as distinct values1. Add "FB" from another colleague and one channel becomes three rows.
Missing parameters
Leave one out and the report shows "(not set)"1.
Tagging links inside your own site
Our view: internal links with UTM tags can overwrite the real source of a visit. Tag where the traffic enters, not where it moves.
Mixing auto-tagging and manual tags
On a link with both, GA4 uses the auto-tagged values for source and medium3. Decide one approach per channel.
Free-text campaign names
Names like "summer_final_v2" mean nothing a few months later. Our view: put a date or an ID in the name.
Treating tagged traffic as proof
A tag records where a visit came from. It does not show whether the ad caused the sale.
Our take: Core
In our view, UTM naming and auto-tagging are Core. That is our rating, not a market fact.
Our reasoning: Google tells you to always use the three main parameters and to keep a strict, case-sensitive naming convention1, and every channel analysis downstream relies on them. This is a foundation, not an option.
Core does not mean complete. UTM tags tell you where a click came from. They do not tell you whether the ad caused the order. For that, see data-driven attribution for how Google models paths, and tests for cause.
FAQ

What are the main UTM parameters?
utm_source, utm_medium and utm_campaign. Google's Analytics Help says you should always use all three1.
Are UTM values case-sensitive in GA4?
Yes. Google says utm_source=google is different from utm_source=Google, and recommends lowercase as standard practice1.
What does "(not set)" mean in a campaign report?
GA4 had no value for that field. Google's help says missing parameters appear as "(not set)"1.
What is auto-tagging?
Auto-tagging vs UTM: which one does GA4 use?
Who should own the naming rule?
Someone on your team, written down in one place. If you want help setting it up, see our analytics and tracking service.
Sources
Let’s find what’s actually working.
Next step. Want a second pair of eyes on your tagging? Talk to us about your setup.