Free tool · no sign-up

UTM URL builder and naming validator

Build correctly encoded UTM campaign URLs, validate your naming, preview the GA4 default channel group and create several URLs from a list of contents.

Content updated:

Absolute and with https://. Existing parameters are kept; previous utm_ parameters are replaced.
Who sends the visit: newsletter, google, linkedin…
Channel type. It decides the GA4 channel group: email, cpc, display, social, referral…
A stable identifier for the initiative.
Paid keyword, if relevant.
The creative or placement you want to tell apart.
Campaign identifier, useful if you import cost data.
Lower case, no accents, and spaces or symbols turned into the chosen separator.
Choose one and always use it. Hyphens already typed are kept.
Generates one URL per line with that utm_content; up to 200 lines.

How to use it

Paste the landing page URL, fill in source, medium and campaign with the values from your dictionary and copy the generated URL. If you will publish the same campaign in several pieces, type one content per line in the last field and you will get one URL per piece, with the Copy all URLs button. Everything is calculated in your browser: no data is sent or stored.

The tool warns about what usually breaks reports: a relative URL or one without https, repeated utm parameters, copied click identifiers, a fragment with parameters, spaces, mixed case, characters that will be encoded and values that look like an email address or a phone number.

What it does and which rules it applies

The final URL is built with the standard URL and URLSearchParams interfaces: previous utm_ parameters are removed, the rest of the query is kept as it is, parameters are added in the order source, medium, campaign, id, term and content, and the # fragment stays at the end. Spaces are encoded as %20 and any character that is not an ASCII letter, a digit or * - . _ is percent-encoded.

The GA4 help on campaign parameters says you should always use utm_source, utm_medium and utm_campaign, recommends adding utm_id and warns that values are case-sensitive: google and Google are different sources. That is why normalisation turns everything into lower case.

The classification table applies the rules in the help on default channel groups for manually tagged traffic, in the order Google presents them, and compares the source with the public list of search, social, video and shopping sites linked from that page. These rules are not case-sensitive. Some examples:

Source / mediumChannelRule
google / cpcPaid SearchSearch site and paid medium
newsletter / cpcPaid OtherPaid medium with no recognised source
newsletter / cpmDisplaycpm is a display medium
linkedin / socialOrganic SocialSocial site or social medium
newsletter / emailEmailEmail source or medium
flyer / qrUnassignedNo rule matches

Worked example

Fictitious data, the same as in the UTM dictionary for lead generation campaigns: page https://example.com/presupuesto/, source newsletter, medium email, campaign revision_instalaciones_2026 and content boton_presupuesto, with underscore as the separator. The tool returns:

https://example.com/presupuesto/?utm_source=newsletter&utm_medium=email&utm_campaign=revision_instalaciones_2026&utm_content=boton_presupuesto

That is 142 characters, with no warnings. No earlier rule matches (newsletter is not in Google's lists and email is not a paid medium), so GA4 assigns it to Email because of the medium. Had you typed "Revisión Instalaciones 2026", normalisation would have turned it into the same value and shown you a warning.

Google Ads and auto-tagging

With auto-tagging, Google Ads adds the gclid parameter to the URL that is clicked. Its help on auto-tagging explains that in GA4 it takes priority over manual tagging because there is no option to override it. If you add UTM parameters to an ad's final URL without realising it, you will have two sources of truth that do not match. The tool warns you when the source contains "google" or the medium is cpc or ppc. If the gclid is lost along the way, review the redirects that drop the GCLID.

How to interpret the result and its limits

  • The classification is a forecast for manually tagged traffic. Google Ads clicks with auto-tagging, Display & Video 360 or Campaign Manager 360 are classified using other data.
  • Google's source lists change. The exact value is compared: google is in the search list, google.es is not.
  • A correct channel does not guarantee attribution: parameters must survive redirects and forms.
  • Unassigned means a medium GA4 does not recognise. Fix it before publishing, not after.
  • Do not put names, email addresses or phone numbers in parameters: URLs remain in browser histories and logs.

Once attribution works, use the campaign data to compare the cost per qualified lead.

The values you enter are calculated in your browser and are not sent to CallsIQ. The page measures visits with Google Analytics as described in the privacy policy.

Sources and limits of this tool

The linked sources support the formula, ranges or prices the tool uses. Examples with fictional data are identified in the text.

How to report a correction