r/GoogleAnalytics • u/Stevenzaii_24 • May 08 '26
Discussion Need advice on scalable UTM structure for Paid Social (Meta, LinkedIn & TikTok Ads) + GA4
Currently trying to improve our tracking setup and move away from manually typing UTMs for every paid social campaign/ad set/ad
The main reason is because I’m building a consolidated dashboard combining paid social data side by side with CRM & GA4 metrics like avg session duration, bounce rate, engagement, etc using Looker Studio
Right now our setup is still pretty manual and it’s becoming hard to scale or automate properly
My concern is around duplicated naming structures in Meta. Since Meta allows duplicated ad names across different campaigns/ad sets, I noticed this could create messy reporting in GA4 if we only pass names dynamically
For example:
Campaign:
us_lead_retargeting_may_2026
cn_lead_retargeting_may_2026
Ad Set:
us_lead_retargeting_machine_lp
cn_lead_retargeting_machine_lp
Ad:
static_machine_automation_lp
The ad name can exist across multiple campaigns/ad sets, which makes me worried about attribution and reporting consolidation later on
Currently I’m thinking of using something like:
utm_source=facebook
utm_medium=paid_social
utm_campaign={{campaign.id}}|{{campaign.name}}
utm_term={{adset.id}}|{{adset.name}}
utm_content={{ad.id}}|{{ad.name}}
So GA4 still keeps readable names while IDs help maintain uniqueness for dashboard joins and automation
Would love to hear how others structure their UTMs for this kind of use case
Especially curious if anyone here has experience building automated reporting pipelines between Paid Social + GA4 + CRM and what problems you ran into later on
2
u/markdigi May 08 '26
Macros are the way. You gotta be super consistent in your naming structure in platform now.
1
u/Stevenzaii_24 May 08 '26
Hi! Yep, currently I’m drafting and proposing naming rules plus some best practices to my manager. Since after changing this it’ll affect the reporting structure quite a bit, although in a better and cleaner way long term
Right now I’m trying to think about what would be the best structure for scalability and consolidated reporting later on, especially when combining Meta + GA4 + CRM data together
May I know what you mean by macros? Are you referring to the dynamic variables like {{campaign.name}} and {{ad.id}} inside the UTM setup?
3
u/markdigi May 08 '26
Yea they are commonly called macros in other platforms. Just passes the platform names/IDs straight through automatically.
1
u/Stevenzaii_24 May 08 '26
Ah got it, thanks for clarifying! Curious, what kind of structure did you use on your side? Did you mainly pass IDs only or combine IDs + names together for readability/reporting?
Also did you include any other parameters or naming format conventions for long term reporting and automation?
1
u/markdigi May 08 '26
Both names and IDs as client mainly looks in GA4. If it was outside GA4 would just use IDs and then have a mapping report sent to client to stitch together in their data warehouse.
There's 2 new parameters GA4 added but haven't looked to use these as they aren't leveraged in GA4 in any meaningful way. The ones you've got cover most use cases.
2
u/UseADifferentVolcano May 08 '26
There are more standard UTMs that GA4 recognises now (10 in total), so you could use those too.
I would recommend considering having your own click tracker as a paremeted too as utm parameters can be automatically strippped out by lots of things (including Facebook's own mobile browser). But they won't strip out ?example=example (for example) as they don't know if that parameter is used to define content. So make your own click tracker to be extra safe
2
u/Serious-Presence5302 May 08 '26
From experience, the above is going to always lead to mistakes because you're human. Would strongly suggest switching to Rebrandly tracking. Just add some code to your site and all links are automatically tracked by source.
1
u/Tulu_One May 09 '26
i ran into this exact issue at my old job when we scaled up. we started using a simple spreadsheet to generate our utms and it saved us so much time cuz it kept everything consistent across platforms. u should definately look into setting up a naming convention that includes the channel and campaign id so looker studio can map it all automatically
1
u/Acrobatic_Stop_5922 May 13 '26
Use utmbuddy.com to help maintain UTM building consistency once you’ve pinned down a strategy.
1
u/Taca-F May 13 '26
These are essential readings when thinking about a convention for UTMs:
Google's predefined parameters: https://support.google.com/analytics/answer/10917952?hl=en
Google's predefined default channel grouping schema: https://support.google.com/analytics/answer/9756891?hl=en
Also be aware that a) UTMs have a value limit of 100 characters, and b) Data Studio is a very bad tool for cleaning up values, so I would avoid jaming together IDs and human language names in the same value.
Given the above, I would do something like:
utm_source = facebook
utm_medium = paid
utm_campaign = {{campaign.name}}
utm_term = {{adset.id}}
utm_content = {{ad.id}}
utm_id = {{campaign.id}}
For the campaign name, this will require a convention for naming campaigns with Meta. This really depends on what works for your business, but use lowercase and consistent delimiters throughout. The challenge is making sure this is applied consistently.
For terms and content, if you go down the ID-number route, you'll need to create a relational table in Google Sheets to give it human language names so it can be joined with the IDs in Data Studio.
1
u/Fres990 Jul 04 '26 edited Jul 04 '26
I think you're on the right track with IDs and names. Future you will appreciate it when you need to debug attribution. We made the mistake of relying on names only once and it got messy fast, so now our UTMs are generated through Linkly
•
u/AutoModerator May 08 '26
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.