top of page

UTM Parameters: How to Track Every Campaign in GA4

UTM parameters are short tags you add to the end of a link so Google Analytics 4 can tell you where each visit came from. Add them to the link you share on WhatsApp, in an email, or in an ad, and GA4 shows that traffic separately instead of lumping it under a vague "direct" or "referral". That is the whole job: they turn "someone visited" into "this visit came from my Diwali WhatsApp offer".

Most small businesses never tag their links, so their reports cannot tell them which channel actually brought buyers. This post shows you the three tags you must always use, how to build a tagged link by hand and with Google's free builder, the one rule that quietly breaks most reports, and a copy-and-fill naming sheet so your own links stay consistent.

Key takeaways

What they are: short tags on a link so GA4 can tell which source, channel and campaign sent each visitor.

Always use three: utm_source, utm_medium and utm_campaign, and set all three together.

Keep it lowercase: GA4 treats Email and email as two sources, which splits your reports.

Unassigned fix: use a standard utm_medium value (email, social, cpc, referral) so GA4 can file it.

What are UTM parameters?

A UTM parameter is a piece of text added to a URL after a question mark. Each one is a name and a value joined by an equals sign, and several are joined by an ampersand. When someone clicks the link, GA4 reads those values and files the visit under them.

Here is a tagged link:

https://www.example.com/?utm_source=summer-mailer&utm_medium=email&utm_campaign=summer-sale

Google reads that as: source is the summer mailer, medium is email, campaign is the summer sale. In your reports you then see exactly how much traffic and how many actions that one email drove.

The three you must always use

Google lists several UTM parameters, but three carry the load, and Google says to always use utm_source, utm_medium and utm_campaign together.

utm_source is where the click came from. Examples: google, newsletter, whatsapp, instagram.

utm_medium is the type of channel. Examples: cpc for paid search, email, social, referral.

utm_campaign is the specific push. Examples: diwali_sale, new_arrivals, launch.

Google warns that if you set one UTM and leave the others out, the missing ones show up as "(not set)" in your reports. So set all three every time, even for a simple WhatsApp link.

Two more are useful for ads: utm_term for a paid keyword and utm_content to tell two creatives apart, for example two buttons in the same email.

How to build a tagged link

Two ways, both fine.

By hand. Take your page URL, add a question mark, then list the tags as name=value pairs joined by ampersands:

https://www.yoursite.com/offer?utm_source=whatsapp&utm_medium=social&utm_campaign=diwali_sale

With Google's builder. Google provides a free Campaign URL Builder. You paste your URL, fill in source, medium and campaign in boxes, and it writes the tagged link for you. For links to a website, use the Campaign URL Builder; if you are promoting an Android app, Google says to use the Play Campaign URL Builder instead.

Tip: build links with the tool when you are starting out, so you never fat-finger an ampersand. Once you know the shape, by hand is faster.

Why GA4 puts your traffic in "Unassigned"

This is the problem that makes owners give up on UTMs. You tag a link, the traffic arrives, and GA4 files it under "Unassigned" or the wrong channel.

The usual cause is the medium. GA4 sorts traffic into channels using the utm_medium value, and its rules expect certain words. A medium of "email" lands in Email, "social" lands in Organic Social, and a paid medium like "cpc" or "ppc" lands in a paid channel. A made-up medium like "whatsapp-blast" matches none of the rules, so GA4 cannot place it and files it under Unassigned.

The fix: put the channel type in utm_medium (email, social, cpc, referral) and put the specific detail in utm_source (whatsapp, newsletter4, instagram). That way GA4 recognizes the medium and still shows you the exact source. One more cause of a "(direct) / (none)" bucket: a visit with no usable source or medium at all, which is why always setting the three core tags matters.

Are UTM parameters case sensitive?

Yes, the values are, and this quietly splits your reports in two. Google states that UTM parameter values are case sensitive, so utm_source=Google and utm_source=google are treated as different sources. Tag one link "WhatsApp" and the next "whatsapp" and GA4 shows two separate source rows for what is really one channel.

There is a subtle point worth knowing. GA4's channel grouping rules (the ones that decide whether something lands in Email, Organic Social and so on) are not case sensitive, so "Email" and "email" both land in the Email channel. But the raw source, medium and campaign values you see in reports still split by case. So your channel chart may look fine while your source and campaign rows are fragmented.

The habit that prevents all of it: write everything in lowercase. Google's own best practice is a strict, consistent naming convention, lowercase, identical spelling every time. Pick one spelling of each word and never vary it.

Where to see them in GA4

Your tagged traffic shows up in the Traffic acquisition report under Acquisition. There you can view Session source, Session medium and Session campaign, so you can see which source, which channel type and which campaign each visit belongs to.

Open that report after a campaign, filter to your campaign name, and you see the sessions it brought and what they did on the site. That is the payoff for tagging.

Tag WhatsApp, email, bio links and QR codes

Here is how a small Indian business tags its real channels.

WhatsApp offer link: utm_source=whatsapp, utm_medium=social, utm_campaign=diwali_sale.

Email newsletter: utm_source=newsletter, utm_medium=email, utm_campaign=october_update.

Instagram bio link: utm_source=instagram, utm_medium=social, utm_campaign=bio_link.

QR code on a counter card: tag the URL the QR encodes, utm_source=counter, utm_medium=offline, utm_campaign=store_qr. Now you can see how many people scanned it.

For paid ads, tag the destination URL the same way, with utm_medium=cpc, so GA4 files the clicks under Paid. The same discipline helps you avoid the Google Ads mistakes that burn budget.

Mistakes that break reports

Mixed case. "Email" and "email" become two source rows. Lowercase everything.

Inconsistent spelling. fb one week, facebook the next. Pick one and stick to it.

Tagging internal links. Never put UTMs on links between pages of your own site. It restarts the session and overwrites the real source, so your "diwali_sale" traffic suddenly looks like it came from your own homepage.

Leaving tags out. Setting only utm_source leaves the rest as "(not set)". Always set all three core tags.

No system. Everyone on the team names things their own way. Fix this with a shared sheet, below.

A naming sheet you can copy

Keep one small sheet and fill a row for every link you build. Columns:

Page URL | utm_source | utm_medium | utm_campaign | Final tagged link | Date

Agree the allowed values up front so nobody improvises. For example: source is one of google, whatsapp, instagram, newsletter, counter. Medium is one of cpc, social, email, referral, offline. Campaign is the real campaign name in lowercase with underscores, like diwali_sale or new_arrivals.

Run a ten-minute audit of your existing Traffic acquisition report now: look for the same channel appearing twice with different spelling or case. Those splits are costing you a clear picture, and fixing the naming going forward merges them over time. For the metric this tracking feeds, see what ROAS means and how to calculate it.

FAQ

What are UTM parameters used for?

They tag a link so Google Analytics can tell you which source, channel and campaign each visit came from, instead of guessing.

What are the three main UTM parameters?

utm_source, utm_medium and utm_campaign. Google says to always use all three together, or the missing ones show as "(not set)".

Are UTM parameters case sensitive?

Yes. Google treats utm_source=Google and utm_source=google as different values, so always write them in lowercase to avoid splitting your reports.

Why is my UTM traffic showing as Unassigned in GA4?

Usually because utm_medium uses a word GA4 does not recognize. Use standard mediums like email, cpc, social and referral, and put the detail in utm_source.

Where do I see UTM data in GA4?

In the Traffic acquisition report under Acquisition, where you can view Session source, Session medium and Session campaign.

Should I tag links between my own pages?

No. Tagging internal links overwrites the real traffic source and breaks your reports. Only tag links coming from outside your site.

If your reports do not tell you which channel actually makes you money, pairing UTM tags with a clear read of your Instagram ad costs closes the gap. You can also book a consultation with me at pratiksinghrajput.com/book-online to set your tracking up end to end.

Sources

Comments

Rated 0 out of 5 stars.
No ratings yet

Add a rating
bottom of page