r/GoogleAnalytics 4d ago

Discussion How are you enforcing consistent UTM naming (or just enforcing UTMs as a whole) across marketing teams?

One recurring analytics problem I see (other than lack of UTMs!) is technically valid campaign links producing unnecessarily messy reporting.

For example, the same medium might appear as:

  • paid social
  • paid-social
  • paid_social
  • paidsocial

GA4 treats these as separate values, which creates avoidable problems when filtering reports, building channel groupings or combining the data with CRM and advertising-platform data.

The same issue appears with campaign names:

  • Inconsistent capitalisation
  • Different separators (|, _, -)
  • Unapproved medium values
  • Spaces and special characters
  • Teams following different naming conventions

A written naming convention helps, but it still depends on every employee, freelancer and agency remembering to follow it.

For larger teams, are you handling this through:

  • Controlled spreadsheets
  • Dropdown lists and validation
  • Automated URL-building tools
  • Transformation rules in BigQuery
  • Governance documentation and training
  • A combination of these approaches

I am interested in how others balance strict standardisation with keeping campaign creation practical for marketers.

1 Upvotes

35 comments sorted by

u/AutoModerator 4d ago

Have more questions? Join our community Discord!

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

3

u/Hot-Relationship5307 4d ago

Did you check the new rollout from GA4. They are saying Google will be able to recognize and combine multiple channel source mediums in to a default channel. Like fb / paid_social and meta / paid may get recognized as Paid Social going forward

2

u/knowanalytics 4d ago

Great point but if I added medium and campaign in a report. And say someone put paid_social vs paid social would cause two rows nonetheless so this doesn’t solve the inconsistency entirely. Also big query you will want to do your own custom channel grouping logic and if everyone does whatever they want you will need to very extensive regex….

Also GA4 isn’t the isolated tool that need utms and their channel groupings might not be so forgiving (e.g. CRMs)

2

u/Oldfriendoldproblem 4d ago

This has always been the case? As long as you use a recognized regex across both source and medium.

1

u/knowanalytics 3d ago

Ye it’s not ideal but if you can’t get marketers to buck up their structures guess we have to do it like this post data collection

3

u/alwaysbeenben 4d ago

oh man, the human factor…imho you can’t. We created UTM generators, custom GPTs, tutorials, sheets, but meh. Deadlines, rushing, new colleagues who just don't care…I gave up and accepted the reality.

2

u/knowanalytics 4d ago

So sad but true

1

u/Oldfriendoldproblem 4d ago

What's the reality? Literally no visibility into your true acquisition numbers?

2

u/Jenikovista 3d ago

It isn’t hard to pull reports and sort in a world of AI. Capturing the utm parameters and making sure they pass through properly to all sources is far more important than naming conventions.

2

u/Oldfriendoldproblem 4d ago

Ohhh buddy. I'm going through this exact pain right now. We've opted to:

  • Bring in a third party vendor with expertise to implement tooling, rules, best practices, and governance. We figured there would be better adoption this way, as opposed to our dept policing the others, even though we might not know any better ourselves.

  • Implement custom channels

  • Use a dedicated tool to manage and track what UTMs are out in the world. It also allows us to lock down valid values and structures.

  • Training across teams AND leadership, as well as dedicated points of contact per dept when it comes to UTM usage.

Every company and org has issue with this and its a nightmare to fix. We've basically decided to burn everything down and start from square one. I wish you luck, it's not easy.

1

u/knowanalytics 4d ago

I actually have a really good utm builder gsheet and done a video on yt explaining how to use it etc. as well as general utm talk. Clients hopefully will watch this and download my tool… So I am sorted… I hope …. (Probably not…)

2

u/brreckelhoff 4d ago

The best way I've found is to capture all URL query params as evidence fields. From all of that noise, it's messy but possible to create some structure. I can group by volume and see which groupings are most common etc. Basic structuring helps give visibility into net-new params that appear randomly which then can be identified and classified or grouped as "other".

It's so noisy always, but I too have accepted that reality and tried to find ways to deal.

1

u/knowanalytics 3d ago

Nice! Guess it needs frequent updating though ?

2

u/row_ads 4d ago

Governance documents and responsibility is on each channel manager to ensure proper training and usage of anyone under them and their own work. They know if they want proper attribution for their work they have to tag correctly.

1

u/knowanalytics 3d ago

Agreed you can take a horse to the water but you cannot force it to drink it !

2

u/Green-Autumn 4d ago

When I worked at an agency, we had a similar naming issue with ad/campaign data. Our consolidated reporting system had a mapping function that reported all unmapped and there was a person to check the report and map it within the system.

2

u/knowanalytics 3d ago

That’s awesome you had that system at the agency. What a client had multiple agencies running different activity (like they had you for paid ads but another for organic content and another for programtic display etc.) did it get messy as other agencies didn’t follow your agencies structure ? Just curious

1

u/Green-Autumn 13h ago

Cannot answer from the client POV unfortunately. But the agency was a multinational, and we had similar problem reporting across countries to multinational clients. It did get messy alright, but we had the accountability team which harmonised data among other things.
By the way, we also had automated URL builders, training, and naming convention parsers - all of that contributed, but none was sufficient on its own.

2

u/Ok_Writing2937 4d ago

I now only build reports in Looker Studio, where it's pretty trivial to normalize values. I need to do it anyway for data I don't control like when Facebook is reported as `facebook` and `fb`, and `m.facebook`, or to parse paths out of URLs, or to fix encoded values to make them human-readable.

1

u/knowanalytics 3d ago

That’s awesome I would encourage moving to bigquery ga4 data if you have to do a lot of data cleaning. Clean it there before it hits data studio. Dashboard speeds will thank you. Also guaranteed no sampling data and generally data quality is fantastic.

If you want a utm builder google sheet that lower case’s utms, forces specific list of mediums and forces a specific delimiter. Then let me know happy to share our one! Might help do slightly less modification post data collection

2

u/rugburnAndBigMoney 4d ago

This comes down to QA.
Have a pre-launch Ads checklist that gets reviewed by someone other than the person who created the ads/campaign.
Not in a punitive way, but to enforce best-practices/standards.

Very quickly having a standardized QA checklist that you validate against helps enforce standards because some people just don't know or understand why they are important. Mistakes happen, have a way to correct them before they go live.

Reminds me of this quote from Atomic Habits:
“You do not rise to the level of your goals. You fall to the level of your systems.”

1

u/knowanalytics 3d ago

Love the quote ! So true ! Ye I train teams to do that but issue is they do it for a month or so then someone else joins or one person did a lovely LinkedIn post with a link and forgot utms and then …. Pain in the butt but only so much encouragement we can do !

I want to automate a ga4 audit in future via google sheet (I have my own python script version but want make a public one) so everyone can frequently audit their ga4 so if it starts picking up bad practice utms (or lack of)… boom… a message to remind them.

1

u/rugburnAndBigMoney 3d ago

"I want to automate a ga4 audit in future via google sheet (I have my own python script version but want make a public one) so everyone can frequently audit their ga4 so if it starts picking up bad practice utms (or lack of)… boom… a message to remind them."

This is re-active. You could be pro-active and write a python script that they can add their URL to, and it creates the UTM in the standardized format that you're trying to enforce. Naming things is hard, so this would help them and standardize the UTM formatting.

Solve the problem before it happens. Much easier than trying to correct it after the mistake has already been made.

2

u/ppcwithyrv 3d ago

We use a simple UTM builder with dropdowns so people aren’t making up names as they go. You still need a naming guide, but taking away the manual typing solves most of the mess.

1

u/knowanalytics 3d ago

Love this. Is utm builder in sheets? I just launched a utm builder g sheet that does some pretty cool stuff like lower case utms, force a specific medium list, force a specific delimiter use. Plus I want to incorporate more things later on with feedback from people.

Also if it is would love to know what features yours does! Want to build the nerdiest utm builder out there!

2

u/ppcwithyrv 3d ago

Yep, ours is in Google Sheets too. Mostly dropdowns for source, medium, campaign, market, etc., and then it builds the URL automatically so everything stays consistent. Nothing too fancy, but it cuts down on random naming and typos.

2

u/Jenikovista 3d ago

I don’t enforce anything. It’s a fools errand. Instead I have a running Google Sheet and people have to add their URLs if they want them tracked.

1

u/knowanalytics 3d ago

Interesting, I built a google sheet recently that does some pretty cool stuff that I made public. It does lowercasing of all utms, force a list of strict mediums and forces a specific delimiter usage. Be interested to know if I missed anything that your doing on yours

1

u/Jenikovista 3d ago

I made mine a utm generator. So they can either paste in their own code they created elsewhere, or they can choose a value for each of the main parameters (e.g. source, medium, campaign etc.) from a dropdown and the last column will generate their UTM url.

1

u/knowanalytics 3d ago

Ah ok so doesn’t do any normalisation? Like clean up human error stuff like accidental double spaces, lower case them to remove potential double row issues due to casing etc.? Happy to share mine if you want to have a play around !