UTM Parameters Explained: How to Track Every Campaign in GA4
8 min read
Every marketing dollar leaves a trail, but only if the links you share carry the right labels. Without them, Google Analytics 4 lumps newsletter clicks, social posts and partner links into broad buckets such as direct or referral, and you can't tell which message actually brought the visitor. UTM parameters fix this. They're small tags added to the end of a URL.
This guide explains each parameter, shows a naming convention you can keep for years, walks through building tagged links, and points to the GA4 reports where the data appears. It also covers the mistakes that quietly corrupt reporting, so you can avoid them before a campaign goes live. All you need is a spreadsheet and a little discipline.
What UTM parameters are and why they matter
A UTM parameter is a piece of text added to a web address after a question mark. The visitor sees the same page either way. The tag only tells your analytics tool where the click came from and which campaign produced it. The name comes from Urchin Tracking Module, the software Google later turned into Google Analytics. Think of it as a label on a parcel: the contents stay the same, but everyone handling it knows where it started.
GA4 can often work out the source of a visit on its own, for example from the referring website or a search engine. It does this poorly for links you place in emails, social posts, QR codes, PDFs, messaging apps and some paid ad platforms. Those visits may be filed as direct traffic, which hides what really drove the result. Tagging records the origin at the moment of the click, so GA4 doesn't have to guess.
When someone clicks a tagged link, GA4 reads the tags and attaches them to the session, so you can compare channels, campaigns and creative variations in the same report. Over a few months this shows which efforts deserve more budget and which ones quietly waste it. The team also ends up working from the same labels, so nobody has to argue over whose numbers are right.
The UTM parameters GA4 understands
Source, medium and campaign do most of the work, and GA4 reads them on every tagged visit. Two more, term and content, add detail for paid search keywords and for telling similar links apart. Use all five when they add something and skip the ones that don't, since shorter links are easier to manage and less likely to contain mistakes. Beginners often add every parameter to every link, which makes URLs long and untidy without improving the analysis.
Each parameter is a name and value pair joined by an equals sign, and pairs are separated by an ampersand. A link ending in ?utm_source=newsletter&utm_medium=email&utm_campaign=spring_sale, for example, carries three tags. Keep values short, lowercase and free of spaces so they read cleanly in reports and survive copying between tools. Read the finished link aloud or paste it into a text editor, and missing ampersands or stray spaces become easy to spot.
- utm_source: where the traffic comes from, such as google, facebook, newsletter or partner_site
- utm_medium: the type of channel, such as cpc, email, social or paid_social
- utm_campaign: the promotion or initiative, such as spring_sale or webinar_june
- utm_term: the paid keyword or audience being targeted (optional)
- utm_content: the specific ad, button or link variation (optional)
Newer optional parameters
GA4 also recognizes utm_id, utm_source_platform, utm_creative_format and utm_marketing_tactic. They help when you import campaign cost data or run several platforms at once, but most small teams can ignore them. Start with source, medium and campaign, and add the others only when a specific reporting question calls for them. Your naming sheet stays small and your links stay readable.
Build a naming convention before you tag anything
UTM values are case sensitive. Email, email and EMAIL appear as three separate rows in GA4, and a single stray capital letter can split one channel into several. The fix is a written convention that everyone follows: lowercase only, underscores instead of spaces, and a fixed list of allowed values for source and medium. It sounds fussy, but it's the most effective habit for keeping GA4 reports clean as more people start building links.
Medium deserves the most care because GA4 uses it, together with source, to assign each session to a default channel group. Values such as cpc, email, social and paid_social are recognized and land in sensible groups. Invented values such as promo or blast usually end up under Unassigned, which makes channel reports harder to read and compare. If you're unsure how a value will be grouped, send a test click and check the channel group in the Realtime report before launch day.
Keep the convention in one shared spreadsheet with a tab for approved sources, a tab for approved mediums, and a log of every campaign name already in use. A new team member should be able to tag a link correctly by copying an existing row, with nobody explaining the system to them. Review the sheet every quarter and retire names you no longer use, so the approved lists stay short enough that people actually follow them.
- Use lowercase letters, numbers and underscores only
- Pick one spelling for each source and never vary it (facebook, not fb or Facebook)
- Put a date or quarter in campaign names, such as brand_awareness_2026q4
- Describe the offer or goal in the campaign, not the platform
- Never place personal data such as email addresses in any value
How to build a tagged link step by step
Start with the exact destination URL, including https and any path. Choose the source, medium and campaign from your approved lists, then add content or term if you need to separate variations. Join the tags to the URL with a question mark for the first one and ampersands for the rest, with no spaces anywhere in the finished link. Check the destination first. A perfectly tagged link that leads to a broken or redirected page wastes the click.
You can type this by hand, but a builder reduces typos. Our free UTM builder at /tools/utm-builder/ lets you fill in the fields, applies consistent formatting and produces the finished link to copy. Whichever method you use, paste the result into your tracking spreadsheet before you publish it, so the record exists from day one. Many teams add columns for the owner, the channel and the launch date, which makes later audits much faster.
Test every new link once. Open it in a browser, confirm the page loads normally, then check the GA4 Realtime report to see the session arrive with the source and medium you expected. Two minutes of testing costs far less than running a whole campaign on data you can't use. If the session shows up as direct or with the wrong source, fix the link now, before the campaign reaches a real audience.
Handling links with existing parameters or anchors
If the destination already contains a question mark, join your first tag with an ampersand instead. If it contains a hash anchor, place all UTM tags before the hash, because browsers don't send anything after it to the server. Long links can be shortened for social posts, as long as the short link redirects to the full tagged address.
Where to find UTM data in GA4
For a quick overview, open Reports, then Acquisition, then Traffic acquisition. By default the table is grouped by session default channel group. Use the dropdown above the first column to switch to Session source / medium or Session campaign, and your tags appear directly as rows you can sort and compare. Set the same date range when you compare campaigns, and allow a little time for processing before drawing conclusions.
For deeper questions, use Explore to build a free form table. Put campaign, source or medium in rows, and sessions, engaged sessions, key events and revenue in values. From there you can compare creative variations through utm_content, or see which campaign produced form submissions as well as visits. Save the table as an Exploration so you can reopen it each month without rebuilding it, and share it with colleagues who need the same view.
GA4 only shows results for events you've marked as key events. If a campaign shows traffic but no conversions, check the conversion setup before concluding that the campaign failed, because tagging and conversion tracking need each other. It also helps to name key events clearly, such as form_submit or purchase, so campaign comparisons read like plain business questions.
Common UTM mistakes that break reporting
The most damaging error is adding UTM tags to internal links, such as a banner on your homepage pointing to a product page. When a visitor clicks it, the tags can replace the original source of the session and credit your own site for a result that an ad or email really earned. Use event tracking for internal clicks instead. The same problem appears when a team member copies a tagged link from an old campaign into a new page, so teach people to start from clean URLs.
Google Ads causes its own trouble. Auto-tagging adds a click identifier that GA4 uses to import campaign details, so you generally don't need manual UTMs on Google Ads links. Adding them can create duplicate or conflicting labels unless you know exactly why you're doing it. If you do use manual tags there, choose the settings that allow overriding auto-tagged values deliberately, and document the decision for whoever inherits the account.
Then there's drift over time. A campaign tagged one way in January and another in March splits its history across rows. Review your acquisition report monthly and look for near duplicate values that signal drift, then correct the naming sheet and brief everyone who builds links. A short checklist before every launch covering lowercase values, correct medium, tested link and logged row prevents most of these errors.
- Mixed capitalization creating duplicate rows
- Spaces or special characters that encode awkwardly
- Tagging internal links on your own site
- Forgetting to tag emails, QR codes and offline materials
- Using one campaign name for several unrelated promotions
Make UTM tracking a habit
Good tagging depends on process. Assign one person to own the naming sheet, require every outbound link to be logged before it's published, and review the Traffic acquisition report at a fixed time each month. Small routines keep the data trustworthy long enough to use for planning. A simple system that everyone follows will outperform an elaborate one that only a single person understands.
Dynamic Growth is automated software, and its Tracking Health Check scans your site URL for detected tags and missing events. That is a quick way to confirm GA4 is installed and your key events exist before you start tagging campaigns. It does not read your GA4 account or your campaign links, so the naming sheet stays your job.
Frequently asked questions
Do UTM parameters hurt SEO?
UTM tags don't affect how search engines rank your pages when used on links you share in campaigns. Pages should include a canonical tag pointing to the clean URL so tagged versions aren't treated as duplicates. Avoid tagging internal links, since that is where tags can cause real confusion in your analytics.
Are UTM parameters case sensitive in GA4?
Yes. GA4 treats values with different capitalization as separate entries, so Facebook and facebook show as two rows. Pick lowercase for everything, document it in a shared naming sheet, and use a link builder that enforces the format so team members don't introduce variations by accident.
Do I need UTMs on Google Ads links?
Usually not. Google Ads auto-tagging passes a click identifier that GA4 uses to report campaign details, provided your Google Ads and GA4 accounts are linked. Manual UTMs on Google Ads links are only needed in special cases, and they can override auto-tagged data if configured carelessly.
Why does my tagged traffic show as direct or unassigned?
Direct usually means the tags were lost, for example through a redirect that strips parameters or a link shortener that doesn't pass them. Unassigned usually means the medium value doesn't match a recognized channel rule. Test the link, check redirects, and use standard medium values such as email, cpc or social.
How long does it take for UTM data to appear in GA4?
Realtime reports show tagged visits within minutes, which makes them ideal for testing. Standard reports can take several hours to fully process, and some data may update for up to a day. Wait before judging a new campaign, and use Realtime only to confirm the tags arrive correctly.