If you’re running paid social campaigns across Meta, LinkedIn, and TikTok, your UTM structure can get messy surprisingly quickly.
One campaign might use:
utm_source=facebook&utm_medium=paid
Another:
utm_source=linkedin&utm_medium=cpc
And TikTok might be:
utm_source=tiktok&utm_medium=paid_social
Each URL technically has UTM parameters.
But when the data reaches Google Analytics 4 (GA4), you’ve created three different ways of describing essentially the same type of traffic.
The solution is to establish a consistent UTM taxonomy across platforms.
The goal isn’t to make every platform look identical. It’s to standardize the parts that should be consistent while preserving the information that makes each campaign, audience, and ad unique.
Here’s a practical way to do it.
A simple paid social UTM structure
For most organizations, I recommend starting with this structure:
| Parameter | Purpose | Example |
|---|---|---|
utm_source | Advertising platform | facebook, linkedin, tiktok |
utm_medium | Marketing channel | paid_social |
utm_campaign | Campaign | 2026_q4_product_launch |
utm_content | Ad/creative | video_customer_story |
utm_term | Audience or targeting | marketing_directors |
utm_id | Unique campaign ID | cmp_1042 |
The important part is that the rules remain consistent across platforms.
For example:
Meta
?utm_source=facebook&utm_medium=paid_social&utm_campaign=2026_q4_product_launch&utm_content=video_customer_story&utm_term=retargeting_30d
?utm_source=linkedin&utm_medium=paid_social&utm_campaign=2026_q4_product_launch&utm_content=video_customer_story&utm_term=marketing_directors
TikTok
?utm_source=tiktok&utm_medium=paid_social&utm_campaign=2026_q4_product_launch&utm_content=video_customer_story&utm_term=interest_marketing
Now your GA4 reporting has a predictable structure.
1. Use utm_source for the platform
Your source should answer:
Where did this traffic come from?
For paid social, that usually means the advertising platform.
Examples:
facebook
instagram
linkedin
tiktok
The most important thing is consistency.
Don’t let your organization end up with:
facebook
Facebook
fb
facebook.com
meta
unless those distinctions are intentional.
Should Meta be facebook, instagram, or meta?
This is one of the decisions your organization needs to make.
If knowing whether traffic came from Facebook versus Instagram is important, use:
utm_source=facebook
and
utm_source=instagram
If your reporting treats Meta as one advertising platform, you could instead standardize around:
utm_source=meta
There isn’t one universally correct answer.
What’s important is that you make the decision once and apply it consistently.
Don’t have one campaign using meta, another using facebook, and another using fb.
2. Keep utm_medium consistent across all paid social platforms
This is where I see a lot of unnecessary fragmentation.
One team uses:
utm_medium=cpc
Another uses:
utm_medium=paid
Another:
utm_medium=social
And another:
utm_medium=paid_social
If all of these campaigns are paid social advertising, choose a controlled value and use it everywhere.
For example:
utm_medium=paid_social
Then Meta, LinkedIn, and TikTok all follow the same rule:
facebook / paid_social
instagram / paid_social
linkedin / paid_social
tiktok / paid_social
That makes cross-platform reporting much easier.
Instead of trying to remember five different medium values, you can analyze paid social as a category and then use source to break performance down by platform.
3. Don’t put the platform name in utm_campaign
A common campaign name might look like:
linkedin_q4_product_launch
But if utm_source already tells you that the traffic came from LinkedIn, you’re storing the same information twice.
Consider using:
utm_source=linkedin
utm_medium=paid_social
utm_campaign=2026_q4_product_launch
Now the same campaign can run across multiple platforms.
Meta:
facebook / paid_social / 2026_q4_product_launch
LinkedIn:
linkedin / paid_social / 2026_q4_product_launch
TikTok:
tiktok / paid_social / 2026_q4_product_launch
This makes it much easier to answer:
How did the product launch perform overall?
and then:
How did each platform perform within the product launch?
Your campaign identifies the marketing initiative.
Your source identifies the platform.
Let each parameter do its own job.
4. Create a predictable utm_campaign naming convention
Campaign naming is where things often become complicated.
A useful campaign structure might be:
year_period_initiative
For example:
2026_q4_product_launch
or:
2026_black_friday
or:
2026_webinar_ga4_reporting
Your exact structure depends on your organization.
You might include:
- Year
- Quarter or month
- Product
- Region
- Initiative
- Promotion
- Campaign type
But don’t automatically put everything into the campaign name.
Something like:
2026_q4_us_productx_awareness_paid_social_launch_v2
may contain lots of information, but it also becomes difficult for humans to create correctly.
A good taxonomy balances useful information with usability.
5. Use utm_content to identify the ad or creative
utm_content is especially useful for paid social because campaigns frequently contain multiple creatives.
For example:
video_customer_story
video_product_demo
carousel_features
static_free_trial
Now you can compare creative performance while keeping source, medium, and campaign consistent.
For example:
utm_source=linkedin
utm_medium=paid_social
utm_campaign=2026_q4_product_launch
utm_content=video_customer_story
versus:
utm_source=linkedin
utm_medium=paid_social
utm_campaign=2026_q4_product_launch
utm_content=carousel_features
That gives utm_content a clear purpose:
Which creative or ad generated the visit?
6. Decide what utm_term means for paid social
Historically, utm_term is commonly associated with paid-search keywords.
But organizations sometimes use it for another useful piece of campaign metadata when keywords aren’t relevant.
For paid social, audience or targeting information can be useful.
For example:
utm_term=marketing_directors
utm_term=retargeting_30d
utm_term=lookalike_customers
utm_term=interest_analytics
This can help you analyze audiences across campaigns.
However, there’s an important governance rule here:
Define what utm_term means before people start using it.
You don’t want one marketer putting audiences there while another uses it for creative names and another uses it for campaign objectives.
The value of a taxonomy comes from everyone assigning the same meaning to the same field.
7. Consider using utm_id as your campaigns scale
Campaign names are useful for people.
Campaign IDs are useful for systems.
For example:
utm_id=cmp_1042
could represent your product-launch campaign regardless of where it runs.
Then you might have:
utm_id=cmp_1042&utm_source=facebook...
utm_id=cmp_1042&utm_source=linkedin...
utm_id=cmp_1042&utm_source=tiktok...
The ID remains stable while the source and other campaign attributes change.
You don’t necessarily need utm_id if you’re running a handful of campaigns.
But as campaign operations become more sophisticated, having a permanent campaign identifier can become valuable—particularly when combining advertising data, GA4, BigQuery, CRM data, or other marketing systems.
8. Use platform macros carefully
Meta, LinkedIn, TikTok, and other advertising platforms can provide dynamic values or macros that help populate tracking parameters automatically.
This can save a tremendous amount of manual work.
Instead of manually creating a different URL for every ad, you may be able to dynamically insert information such as campaign, ad, or other platform identifiers.
But automation doesn’t eliminate the need for governance.
In fact, it makes governance more important.
Before implementing dynamic parameters, decide:
What does each UTM parameter represent?
Then map the appropriate platform value into it.
Otherwise, you can automate inconsistent tracking at enormous scale.
9. Use IDs when platform names can change
There is another issue with automatically inserting campaign and ad names.
Names can change.
An advertiser might rename:
Product Launch
to:
Product Launch - US
or change an ad name after launch.
Depending on how the advertising platform handles dynamic parameters, the values captured in your UTMs may not behave exactly as you expect after those changes.
For more sophisticated implementations, consider capturing stable platform IDs alongside useful human-readable values.
For example, you might want to preserve identifiers for:
- Campaign
- Ad set/ad group
- Ad
This becomes particularly valuable when campaign data eventually lands in a data warehouse such as BigQuery.
Names are great for reporting.
IDs are better for reliably joining data.
10. Don’t let each advertising platform create its own taxonomy
This is probably the most important rule.
It’s tempting to configure Meta one way, LinkedIn another way, and TikTok according to whatever examples each platform provides.
That creates three tracking systems.
Instead, start with your organization’s campaign taxonomy.
Then configure each advertising platform to follow it.
Think of it this way:
Your taxonomy should control the platforms.
The platforms shouldn’t control your taxonomy.
Example cross-platform UTM framework
Here’s a simple framework you could adopt:
| Platform | Source | Medium | Campaign | Content | Term |
|---|---|---|---|---|---|
| Meta/Facebook | facebook | paid_social | 2026_q4_product_launch | video_demo | retargeting_30d |
| Meta/Instagram | instagram | paid_social | 2026_q4_product_launch | carousel_features | lookalike_customers |
linkedin | paid_social | 2026_q4_product_launch | customer_story | marketing_directors | |
| TikTok | tiktok | paid_social | 2026_q4_product_launch | creator_video | interest_marketing |
Notice what’s consistent.
Medium stays the same.
Campaign stays the same.
Source tells us where the traffic originated.
Content identifies the creative.
Term identifies the audience.
Now the data has a structure.
The real problem isn’t building UTM URLs
Creating one UTM-tagged URL is easy.
Managing 10 is easy.
Managing hundreds or thousands of URLs created by multiple marketers, agencies, departments, and platforms is where things get difficult.
Eventually you see:
paid_social
paidsocial
paid-social
social_paid
cpc
And campaign names like:
q4_launch
Q4-Launch
product_launch_q4
2026_productlaunch
They may all represent the same marketing activity, but your analytics system doesn’t automatically know that.
That’s why UTM governance matters.
A system such as UTM Manager can help teams define approved values, establish naming conventions, reuse campaign structures, and create tagged URLs without relying on every marketer to remember the taxonomy.
Start simple, then enforce it
You don’t need a 50-page UTM governance document.
Start with a few decisions:
Source = platform
Medium = channel
Campaign = marketing initiative
Content = creative
Term = audience/targeting
ID = permanent campaign identifier, when needed
Then document the allowed formats and values.
The hardest part isn’t designing the perfect UTM taxonomy.
It’s getting everyone to use the same one.
Once Meta, LinkedIn, TikTok, your agencies, and your internal marketing team all follow the same structure, your GA4 campaign reports become much easier to understand—and much more useful.
Still Building UTM Links in Spreadsheets?
Create clean campaign URLs faster, save templates, and standardize naming across your team.
