hi, i’m amr. most b2b teams tag campaign links by hand, and the tags come from five different people. google’s analytics help page on url builders has one sentence that explains a lot of messy source reports.
what google says, in its own words
- “When you add parameters to a URL, you should always use utm_source, utm_medium, and utm_campaign.”
- google also strongly recommends utm_id and utm_source_platform alongside those three
- “Missing UTM parameters will result in (not set) values being present in reporting.”
- “Parameter values are case sensitive, e.g. utm_source=google is different from utm_source=Google.”
- the best-practice table says to “maintain a strict, case-sensitive naming convention” and to use lowercase as a standard practice. it adds that SpringSale and Spring_Sale are considered distinct
- for campaigns, use only one unique name that matches the exact campaign name, and for utm_id use the same ids you use when uploading campaign data
- utm_creative_format and utm_marketing_tactic are not reported in GA properties
my reading, not google’s wording: if one person tags a link with LinkedIn and another with linkedin, your report can show two rows for one source. the page says the values are different. it doesn’t say what share of any property’s traffic is affected.
what to check this week
- open the traffic acquisition report for the last 90 days, switch to source / medium, and scan for pairs that differ only by capital letters or by an underscore
- write the naming rule in one shared sheet: lowercase only, one word for each platform, one pattern for campaign names, and who is allowed to add a new value
- build links from that sheet, not from memory. a shared template that locks the case is enough
- add utm_id if your campaign names are also tracked in your CRM or ad platform, so the two can be matched
- leave old data alone. google’s page doesn’t describe a way to merge past rows, so the rule protects reports from the day it starts
- missing tags are a separate problem with a separate result: the page says they show up as (not set). i covered another cause of unlabelled traffic in an earlier post
where this stops applying
the page doesn’t say how GA4’s default channel grouping treats different capitalizations, so check that in your own property before you assume the damage. if every paid link is tagged by the ad platform automatically and you never hand-tag, the risk is smaller. i haven’t audited any property for this post.
start scaling — if your source report has three spellings of the same channel, a one-hour tagging clean-up and a shared naming sheet fixes it from the next campaign onward. let’s connect.
Sources: Google Analytics Help, “URL builders: Collect campaign data with custom URLs” (support.google.com/analytics/answer/10917952). Figures are published product documentation, not verified results from Amr’s own client accounts.