How to Create a UTM Naming System for Multi-Brand Companies

Managing one brand’s UTM links is already a chore. Now try running five brands under one roof, each with its own website, its own campaigns, and often its own marketer.
I run linkutm, a UTM link management tool. I talk to holding companies and multi-brand teams every week. The pattern is always the same. Every brand invents its own tags. Then leadership asks for one report across all brands, and nobody can build it.
Here is the thing. A UTM naming system for multi-brand companies is not five separate systems glued together. It is one taxonomy with a brand layer baked in. Get that layer right and your data stays clean, per brand and across the whole portfolio.
This guide shows you exactly how to build it. Brand prefixes, the GA4 reporting decision, the naming structure, and how to make every brand actually follow it.
Why Multi-Brand UTM Tracking Breaks
Most multi-brand tracking fails for one reason. Nobody decided where the brand identity lives inside the URL.
When each brand tags links independently, you get chaos. Brand A writes utm_source=facebook. Brand B writes utm_source=FB. Brand C writes utm_source=Facebook. GA4 treats those as three different sources. Roll that up across a portfolio and your channel numbers are fiction.
The second failure is worse. Two brands run a “spring sale” in the same quarter. Both use utm_campaign=spring_sale. If they share any reporting layer, their data merges into one blob. You cannot tell which brand drove the revenue.
Here is a quick view of the two models most multi-brand companies land on:
| Model | How brands are separated | Best for |
|---|---|---|
| Separate GA4 property per brand | Each brand has its own data stream | Independent brands, different teams, little cross-selling |
| One consolidated GA4 property | Brand encoded inside the UTM tags | Shared audiences, portfolio-level reporting, central marketing team |
The honest trade-off: separate properties give clean isolation but block portfolio rollups. Consolidated gives rollups but demands discipline. Most teams I work with pick consolidated, then regret skipping the naming rules. Do not skip the rules.

Decide Your Reporting Model First
Pick your reporting model before you write a single tag. Everything downstream depends on it.
Ask one question. Does leadership need a single dashboard that compares all brands side by side? If yes, you need a consolidated model, which means the brand must live inside every UTM. If each brand operates fully independently and no one ever compares them, separate GA4 properties are simpler.
I prefer the consolidated model for most portfolios. Here is why. Even “independent” brands eventually share an email list, a paid budget, or a leadership review. The day someone asks “which brand has the best cost per lead,” a consolidated setup answers in thirty seconds. Separate properties turn it into a week of manual exports.
The limitation is real though. Consolidated reporting means one messy brand pollutes the shared view. One marketer using sloppy tags shows up in everyone’s report. That is exactly why the naming system has to be enforced, not suggested.
If you already understand basic UTM structure, skip ahead. If not, my UTM naming conventions guide covers the eight core rules before you add the brand layer on top.
Build the Brand Prefix System
The brand prefix is the heart of a multi-brand UTM naming system. It is a short code that marks every campaign with its owner.
Put the brand code at the front of utm_campaign. Keep it short, two to four lowercase letters. Say your parent company owns three brands: Acme, Bolt, and Cedar. Your codes become acm, blt, ced. A spring sale campaign now looks like this:
https://acme.com/sale?utm_source=facebook&utm_medium=paid_social&utm_campaign=acm_spring_sale_2026
Now Bolt’s spring sale is unmistakably different:
https://bolt.com/sale?utm_source=facebook&utm_medium=paid_social&utm_campaign=blt_spring_sale_2026
Same structure, different brand code. In a consolidated GA4 property you can filter utm_campaign starting with acm_ to see everything Acme did. You can compare acm_ against blt_ in one report. The brand layer travels with the data everywhere it goes.
Why the prefix and not a separate parameter? Because utm_campaign is a standard field that every tool reads. A custom parameter like utm_brand gets dropped by some platforms and ignored by GA4’s default reports. The prefix rides inside a field that always survives. That reliability matters more than elegance.
One honest caveat. Brand codes need a locked registry. If Acme is acm in one campaign and acme in another, you are back to fragmented data. Document the codes once. Tools like linkutm’s reusable UTM variables let you save each brand code as a fixed value, so no one retypes it and no one invents a new spelling.

Standardize Source and Medium Across Every Brand
Keep utm_source and utm_medium identical across all brands. This is the rule teams break most often, and it quietly destroys portfolio reporting.
The brand code lives in utm_campaign. It does not belong in source or medium. Source names the platform. Medium names the channel type. Those meanings do not change just because the brand changes. Facebook is facebook for Acme, Bolt, and Cedar. Paid social is paid_social for all three.
Use one controlled vocabulary for the whole portfolio. Here is a starter set:
- utm_source: the specific platform.
facebook,google,linkedin,newsletter,youtube - utm_medium: the channel category.
paid_social,cpc,email,organic_social,referral - utm_campaign: brand code, then objective, then descriptor, then date.
acm_launch_widget_pro_2026
When every brand pulls from the same source and medium list, GA4’s channel groupings work automatically. Your “Paid Social across all brands” number is trustworthy. When brands freelance their own values, that number is garbage.
The trade-off with a controlled vocabulary is speed. Marketers cannot just type whatever feels right. They have to pick from an approved list. That friction feels annoying for a week. Then it saves you every reporting cycle after. For the full definition and a mapping to GA4 channel groups, see what a UTM naming convention actually covers.
Handle Multi-Property and Sub-Brand Structures
Some portfolios go deeper than a flat list of brands. You might have brands that each run several regional sites or product lines. Plan for that layer before it surprises you.
You have two clean options. First, extend the brand code. Acme US becomes acmus, Acme EU becomes acmeu. This keeps everything in utm_campaign and stays simple for two or three properties per brand. Second, use utm_content for the sub-level when a brand has many properties. The brand code stays in utm_campaign, and utm_content carries the property or region: utm_content=eu_store.
I lean toward extending the brand code for small structures. It keeps the whole hierarchy in one field you can filter and sort. Once a brand has more than four or five properties, push the sub-level into utm_content so the campaign field does not turn into a paragraph.
This is also where multi-brand differs sharply from agency work. An agency juggling separate clients keeps each client’s data walled off. My guide on managing UTM links across multiple clients is built for that walled-off model. A multi-brand company is the opposite. You want the walls low enough to roll everything up while still telling brands apart. Same tags, different goal.
The limitation here is complexity creep. Every layer you add is another thing to enforce and another place to make a typo. Add layers only when a real reporting question demands them. Do not build a five-level taxonomy for a two-brand company.
Document the System in One Place
A naming system nobody can find is a naming system nobody follows. Write it down in a single document every marketer can reach.
Your multi-brand UTM document needs five things:
- The brand code registry. Every brand and its locked code.
acm = Acme,blt = Bolt,ced = Cedar. - The source list. Approved
utm_sourcevalues, nothing else allowed. - The medium list. Approved
utm_mediumvalues, mapped to your GA4 channel groups. - The campaign formula. The exact order:
brandcode_objective_descriptor_date. - Worked examples per brand. Two or three real tagged URLs so people copy the pattern.
Keep it short. One page beats a twenty-page policy nobody reads. I have watched detailed conventions die because they were too heavy to use on a Tuesday afternoon. If you want a ready structure, I built a UTM naming convention document template you can adapt for a portfolio.
The honest gap with documentation alone: a document does not stop mistakes. It describes the rules but cannot enforce them. Someone will still fat-finger a tag at 6pm before a launch. That is where automation earns its place.

Enforce the System Across Brands
Enforcement is what separates a naming system that works from a nice idea in a slide deck. Rules on paper fail. Rules in software hold.
Manual enforcement across multiple brands does not scale. You cannot personally review every link from every marketer on every brand. The moment you stop watching, the tags drift. I have seen it happen inside a single quarter.
Automate it instead. Three controls do most of the work:
- Locked brand values. Save each brand code and each approved source and medium as a fixed variable. Marketers select a brand, and the code fills in. No typing, no new spellings.
- Validation rules. Enforce the campaign formula automatically. If a link is missing the brand prefix or uses an off-list medium, it gets flagged before it ships. linkutm’s UTM rules do exactly this across every brand in one account.
- A pre-launch check. Before a campaign goes live, run its links through a validator to catch stragglers. My free UTM naming convention checker audits tagged URLs against your standard.
For companies where each brand has its own domain, branded short links keep the system consistent at the link level too. Each brand can ship links on its own branded domain while every one of those links still follows the shared UTM taxonomy underneath. The audience sees the brand. Your reporting sees the standard.

The trade-off with automation is setup cost. You spend a day defining brands, sources, mediums, and rules up front. That day feels slow. It pays back the first time a new hire creates a perfect link on day one without asking anyone.
Roll It Out Without a Revolt
Roll the system out one brand at a time, not all at once. A big-bang launch across every brand invites a big-bang rejection.
Start with the brand whose marketer is most bought in. Get their tags clean. Show the portfolio report that suddenly works. Then use that win to bring the next brand along. People follow proof, not policy memos.
Assign one owner for the whole taxonomy. Not a committee. One person who approves new brand codes, adds new sources, and answers questions. Multi-brand naming dies fastest when ownership is fuzzy and everyone assumes someone else maintains it.
The limitation worth naming: rollout takes patience you might not have before a big campaign season. If you are two weeks from your busiest quarter, lock the brand codes and source list now, and add the finer rules after the rush. A partial system that everyone follows beats a perfect system nobody adopts in time.
Frequently Asked Questions
What is a UTM naming system for multi-brand companies?
It is a single UTM taxonomy that encodes each brand inside its tags, usually with a short brand prefix on utm_campaign. It lets a parent company track every brand separately while still rolling all brands into one report. The source and medium values stay identical across brands so channel reporting works portfolio-wide.
Should each brand use a separate GA4 property or one shared property?
It depends on whether leadership compares brands. Use one consolidated GA4 property with brand-prefixed UTMs if you need portfolio-level dashboards. Use separate properties if brands operate fully independently and no one ever compares them. Most multi-brand teams choose consolidated because the day always comes when someone wants a side-by-side view.
Where should the brand go in a UTM link?
Put the brand as a short prefix at the start of utm_campaign, like acm_spring_sale_2026. Keep it in a standard field that every platform and GA4 reliably reads. Avoid custom parameters like utm_brand, since some tools drop them and GA4’s default reports ignore them.
How do I stop different brands from tagging links inconsistently?
Lock your brand codes, sources, and mediums as fixed values so no one retypes them. Add validation rules that flag any link missing the brand prefix or using an off-list value. Run a pre-launch check with a UTM validator. Automation holds the standard far better than manual review across multiple brands.
How is multi-brand UTM tracking different from agency client tracking?
An agency walls each client’s data off completely, since clients should never see each other. A multi-brand company wants the opposite: brands separated for detail but combinable for portfolio rollups. The tag structure looks similar, but the reporting goal is reversed, which changes how you set up GA4 and permissions.
How many brands can one UTM system handle?
There is no hard limit. A brand prefix scheme scales to dozens of brands as long as the code registry stays locked and enforced. The real constraint is governance, not tags. Once you pass five or six brands, automated enforcement stops being optional and becomes the only thing keeping the data clean.
Start With Control, Not Confusion
A multi-brand portfolio does not have to mean multi-brand chaos. One taxonomy, a locked brand prefix, shared source and medium lists, and automated enforcement give you clean data at every level. Per brand when you need detail. Across the portfolio when leadership asks.
Pick your reporting model this week. Lock your brand codes. Then let software hold the line so every marketer, on every brand, ships a clean link by default.
Ready to enforce one taxonomy across all your brands? Start free with linkutm and set your brand codes, naming rules, and templates in an afternoon.