Free tool, no signup
UTM link checker
Paste a tagged link to see what is wrong with its UTM parameters, which GA4 default channel it should land in, and a fixed link to copy. Nothing you paste leaves your browser.
Building the next link? The free UTM builder lowercases values and replaces spaces with hyphens as you type. A free account keeps your links and campaign names for your team.
Create free accountBefore you share a tagged link, check that its campaign parameters sit in the query, that every escape in it is valid and that its values match the rest of the campaign. Google's campaign URL guidance says to always use utm_source, utm_medium and utm_campaign, and utm_source=google is a different source from utm_source=Google. Paste your links into the checker above to see which of these each one gets wrong.
Errors
Errors that break a campaign link
RFC 3986, section 3.4 defines the query as starting at the first ? and ending at a # or the end of the link. Section 3.5 starts the fragment at the # and runs it to the end of the link. So a utm_source written after the #, as in example.com/guide#pricing?utm_source=newsletter, is part of the fragment, not the query. Put the campaign parameters before the #: example.com/guide?utm_source=newsletter#pricing.
A percent sign starts an escape. RFC 3986, section 2.1 defines a percent-encoded octet as a % followed by two hexadecimal digits. %20 follows that shape; %zz, or a % at the end of a value, does not. Rebuild a value like that from the original campaign name rather than guessing what it meant.
Warnings
Naming problems that split your reports
Google's campaign URL guidance treats parameter values as case sensitive, so Facebook and facebook are reported as two separate sources. Google also recommends using lowercase as the standard.
Missing parameters show up as (not set) in reporting, so a link without utm_source, utm_medium or utm_campaign leaves a gap in the campaign reports.
The %20 in a value such as spring%20sale is a valid percent-encoded octet, not a broken escape. Choose either hyphens or spaces for a campaign name and use the same form on every link.
GA4 channel
Which GA4 channel the link lands in
In GA4, channels are rule-based definitions of your traffic sources. Paid Search, for example, is the channel by which users arrive via ads on search-engine sites, and Organic Social the channel by which they arrive via non-ad links on social sites. Channel definitions are not case sensitive and cannot be edited. The parameter values themselves are case sensitive, so Email and email still appear as two medium values in reports.
Unassigned is the value Analytics uses when no other channel rule matches the event data. The definitions reflect Google's current view of each channel and may evolve as the market changes, so treat the channel shown for each link as an estimate from the rules as published, and re-check it when a report looks wrong. Read the GA4 channel guide next, then the source vs medium guide.
Limits
What a pasted link cannot show
- The checker reads the text of the link only. It does not open the page, follow redirects or check that your analytics tag is installed.
- The channel is estimated from the source, medium and campaign in the link, using Google's published manual-traffic rules and Google's list of search, social, video and shopping sites, checked on 14 October 2026. Google Ads traffic with auto-tagging and custom channel groups are classified differently.
- The suggested fix changes only the UTM parameters: it lowercases them, replaces spaces with hyphens, removes repeats and moves tags from after the # into the query. Every other part of the link stays as it was.
- Before a campaign goes out, run the exact shared link through the campaign link preflight checklist.
Questions, answered
Before you share the link.
Are UTM parameters case sensitive?
The values are. utm_source=google and utm_source=Google are two different sources in reports. GA4's channel definitions, by contrast, are not case sensitive.
Which UTM parameters should every link have?
Google recommends always using utm_source, utm_medium and utm_campaign. A missing one shows as (not set) in reporting.
Is %20 in a UTM value an error?
No. A percent sign followed by two hexadecimal digits is a valid escape, so %20 is fine. A percent sign without two hexadecimal digits after it is broken.
Why would a tagged link land in Unassigned?
Unassigned is the value Analytics uses when no other channel rule matches the event data.