This guide covers UTM tagging for ecommerce: why UTMs matter for attribution, the five UTM parameters explained, naming conventions, platform-specific tagging, common mistakes, and reporting in GA4.
1. Why UTMs Matter for Ecommerce Attribution
UTM parameters tell GA4 where your traffic comes from. Without them, a huge chunk of your traffic shows up as "direct" or "(not set)" in reports. And you cannot make smart budget decisions when you do not know which campaigns are driving sales.
For ecommerce specifically, UTMs are how you answer questions like: "Is my Meta prospecting campaign driving more revenue than my Google Shopping campaign?" or "Which email in my welcome series converts best?" Without consistent UTMs, you are guessing.
The challenge is not adding UTMs. Anyone can append ?utm_source=facebook to a URL. The challenge is building a consistent system that gives you clean data across every campaign, platform, and team member. That is what this guide covers.
2. The Five UTM Parameters Explained
There are five standard UTM parameters. Three are required. Two are optional but useful.
- utm_source (required): Where the traffic comes from. Examples: google, facebook, instagram, email, tiktok. This should be the platform name, not the campaign name.
- utm_medium (required): The marketing channel type. Examples: cpc, paid-social, email, organic-social, referral. This groups traffic by channel in GA4.
- utm_campaign (required): The specific campaign name. Examples: spring-sale-2026, prospecting-lookalike, welcome-series. This is where specificity matters.
- utm_term (optional): The keyword or targeting criteria. Useful for paid search to track which keywords drove the click. For social, you might use the audience name.
- utm_content (optional): Differentiates similar content. If you have two ads in the same campaign, use this to tell them apart. Examples: video-a, carousel-b, hero-image.
GA4 uses utm_source and utm_medium together to assign traffic to channel groups. If your utm_medium is "cpc," GA4 categorizes it as "Paid Search." If it is "paid-social" or "paidsocial," GA4 categorizes it as "Paid Social." Getting the medium wrong means traffic shows up in the wrong channel group.

3. Naming Conventions That Scale
The single most important thing about UTMs is consistency. "Facebook," "facebook," "fb," and "Facebook.com" are four different sources in GA4. They will never be grouped together unless you manually clean up the data.
Set these rules and share them with everyone who creates campaigns:
- Always lowercase. No exceptions. "Google" and "google" are different in GA4. Use lowercase everywhere: utm_source=google, not utm_source=Google.
- Use hyphens, not underscores or spaces. Spaces become %20 in URLs, which is ugly and error-prone. Underscores are fine technically but hyphens are more readable. Pick one and stick with it: spring-sale-2026, not spring_sale_2026 or spring sale 2026.
- Be specific but not granular. utm_campaign=facebook-prospecting-us-female-25-34-lookalike-march-2026 has too much information crammed into one parameter. Split it up: utm_campaign=prospecting-lookalike, utm_term=us-female-25-34, utm_content=march-2026.
- Document your conventions. Create a shared spreadsheet with approved values for source, medium, and campaign naming patterns. New team members should reference this, not make up their own conventions.
4. Platform-Specific Tagging Rules
Google Ads. Google Ads auto-tags clicks with a gclid parameter, so GA4 attributes Google Ads traffic automatically. You do not need UTMs for standard Google Ads campaigns if auto-tagging is on. But you can add them as a backup, and they are useful if you want more descriptive campaign names in GA4 than what Google Ads uses.
Meta (Facebook/Instagram). Meta does not auto-tag for GA4. You need UTMs on every ad. Use the URL Parameters field in Ads Manager at the ad level. A good template: utm_source=facebook&utm_medium=paid-social&utm_campaign={{campaign.name}}&utm_content={{ad.name}}. Meta's dynamic parameters (the curly brace syntax) auto-fill with the actual campaign and ad names.
Email. Tag every link in every email. Use utm_source=klaviyo (or your ESP name), utm_medium=email, and utm_campaign= the campaign or flow name. For automated flows, include the flow step: utm_campaign=welcome-series&utm_content=email-3.
TikTok. Similar to Meta. Use utm_source=tiktok, utm_medium=paid-social, and TikTok's dynamic macros for campaign and ad names.
Organic social. Tag links in your bio and posts with utm_source=instagram (or the platform), utm_medium=organic-social. This separates organic social traffic from paid.
5. Common UTM Mistakes
Inconsistent capitalization. This is the number one problem. "Facebook" and "facebook" split your data into two sources. Use lowercase everywhere. If you are using a URL builder tool, find one that auto-lowercases.
Adding UTMs to internal links. Never put UTM parameters on links within your own site (like navigation links or banner links). UTMs override the original traffic source. If someone arrives from a Google Ad and clicks an internal link with UTMs, GA4 starts a new session attributed to the UTM source, and you lose the Google Ads attribution.
Overly generic campaign names. utm_campaign=facebook-ad tells you nothing. What campaign? What objective? What audience? Use descriptive names: utm_campaign=spring-sale-retargeting or utm_campaign=new-arrivals-prospecting.
Not tagging email campaigns. Email is often the second or third biggest revenue channel for ecommerce. If your emails do not have UTMs, all that traffic shows up as "direct" in GA4. Every link in every email needs UTMs.
Using UTMs with Google Ads when auto-tagging is on. This usually works fine, but if auto-tagging and UTMs conflict (different campaign names), GA4 might use one or the other depending on your settings. Check Admin > Attribution Settings > Reporting attribution model in GA4. If you use both, make sure they are consistent.
6. Reporting on UTM Data in GA4
Once your UTMs are clean and consistent, GA4 gives you several ways to analyze the data.
Traffic acquisition report. Go to Reports > Acquisition > Traffic acquisition. Here you can see sessions by source/medium, with the ability to add secondary dimensions for campaign, term, and content. This is your go-to report for understanding which channels drive traffic and conversions.
Custom reports with campaign breakdown. In Explore (GA4's analysis section), create a free-form exploration. Add "Session campaign" as a dimension and "Purchase revenue" as a metric. You can break down revenue by campaign across all channels.
For ecommerce stores running ads on multiple platforms, the key report is: revenue by utm_source/utm_medium, compared against ad spend from each platform. This gives you a true cross-platform ROAS view. GA4 shows the revenue side. You pull spend from each ad platform's dashboard or use a tool like COREPPC's analytics dashboard that combines both.
One caution: GA4's attribution model matters here. By default, GA4 uses a data-driven attribution model, which distributes credit across touchpoints. If you want to see last-click attribution (to match what Google Ads reports), change the attribution model in Admin > Attribution Settings.
Frequently Asked Questions
For Google Ads specifically, auto-tagging handles the attribution in GA4. UTMs are optional as a backup. But you still need UTMs for every other platform: Meta, email, TikTok, organic social, etc. Auto-tagging only works for Google products.
It breaks your attribution. UTMs override the original traffic source. A visitor who arrived from a Google Ad but clicks an internal link with UTMs gets re-attributed to whatever source is in the UTM. Never use UTMs on links within your own site.
Use utm_source=influencer or the influencer's handle, utm_medium=paid-social or referral depending on the arrangement, and utm_campaign= the campaign name. Give each influencer a unique UTM link so you can track their individual performance.
Check Your Campaign Attribution
COREPPC's free audit shows you where your tracking has gaps and which campaigns are getting credit they do not deserve.
Start Free Audit
