Most marketers who use UTM parameters are familiar with the usual ones:
utm_sourceutm_mediumutm_campaignutm_contentutm_term
But there is another UTM parameter that gets far less attention:
utm_id
So what exactly is utm_id, and should you be using it?
For many marketers running a handful of campaigns, the answer may be not yet.
But if you manage campaigns across multiple platforms, work with large numbers of campaigns, import advertising data into Google Analytics, or need stronger campaign governance, utm_id can become very useful.
What is utm_id?
utm_id is a unique identifier for a marketing campaign.
For example:
?utm_id=cmp_1042&utm_source=linkedin&utm_medium=paid_social&utm_campaign=analytics_audit
In this URL:
utm_id=cmp_1042identifies the campaignutm_source=linkedinidentifies where the traffic came fromutm_medium=paid_socialdescribes the marketing channelutm_campaign=analytics_auditgives the campaign a human-readable name
Google Analytics maps utm_id to its Campaign ID dimension.
That distinction between an ID and a name is important.
Why not just use utm_campaign?
You certainly can.
For relatively simple campaign tracking, utm_campaign may be all you need.
But campaign names have a problem:
Names change.
Suppose your team launches a campaign as:
utm_campaign=fall_promotion
Someone later decides that a more descriptive name would be:
utm_campaign=fall_2026_promotion
Then another team member uses:
utm_campaign=fall-promotion
From a human perspective, these may all refer to the same marketing initiative.
From an analytics and governance perspective, however, you now have multiple campaign values.
A campaign ID gives you a stable identifier that can remain the same even when the descriptive campaign name changes.
For example:
utm_id=cmp_1042
can continue identifying the campaign regardless of what you decide to call it.
utm_id becomes especially useful for campaign data imports
One of the strongest reasons to start using utm_id is Google Analytics campaign data import.
GA4 can combine campaign data from non-Google advertising platforms with the sessions, events, revenue, and key events already collected by Analytics.
For example, you might import:
- Campaign cost
- Impressions
- Clicks
Google specifically supports Campaign ID as part of this process and recommends it, along with Campaign Name, even though those two fields are optional. Source, medium, and date are required.
This makes utm_id useful as a key for connecting the campaign a visitor clicked with campaign information coming from another system.
Imagine your advertising platform contains:
Campaign ID: meta_84729
Campaign: fall_promotion
Cost: $4,250
Clicks: 3,840
Your destination URLs could contain:
utm_id=meta_84729
Now there is a stable identifier connecting campaign activity with the corresponding campaign data.
Campaign IDs are also useful beyond GA4
There is a broader reason I like campaign IDs for organizations with mature campaign tracking.
A campaign ID can become the permanent identifier for a campaign across your marketing systems.
Think about a campaign with the ID:
cmp_1042
That ID could potentially appear in:
- Your UTM tracking URLs
- GA4
- Your campaign management system
- Your advertising data
- Your data warehouse
- Your CRM
- Internal campaign documentation
The campaign name is for humans.
The campaign ID is for systems.
That separation becomes increasingly valuable as your marketing data infrastructure grows.
Should every marketer use utm_id?
Not necessarily.
If you run a small number of campaigns and primarily want to know:
Where did my traffic come from?
then a well-managed combination of utm_source, utm_medium, and utm_campaign may be perfectly adequate.
Adding another parameter just because it exists doesn’t necessarily improve your analytics.
But I would strongly consider utm_id if:
- You manage hundreds or thousands of campaigns
- Multiple people create campaign URLs
- Campaign names frequently change
- You advertise across many platforms
- You import campaign or advertising data into GA4
- You combine GA4 data with advertising data in BigQuery
- You want a consistent campaign identifier across systems
In those situations, utm_id stops being an extra UTM parameter and starts becoming part of your campaign-data architecture.
What should you use as your utm_id?
There is no universal naming format that every organization needs to follow.
The important characteristics are that the ID should be:
Unique. Two different campaigns shouldn’t accidentally receive the same identifier.
Stable. Don’t change the ID because someone changes the campaign’s display name.
Consistent. Establish one method for generating IDs rather than letting every marketer invent their own.
System-friendly. Avoid turning the ID itself into another complicated campaign name.
Something simple such as:
cmp_1042
can work perfectly well.
You could also use an existing campaign ID from another marketing system when that makes sense for your organization.
utm_id does not replace utm_campaign
This is an important distinction.
Think of them as serving different purposes.
utm_campaign answers:
What is this campaign called?
utm_id answers:
Which campaign is this?
A descriptive campaign name is useful when a marketer looks at a GA4 report.
A stable campaign ID is useful when systems need to reliably identify and connect campaign records.
For more sophisticated marketing organizations, having both can be valuable.
The bigger issue is campaign governance
Whether you decide to use utm_id or not, the underlying problem is the same.
UTM tracking becomes increasingly difficult to manage when everyone creates campaign parameters independently.
You eventually get things like:
facebook
Facebook
fb
facebook.com
or campaign names that change depending on who created the URL.
Adding utm_id won’t fix poor campaign governance by itself.
You still need consistent rules for creating, naming, and managing your campaign parameters.
That’s also why tools such as UTM Manager become useful as campaign programs grow. Instead of treating every tagged URL as an isolated URL, you can manage campaign parameters and naming conventions centrally.
Bottom line
If you’re running a relatively simple marketing program, don’t feel that every URL suddenly needs utm_id.
Get your source, medium, and campaign naming right first.
But as your campaign tracking becomes more sophisticated—particularly if you’re combining GA4 with advertising platforms, campaign data imports, BigQuery, or other marketing systems—start thinking about a permanent campaign identifier.
That’s exactly the problem utm_id is designed to solve.
And once campaign names start changing while your campaign ID stays the same, you’ll understand why having both can be useful.
Still Building UTM Links in Spreadsheets?
Create clean campaign URLs faster, save templates, and standardize naming across your team.
