Validator
QA the link before it becomes a rumor
Paste a campaign URL. Get a house score, a likely GA4 channel group, and the specific hygiene issues — missing campaign, mixed case, spaces, or a medium that sulks in Unassigned.
What a UTM validator actually checks
Most bad attribution is not mysterious. It is a capital F, a space, and a medium named ad. A UTM checker exists so those issues show up on the link, not three weeks later in an exploration report that everyone argues about with screenshots.
This house scores five things. One: source, medium, and campaign are all present. Two: values are lowercase, because GA4 treats Facebook and facebook as different sources. Three: there are no spaces — hyphens or underscores keep reports tidy. Four: the medium looks like it will map to a default channel group instead of Unassigned. Five: the source looks like a platform name, not linkedin.com.
A 100 is not a trophy. It means the required trio is present and the hygiene checks passed. A 55 on Facebook / Paid / Spring Sale is the house being honest. Rebuild that link in the builder with lowercase and a real medium such as paid_social.
What this score is not
It is not a guarantee that the landing page works, that a redirect keeps the query string, or that your GA4 property is linked to Google Ads. It will not shame a creative name in utm_content. It will mention if your medium looks like it was chosen from a mood board. For the written rules behind the score, read house rules and GA4 tracking.
FAQ
UTM builder questions
How do I validate UTM parameters?
Check that source, medium, and campaign exist, values are lowercase without spaces, the source looks like a platform, and the medium matches a GA4 default channel grouping such as cpc, email, paid_social, or social.
What is a good UTM score?
A 100 means the required trio is present and the hygiene checks passed. Lower scores still generate traffic — they just generate arguments in the weekly performance meeting.