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 / medium | Channel | Rule |
|---|---|---|
| google / cpc | Paid Search | Search site and paid medium |
| newsletter / cpc | Paid Other | Paid medium with no recognised source |
| newsletter / cpm | Display | cpm is a display medium |
| linkedin / social | Organic Social | Social site or social medium |
| newsletter / email | Email source or medium | |
| flyer / qr | Unassigned | No 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:
googleis in the search list,google.esis 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.
- GA4 help on campaign parameterssupport.google.com
- help on default channel groupssupport.google.com
- help on auto-taggingsupport.google.com