UTM naming conventions that keep GA4 clean
Create consistent UTMs that support GA4 channels and cost imports. Includes an allowed-values registry, CSV template, Python URL builder and launch checklist.
Jafrin Akter AloLast updated 10 min read
Paste a tagged link to split it into parts and find what would stop it tracking. You get the problems in plain words, the predicted GA4 channel and a clean copy of the link.
This link
2 to fix, 1 to check
The same link with UTMs, click IDs and email addresses removed
https://www.example.com/pricingThis reads the text of the link and never opens it, so it can’t see redirects.
Sample link with problems in it. Paste yours over it.
Runs in your browser with no sign-up. This page loads no ad tags and no session recording, and we only record that the tool was used. A copied link carries your link after the #, so share it only with people you’d show it to.
It reads the text of the link against Google’s campaign URL guidance and GA4’s channel rules. It flags missing parameters, typos in the keys, macros that never filled in, repeated keys, capitals, personal data and links over GA4’s limit. It doesn’t open the link, so it can’t see redirects.
| What it finds | Example |
|---|---|
| A required parameter is missingGA4 shows (not set). Google Analytics Help | no utm_medium |
| A value has capitalsValues are case sensitive. Google Analytics Help | |
| A Meta macro never filled inLeft in the link as text. Meta for Developers | {{campaign.name}} |
| A TikTok macro never filled inLeft in the link as text. TikTok Business Help Center | __CID__ |
| A pair lands in UnassignedNo GA4 rule matches. Google Analytics Help | x / qr |
| The link is too longEncoded length, for page_location. Google Analytics Help | over 1,000 |
Open a private window, click the real link and copy the final address after any redirects. Paste it here to check the text. Then look in GA4 Realtime, or wait a day and compare the session source, medium and channel with the channel you expected.
The usual causes are a redirect that drops the query string, UTMs placed after the # sign, or a page that strips parameters before the GA4 tag loads. Paste the final landing URL here. If the UTMs are there and GA4 still misses them, check consent and tag order next.
Yes. Google says utm_source=google and utm_source=Google count as different values, and it recommends lowercase. GA4’s channel rules aren’t case sensitive, so the channel stays the same, but your reports split one source across two rows and any cost join on those values can miss.
Everything after the # is the fragment, and browsers don’t send it to the server. Tools that read the query string won’t see those UTMs at all. Move them before the #, so the link reads page?utm_source=x#section. This checker flags it and treats those values as UTMs, so you can see them.
It can, and it shouldn’t. An email or phone number in a URL ends up in analytics, server logs and referrers. This checker flags email addresses in any parameter and masks them on screen. It also flags long runs of digits in UTM values, because those are often phone numbers or CRM IDs.
A URL has a scheme like https, a domain, a path, a query string after the ?, and a fragment after the #. The query string holds parameters as key=value pairs joined by &. This parser splits each of those out, decodes the values and labels UTMs and click IDs.
If links keep breaking, the cause is usually upstream. Our analytics and tracking work finds it and fixes it at a fixed price.
Paste this where you want it. It stays free and sends no tracking from your site.
<iframe src="https://www.martechdevs.com/embed/utm-checker" title="UTM checker" width="100%" height="900" style="border:0;max-width:760px" loading="lazy"></iframe>
<p style="font-size:13px">Free tool by <a href="https://www.martechdevs.com/tools/utm-checker">martechdevs</a></p>Last updated
Create consistent UTMs that support GA4 channels and cost imports. Includes an allowed-values registry, CSV template, Python URL builder and launch checklist.
Jafrin Akter AloLast updated 10 min read
GA4 shows Unassigned when no channel rule matches a session. Find the cause in source and medium, tag order, consent or server events, then fix it.
Jafrin Akter AloLast updated 14 min read
Diagnose GA4 missing values by dimension. Check consent, page views, Ads links and custom parameters, then verify the fix with the right denominator.
Jafrin Akter AloLast updated 11 min read
Want it set up for you? See implementation plans or book a free call.