TikTok fills your UTM values in for you. LinkedIn does not. That single asymmetry decides how you build tracking for paid social, because one platform rewards a template and the other punishes every typo.
On TikTok, macros such as __CAMPAIGN_NAME__ expand at click time, so one URL template covers every ad and a rename follows through automatically. On LinkedIn, every value is typed into the destination URL at ad level, which means a written convention and a builder are the only things standing between you and two rows for one campaign.
This is the paid-social sibling of UTM parameters for Google and Meta ads. The fundamentals are in UTM parameters explained, and if tags are already arriving wrong, UTM parameters not showing in GA4 is the troubleshooting version.
TikTok: Let the Macros Do It
TikTok Ads Manager supports dynamic parameters that expand when someone clicks. A workable template:
https://example.com/landing
?utm_source=tiktok
&utm_medium=paid_social
&utm_campaign=__CAMPAIGN_NAME__
&utm_content=__CREATIVE_NAME__
&utm_term=__PLACEMENT__
Set that once at ad level and it survives contact with reality. Rename a campaign in the interface and the tag follows, because the value is resolved at click time rather than copied at setup time.
Two rules keep it clean. Hard-code utm_source and utm_medium rather than deriving them from a macro, so the channel grouping is stable no matter what someone names a campaign. And keep macro output out of utm_medium entirely, because a creative called "Summer Sale v3" would become a medium, and GA4 would file the whole thing under Unassigned.
The syntax is platform-specific in a way that matters: TikTok uses double underscores, Google uses single curly braces, Meta uses double curly braces. Copy a Meta template into TikTok and the literal string {{campaign.name}} ends up in your reports as a campaign name.
LinkedIn: There Is No Macro, So Build the Discipline
LinkedIn Campaign Manager takes UTM parameters as part of the destination URL on each ad, and there is no dynamic substitution. Everything is typed.
That has three consequences worth planning for.
A renamed campaign does not update its tags, so the report keeps the old name while the interface shows the new one. Decide names before launch and treat them as immutable afterwards.
Case and spacing split rows silently. Q3_Launch and q3_launch are two campaigns in GA4, and nobody notices until a monthly report has half the numbers. Lowercase everything, always, and use underscores rather than spaces.
And because the value is typed per ad, a campaign with twelve ads has twelve chances to get utm_content wrong. Build the URLs in a sheet or a builder and paste them in, rather than typing directly into the ad. LinkedIn's own ad URL guidance covers where the field lives.
The Convention That Survives Both
Fix the vocabulary once, then apply it everywhere:
utm_sourceis the platform:tiktok,linkedin. One word, lowercase.utm_mediumis the category, from a closed list your analytics recognises:paid_socialorcpc. Never the platform name, never a creative name.utm_campaignis the campaign, in a format you can sort:2026q3_launchbeatsSummer Launch Final FINAL.utm_contentdistinguishes creatives, and is where a macro belongs when one exists.
UTM naming conventions has the longer version, including how to write it down so a new starter follows it without asking.
Then automate what you can and constrain what you cannot. A link shortener with a UTM builder turns medium into a dropdown, which removes the entire class of typos above for the links you build by hand.
Want the builder rather than a spreadsheet? Create an account on the free plan and build the LinkedIn URLs there, then paste them into Campaign Manager.
Where Short Links Fit, and Where They Do Not
A useful boundary that saves arguments: do not wrap paid ad destination URLs in a shortener.
Ad platforms need to read and expand their own macros, they run their own click measurement, and some reject or rewrite redirect chains. Put the tagged destination in the ad and let the platform do its job.
Short links belong everywhere else in the same campaign: the organic post that promotes the ad, the link in bio, the QR code on the event stand, the newsletter. Those are places you control end to end, where a branded domain and click data are pure upside. How to track social media links covers keeping organic and paid comparable in one report.
Verify Before the Budget Ramps
One test, on day one, for about a euro of spend: open GA4 DebugView, click your own ad, and read the incoming event.
You are checking one thing, that the campaign values arrive as expanded text rather than as the literal macro name. utm_campaign=__CAMPAIGN_NAME__ sitting unexpanded in the URL means the syntax is wrong for that platform, and it is the single most common failure in this whole area. Catching it on day one costs a euro; catching it in the monthly review costs the month.
Read the Cornerstone Series
This sits in the tutorials cluster. Start with UTM parameters explained, then track UTM campaigns end to end for the full workflow and UTM parameters for Google and Meta ads for the other two platforms.
Related on the Blog
Perguntas frequentes
What UTM parameters should I use for TikTok ads?
utm_source=tiktok, utm_medium=paid_social, a campaign name, and then the dynamic macros for the rest. TikTok supports macros such as __CAMPAIGN_NAME__, __ADGROUP_NAME__, __CREATIVE_NAME__, and __PLACEMENT__, which expand at click time so a renamed ad keeps reporting into the same structure.
Does LinkedIn support dynamic UTM parameters?
No. LinkedIn Campaign Manager has no macro system, so every UTM value is typed into the destination URL at ad level. That makes a written naming convention and a URL builder mandatory rather than optional, because one retyped value silently splits a campaign into two rows.
What is the macro syntax on each ad platform?
Google uses single curly braces, Meta uses double curly braces, and TikTok uses double underscores around the name. The names differ too, so a template copied between platforms produces literal text in the URL instead of a value. Build one per platform.
Should the UTM tags go on the ad URL or on a short link?
On the destination URL the platform serves. Ad platforms need to see and expand their own macros, so wrapping the ad URL in a shortener can break that. Short links are for organic posts, bios, and print, where you control the click path end to end.
Why is my paid social traffic showing as Unassigned in GA4?
Because utm_medium holds a value the channel grouping does not recognise. Use paid_social or cpc rather than tiktok-ads or sponsored, and put the descriptive part in utm_source and utm_campaign. The medium is a category, not a label.
How do I test tags before spending money?
Open GA4 DebugView, click your own ad once, and confirm the campaign values arrive as expanded text rather than as literal macro names. Doing this on day one costs a euro of budget and prevents a fortnight of unusable data.
Experimente Elido
Cole uma URL, obtenha um link curto
Sem cadastro. O link vive 30 dias. Cadastre-se para mantê-lo para sempre.
Grátis, sem necessidade de registo · 2 por dia