UTMs with capitals, accents or spaces: why GA4 splits them into rows

Published by the UTM Builder team at Limner.

To GA4, Facebook, facebook and FB are three different sources, and each one gets its own row in the report. Channel rules, on the other hand, are case-insensitive: all three versions can land in the same channel and still show up separately under Source/medium. Accents and spaces change the text of the value and the way it travels in the URL.

The dimension is case-sensitive, the channel isn’t

Google’s help page on URL builders says parameter values are case-sensitive: utm_source=google is different from utm_source=Google. The same page names "Meta" and "meta" as different values and recommends lowercase as standard practice.

The default channel group page, however, says channel definitions are not case-sensitive. In practice:

That’s why the channel report can look fine while the campaign report is fragmented. Looking only at channels hides the problem.

Accents, spaces, + and &

Risky: utm_campaign=Promo Verão&Mães
Safe: utm_campaign=promo-verao-maes

The trap in the Portuguese help pages

If you or your team read GA4 help in Portuguese, watch out. The Portuguese version of the Default channel group page shows some rule values translated, such as "afiliados" where the English page says affiliate and "(direto)" where it says (direct). Open the same page in English and the value is different:

ChannelPortuguese (pt-BR) help showsEnglish help shows
Affiliatesafiliadosaffiliate
Audioáudioaudio
Mobile Push Notificationsdispositivo móvel or notificaçãomobile or notification
Paid channels (regex)paga.*paid.*
Organic Searchorgânicaorganic
Direct (source)(direto)(direct)

The Portuguese page has a footer note saying it may contain content translated with AI and that these translations may contain errors. Neither version says which text GA4 actually applies. Until you confirm it in your property, write the values as they appear in the English version, without accents, and check the channel in the simulator before you launch the campaign. utm_medium=afiliados and utm_medium=áudio are exactly the values at risk of ending up in Unassigned.

How to standardize

What about data that already came in mixed?

For the channel report, a custom channel group merges the variants, and Google says it works retroactively. A standard property supports 2 custom groups, a 360 property supports 5, and creating one requires the Editor role or higher. For source and campaign, the merge happens in reporting: group the variants in a dashboard or a spreadsheet built from the GA4 export.

Official sources