Tracking basics

Common UTM mistakes: capital letters, spaces and duplicate names

UTM tags are simple, which is exactly why small mistakes slip through. A capital letter here, a space there, and one campaign turns into three rows in your report, or disappears into (direct). Here are ten mistakes we see again and again, how each one shows up in GA4, and how to stop it happening.

1. Capital letters

What happens: utm_source=Facebook on Monday and utm_source=facebook on Tuesday show up as two separate sources. Your Facebook total is split and you have to add the rows together by hand.

How to spot it: in Traffic acquisition, set the dimension to Session source / medium and look for the same name written two ways.

The fix: everything lower case, always. It is the easiest rule in your naming system to follow.

2. Spaces in values

What happens: utm_campaign=Winter Appeal becomes Winter%20Appeal or Winter+Appeal depending on where the link was built. Some tools break the link at the space, and you end up with Winter as the campaign.

The fix: use hyphens between words: winter-appeal. A builder tool will do this for you.

3. Different names for the same thing

What happens: fb, facebook and facebook.com all in use. Or newsletter, email-newsletter and enews. Each is a separate row, and nobody is sure which is current.

The fix: a short, written list of approved sources and mediums. See UTM naming conventions for a one-page version.

4. A medium GA4 does not recognise

What happens: mediums such as newsletter, facebook-post or flyer do not match any of GA4's default channel rules. The visits are recorded, but they land in the Unassigned channel instead of Email or Organic Social.

How to spot it: a growing Unassigned row in the default channel report.

The fix: use recognised mediums such as email, social, paid_social, cpc, referral and sms. If you deliberately use a custom one such as qr, accept that it will be Unassigned or create a custom channel group. GA4 source and medium explained lists the rules.

5. A different campaign name on every channel

What happens: winter-appeal-email, winter-appeal-facebook, winter-appeal-poster. Now there is no single row showing the appeal's total.

The fix: one campaign value for the whole campaign. The channel belongs in source and medium, and the version belongs in content.

6. Typos in the parameter names

What happens: utm_soruce, utm-source or utm_campagin are not recognised at all. Analytics simply ignores them, and the visit may land in (direct) or be credited to whatever referrer came with it.

How to spot it: paste the link into the UTM Reader. Misspelt parameters will not appear as source, medium or campaign.

The fix: stop typing links by hand. Build them with a tool and paste them.

7. Broken link structure

What happens: a link with two question marks, such as page?id=4?utm_source=x, or tags placed after a hash, such as page#donate?utm_source=x. In both cases the tags are not read as tags.

The fix: the first parameter follows a ?, the rest follow &, and any #section goes at the very end:

https://example.org/page?id=4&utm_source=newsletter&utm_medium=email&utm_campaign=winter-appeal#donate

The UTM Builder handles existing parameters and # sections for you, and replaces old UTMs instead of adding a second set.

8. Tagging links within your own site

What happens: someone adds UTMs to a banner on your homepage that links to your appeal page, to "see how many people click it". Each click then starts a new visit labelled with that banner, and the original source (the newsletter, the Google search) is lost for the rest of the visit.

The fix: only tag links that bring people to your site from somewhere else. To measure clicks on internal links, use events in GA4 instead.

9. Tags lost in a redirect

What happens: the link points at a short address that redirects to the real page, and the redirect drops everything after the ?. The tags never arrive, and the visits look like (direct).

How to spot it: click your own tagged link on a phone and watch the address bar after the page loads. If the utm_ part is gone, something removed it.

The fix: link straight to the final page, or ask whoever manages the site to keep the query string when redirecting.

10. No record of what a link was for

What happens: six months later, the report shows utm_content=v2-b with a good number of visits, and nobody remembers what v2-b was.

The fix: log every link when you create it, with the date, channel and a plain description. Keeping a campaign log your team will actually use shows a simple format.

A two-minute pre-send check

Most of these mistakes are caught by the same short routine before anything goes out:

  1. Build the links with a tool, not by hand.
  2. Paste each final link into the UTM Reader and read the values back.
  3. Check everything is lower case with hyphens, and source and medium are on your approved list.
  4. Confirm the campaign value is the same as the other channels.
  5. Click one link on a phone and check the tags survive to the final page.
  6. Log the links.

What about mistakes already in your data?

GA4 does not let you rewrite old visits, so the past stays as it is. You have two practical options. For a one-off report, combine the split rows by hand or in a spreadsheet. For ongoing reporting, a custom channel group can sort known variations, such as Facebook and facebook, into the same channel from now on. Either way, fix the habit first, note the date you fixed it, and compare like with like from then on.