Google Analytics Campaign Tracking: A UTM Setup Guide

47.3%of all websites use Google Analytics (W3Techs)
550%increase in conversions McDonald's Hong Kong reported after connecting campaign data to Google Ads audiences (Google Marketing Platform)
63%decrease in cost-per-action for that same campaign segment (Google Marketing Platform)
Two map-pin shapes for Google Analytics campaign tracking: one verified with a dark checkmark, one flagged as unidentified with a crimson marker

Most Google Analytics campaign tracking problems trace back to one habit. Marketers send traffic without tagging it. The fix is a consistent UTM naming system, built once and used on every link, so every channel shows up as real data instead of “(not set).”

Key Takeaways

  • Google’s own guidance is direct: “you should always use utm_source, utm_medium, and utm_campaign” on every tagged link (Google Analytics Help). Skip one, and that traffic loses its label.
  • UTM values are case-sensitive. “Google” and “google” become two separate rows in your reports (Google Analytics Help), splitting one channel’s data in two.
  • GA4’s default channel grouping sorts traffic into named channels like Organic Search, Paid Search, Referral and Paid Social, using rules your tags feed into (Google Analytics Help).
  • McDonald’s Hong Kong paired Google Analytics 4 data with Google Ads audiences. It reported a 550% increase in conversions and a 63% drop in cost-per-action for its targeted segment (Google Marketing Platform).
  • Across industries, Google Analytics is used on 47.3% of all websites, according to W3Techs. Most of what you learn here transfers directly to other tools your team may already use.

In this guide

Why Google Analytics Campaign Tracking Breaks Down

Campaign tracking is simple in theory. Add a few parameters to a link. Let Google Analytics read them. In practice, most accounts have gaps. Some links are tagged. Some are not. The tags that do exist are often inconsistent.

The result is a report full of “(not set)” rows and duplicate channels that should be one. Marketers then distrust the data. They stop checking it. They make budget decisions on gut feeling instead. That is the real cost of weak Google Analytics campaign tracking: not the missing rows themselves, but the decisions made without them.

This guide treats Google Analytics campaign tracking as a system, not a one-off task. It covers a naming convention, a way to build tagged links at scale, and a short list of checks before any campaign goes live. Treat every benchmark below as a reference point, not a target. Your own baseline, tracked consistently, matters more than any industry average.

The payoff is not just tidier reports. Clean Google Analytics campaign tracking lets you compare channels fairly. A channel that looks weak might simply be undercounted because of missing tags, not because it actually performs worse. Fix the tagging first, and every decision built on that data gets more reliable too.

How Google Analytics Campaign Tracking Actually Works

When someone clicks a tagged link, the browser sends the URL to your website, parameters included. Google Analytics reads those parameters on that first page view, then stores them against the session.

Five parameters do almost all the work, based on Google’s own campaign URL builder documentation:

  • utm_source. Where the traffic came from: a platform name like “newsletter” or “google.”
  • utm_medium. The general channel type: “email,” “cpc,” “social,” or similar.
  • utm_campaign. The specific campaign name, kept identical everywhere it is used.
  • utm_term. The paid keyword, mainly used for search ads.
  • utm_content. A label that tells two similar links or creatives apart.
Checklist for Google Analytics campaign tracking showing utm_source, utm_medium and utm_campaign, the three required parameters
Google Analytics campaign tracking needs these three parameters on every tagged link.

Google’s own guidance is specific here. Always set utm_source, utm_medium and utm_campaign together. Leave one out, and Analytics cannot classify the visit properly. It falls into “(not set)” instead of a real channel.

A Step-by-Step Way to Tag a New Campaign

Use the same five steps every time you launch a new campaign. Consistency matters more than speed here. A shortcut taken once usually gets repeated on every link after it.

  1. Name the campaign first, before building any links. Write down the exact utm_campaign value you will use everywhere, so nobody improvises a slightly different version later.
  2. List every channel sending traffic to this campaign. Email, paid social, organic social and any partner sites each need their own utm_source and utm_medium pair.
  3. Build each link with the Campaign URL Builder. Paste in the destination page, then the agreed source, medium and campaign values for that specific channel.
  4. Store every finished link in one shared place. A spreadsheet works fine. The point is that nobody has to guess or rebuild a tag from memory.
  5. Click-test each link before it goes live. Confirm the destination page loads and the parameters survive any redirects your link shortener might add.

This sequence takes a few extra minutes per campaign. It is far faster than untangling a month of “(not set)” traffic after the fact. Treat the five steps as a short checklist you run every time, not a one-time setup task you do once and forget.

How Tags Turn Into Channels

Your UTM tags do not appear in reports as raw text forever. GA4 reads them and sorts each session into a channel, using its default channel grouping rules.

Organic Search covers visits that arrive through non-ad links in search results. Paid Search covers visits from ads on a search engine. The difference usually comes down to one thing: whether your ad platform’s auto-tagging, or your own utm_medium value, marks the click as paid.

Referral vs. Direct

Referral covers non-ad links on other sites, like a blog post or news article. Direct covers a saved link or a typed URL, with no referring information at all. A missing or broken UTM tag can push traffic into Direct by mistake. That hides a real source behind a channel that looks like it needs no more analysis.

Paid Social covers ads on social platforms. Organic Social covers unpaid links on those same platforms. Both channels share the same platform name, so utm_medium is what actually separates a paid post from an organic one in your reports.

Build One Naming System Before You Tag Anything

Most Google Analytics campaign tracking problems are naming problems, not technical ones. Agree on the rules once. Write them down. Share them with anyone who builds a marketing link: the freelancer running your social ads, the agency sending email campaigns, and anyone on your own team.

A written convention also survives staff changes. When someone new joins the team, a one-page naming guide saves months of rebuilding institutional knowledge about how campaigns are supposed to be tagged.

  1. Lowercase everything. UTM values are case-sensitive, so “Newsletter” and “newsletter” become two separate rows. Lowercase avoids the split entirely.
  2. Use a fixed list of mediums. Keep a short approved list (“email,” “cpc,” “social,” “affiliate”) so nobody invents a new one-off label.
  3. Keep campaign names identical everywhere. The same campaign tagged two different ways becomes two campaigns in your reports.
  4. Use utm_content for A/B tests. If two links point to the same page from the same campaign, utm_content is what tells them apart later.
Four rules for Google Analytics campaign tracking: lowercase everything, use a fixed list of mediums, keep campaign names identical, use utm_content for A/B tests
A written naming system is what makes Google Analytics campaign tracking reliable over time.

Once the rules exist, building links becomes mechanical. A shared spreadsheet, or Google’s own Campaign URL Builder, is enough for most teams. The naming system is what prevents the mess, not the tool you use to apply it.

If Analytics is one tool among several in your stack, our guide to a martech stack your team will actually use covers how to connect them without duplicating work.

Common Google Analytics Campaign Tracking Mistakes

The mistakes below show up across accounts of every size, from a single-person side project to a large in-house marketing team. None of them need advanced technical skill to fix. That is exactly why they are worth checking first.

Mistake: Tagging Only Some Links

One tagged email and one untagged social post from the same campaign makes the campaign look smaller than it is. Tag every outbound marketing link, not just the ones that feel important at the time.

Mistake: Inconsistent Capitalisation

“Spring_Sale” and “spring_sale” read as two campaigns to Google Analytics. Lowercase, fixed naming removes this problem before it starts.

Mistake: Double-Tagging Google Ads Links

Google Ads has its own auto-tagging system, which adds a gclid parameter to every ad click automatically. Adding manual UTM parameters on top of it can conflict with auto-tagging and distort attribution. Let Google Ads auto-tag its own links. Save manual UTM tags for channels outside Google Ads.

Mistake: No Review Before a Campaign Goes Live

A single typo in utm_campaign can scatter a week of traffic across several near-duplicate rows. A 30-second check against the agreed naming list, before a link goes live, catches this before it costs you any data.

Some link shorteners and some social platforms drop or rewrite query parameters during a redirect. Click-test every shortened link once, after shortening, and confirm the final destination still carries the full tag. Catching this once saves rediscovering the same bug on every future campaign.

Mistake: Ignoring Internal Site Promotions

A homepage banner or an internal email footer is still a campaign. Without a tag, clicks on it show up as ordinary site navigation, hiding whether that promotion actually moved anyone. Treat internal placements the same way you treat external ones: name them, tag them, and track them.

What to Check Once Campaign Tracking Is Live

Each of these answers one specific question about whether your tagging setup is actually working.

Four Checks That Show If Tracking Is Healthy

  • Share of sessions as “(not set).” A rising share means links are going out untagged, or a tag is malformed somewhere in the chain.
  • Channel grouping accuracy. Spot-check a few sessions in each channel against where the traffic should actually belong.
  • Campaign name consistency. Search your campaign report for near-duplicate names; each one is tagging drift you can fix at the source.
  • Source/medium combinations. Review this report for clearly wrong pairings, like a known paid channel appearing under an “organic” medium.

Reading These Checks Together

Start with the “(not set)” share. It is the clearest sign something upstream is broken. Then check for duplicate campaign names; those usually point to a specific team or channel that needs the naming rules repeated. Source/medium pairings are the finer-grained check, worth a look once the first two are under control.

If a whole channel looks underfunded once tracking is clean, our guide to choosing and funding each marketing channel covers what to do with that finding.

Connecting Campaign Tracking to the Rest of Your Reporting

UTM tags are not only for Google Analytics. Once tagging is consistent, the same data strengthens reporting in other tools your team already checks.

Google Ads Cost Data

Linking a Google Ads account to Analytics imports cost and click data alongside your on-site behaviour data. This only lines up cleanly when Google Ads auto-tagging is active, and your other channels follow the same naming rules, so campaigns match across both tools instead of appearing as separate, unrelated rows.

Search Console for Organic Context

Search Console data shows the queries and pages driving organic search traffic, sitting alongside the Organic Search channel your UTM-based tagging never needs to touch. Reviewing both together shows whether a paid campaign is cannibalising clicks that would have arrived for free, or genuinely reaching a new audience.

CRM and Offline Conversions

If leads move into a CRM, passing the original utm_campaign value along with the lead record lets you trace a closed deal back to the exact campaign that started it, not just the last channel someone clicked before converting. This is the step most small teams skip, and the one that most directly ties Google Analytics campaign tracking to revenue.

It also needs the least new technology. A hidden form field that captures the current URL’s UTM parameters, stored against the lead, is often enough. The harder part is deciding, as a team, which campaign gets credit when a deal took months and touched several channels along the way. That is a policy decision, not a tracking one, and it is worth agreeing on before the data forces an awkward debate.

The One Decision Rule: Fix the Tag, Not the Report

If you remember one rule from this guide, make it this one. When a campaign’s numbers look wrong, check the UTM tag before you question the data.

Here is an illustrative example, with invented numbers. A paid social campaign shows 200 sessions in Analytics, far below what the ad platform reports. Someone suspects a tracking bug and spends a day investigating pixel setup.

The real cause turns out to be a missing utm_medium on half the ad variations, which sent that traffic into Direct instead of Paid Social. Fixing the tag, not the dashboard, solves it in minutes once someone checks the actual link. The lesson generalises: most apparent tracking failures in Google Analytics campaign tracking are tagging failures wearing a different costume.

Illustrative bar chart showing Google Analytics campaign tracking sessions rising from 200 to 950 after a missing utm_medium tag was fixed, against an ad platform figure of 1,000
Illustrative, invented numbers: one missing tag was the entire gap in this Google Analytics campaign tracking example.

A Real Case: McDonald’s Hong Kong and Campaign-Level Data

According to Google Marketing Platform’s own case study, McDonald’s Hong Kong connected Google Analytics 4 data from its ordering app to Google Ads audiences. Those audiences were built around customers likely to purchase within seven days.

For that specific audience segment, the company reports a 550% increase in conversions, a 63% decrease in cost-per-action, and a 560% increase in revenue. The work compressed months of manual analysis into about two weeks.

Treat the figures as a vendor-published success story, not an independent audit. Google has an interest in promoting its own platform’s results, and the case study does not disclose the campaign’s total budget or a comparison against a control group. The underlying lesson still holds regardless: clean, consistently tracked campaign data was the precondition for everything that followed.

Without reliable Google Analytics campaign tracking feeding it, there is no audience to export and no segment to target in the first place. The predictive model McDonald’s used could only be as accurate as the tagged data it learned from.

Frequently Asked Questions About Google Analytics Campaign Tracking

What are UTM parameters used for in Google Analytics?

UTM parameters are tags added to a URL that tell Google Analytics where a visitor came from. The three required ones are utm_source, utm_medium and utm_campaign. utm_term and utm_content add more detail for paid search and creative testing.

Why does my Google Analytics report show “(not set)” for source or medium?

“(not set)” means Analytics received the visit but could not identify where it came from. Usually a link was missing one or more UTM parameters, or a tag was malformed. Check the specific links driving that traffic first.

Do I need to tag links from Google Ads manually?

No. Google Ads auto-tagging already passes campaign data to Analytics through its own system. Adding manual UTM parameters on top can conflict with it, so reserve manual tagging for channels outside Google Ads, like email and social.

Are UTM parameters case-sensitive?

Yes. Google Analytics treats “Newsletter” and “newsletter” as two different values, which splits one channel’s traffic into two rows. A simple lowercase rule across your team prevents this.

What is the difference between utm_source and utm_medium?

utm_source names the specific place the traffic came from, like “newsletter” or “facebook.” utm_medium names the general category it belongs to, like “email” or “social.” Both are needed to classify traffic correctly.

How do I build a tagged URL without making mistakes?

Agree on a naming convention first: lowercase values, a fixed list of mediums, and identical campaign names across every channel. Then use a shared spreadsheet or Google’s own URL builder tool to apply those rules consistently.

Can I fix “(not set)” data after a campaign has already run?

No, not fully. Analytics could not identify the source at the time of the visit, so that specific history stays unlabelled. You can only prevent it going forward, by tagging every link on the next campaign correctly.

Does Google Analytics campaign tracking work the same way across different tools?

The UTM parameters themselves are a shared, open standard, so most analytics tools read them the same way. What differs between tools is how each one groups source/medium values into named channels. Always check a new tool’s channel-grouping rules before trusting its reports.

How many UTM parameters should every link include?

Three, at minimum: utm_source, utm_medium and utm_campaign. Add utm_term for paid search keywords and utm_content when you need to tell two similar creatives or links apart within the same campaign.

Who should own Google Analytics campaign tracking on a small team?

One person, even informally. Tagging drifts quickly when it is everyone’s job and no one’s responsibility. Naming a single owner to review new links and update the shared naming list keeps the system consistent as the team grows.

Start With One Naming Convention, Then Tag Everything

Google Analytics campaign tracking rarely fails because of the tool. It fails because tagging is inconsistent, or missing, across the links a team actually sends. Agree on a naming system, apply it to every outbound link, and check the “(not set)” share regularly to catch drift early.

Start small if the backlog feels overwhelming. Fix tagging on your next campaign first, rather than trying to retag months of old links at once. For the wider picture of where your traffic comes from, see our guide on website traffic and how to grow each source.

If you want guided, hands-on practice with analytics systems like this, Digital Marketing Skill Institute teaches it inside the Master Diploma in Digital & AI Marketing, through its AI-Powered Google Specialist track. It is one of four AI-powered tracks built from ten execution-first courses, with a Full Stack option to complete all four.

It includes unlimited 1-on-1 coaching and mentoring, plus a U.S. Project Internship with a partner company from day one, with a verified U.S. Work Reference Letter. The diploma is dual US and UK accredited, and recognised in more than 100 countries.

The programme is fully online, so you can build these skills from anywhere in your country. Explore more guides on the Digital Marketing Skill Institute blog, read student outcomes on the reviews page, and when you are ready, apply for the Master Diploma or start from the Digital Marketing Skill Institute homepage.

Every figure in this guide was checked against its original source before publication. Figures marked as illustrative are invented examples, not real results.

Our Master Diploma in Digital & AI Marketing

Where these skills can take you

Work remotely

Earn in dollars, pounds or euros from companies and clients abroad, without leaving home.

Relocate with your family

Build the steady remote income many digital nomad visas ask for.

Work towards a second passport

In some countries, long-term residence can lead to citizenship for you and your family.

Apply for 65% Partial Scholarship 4.8/5 from 3,300+ Google reviews

Visa and citizenship rules vary by country. Individual results vary.

More from the blog