July 28, 2026 · 4 min read

LinkedIn Ads UTM Tracking: The Macros Changed

LinkedIn renamed its ad hierarchy in October 2025 and the dynamic UTM macros moved with it. Here are the current 8, and the one tag that changed meaning.

utm paid-social analytics

Your LinkedIn UTMs may be labelling the wrong level

Most guides to LinkedIn UTM tracking were written in 2024, some as far back as 2022, and they'll hand you a macro list that no longer matches what's in the platform. One of the better-ranking posts on this topic predates dynamic UTM support entirely and tells you to build every URL by hand.

The macro set changed. More importantly, the meaning of one macro changed while its name stayed identical, which is the kind of break that doesn't throw an error. It just quietly relabels your data.

What dynamic UTMs do

LinkedIn can fill in campaign values for you at delivery time instead of you typing them into every ad URL. You write a placeholder, LinkedIn substitutes the real name or ID when the ad serves.

The syntax rule from LinkedIn's own documentation: "The value must be in all capital letters, with double curly brackets before and after it." So a tracking URL looks like this:

https://yoursite.com/demo?utm_source=linkedin&utm_medium=paid&utm_campaign={{CAMPAIGN_NAME}}&utm_content={{AD_NAME}}

Allowed characters in the values are a-z, A-Z, 0-9 and underscore, plus the hyphen and plus sign. Anything outside that gets you a mess on arrival.

The current macro set

Eight of them, per LinkedIn's help documentation:

{{ACCOUNT_ID}}      {{ACCOUNT_NAME}}
{{CAMPAIGN_ID}}     {{CAMPAIGN_NAME}}
{{AD_SET_ID}}       {{AD_SET_NAME}}
{{AD_ID}}           {{AD_NAME}}

Now compare that to the set every older guide gives you:

{{ACCOUNT_ID}}          {{ACCOUNT_NAME}}
{{CAMPAIGN_GROUP_ID}}   {{CAMPAIGN_GROUP_NAME}}
{{CAMPAIGN_ID}}         {{CAMPAIGN_NAME}}
{{CREATIVE_ID}}         {{CREATIVE_NAME}}

Campaign group became campaign. Campaign became ad set. Creative became ad. LinkedIn shifted its naming to match what everyone else in paid social calls those tiers, which is fine and arguably overdue.

Here's the part that bites

{{CAMPAIGN_NAME}} exists in both lists. It doesn't mean the same thing in both.

Under the old naming it resolved to the middle tier, the thing that held your creatives. Under the new naming that middle tier is the ad set, and {{CAMPAIGN_NAME}} now resolves one level up, to what used to be called the campaign group.

Nothing breaks. No warning fires. Your utm_campaign values just start describing a different level of your account than they did before, and if you compare this quarter's LinkedIn performance to last year's, you're comparing two different things wearing the same label. Anyone who set up dynamic UTMs in 2024 and hasn't looked since is affected and probably doesn't know it.

Go look at a recent LinkedIn session in GA4 and ask whether the campaign value matches the tier you think it does. Takes two minutes.

Setting it up without creating a second problem

Dynamic macros solve typos. They don't solve taxonomy, and they introduce a specific hazard: whatever you named things inside LinkedIn is now your analytics data, permanently. A campaign called "Q3 test FINAL v2" becomes a row in your GA4 reports forever.

So decide the naming inside the ad account first. Our UTM naming conventions post covers the rules, and they apply doubly here because you can't clean up dynamic values after the fact without renaming things in LinkedIn itself.

A setup that works:

  • utm_source=linkedin and utm_medium=paid, both hardcoded. Never dynamic. These are the fields your channel grouping keys off, and one inconsistent value forks your reporting.
  • utm_campaign={{CAMPAIGN_NAME}}, knowing it's the top tier now.
  • utm_content={{AD_NAME}} for creative-level reporting.
  • Skip the ID macros unless you're joining back to the LinkedIn API. IDs are unreadable in reports and most teams never use them.

Build the base URL with a UTM builder and paste the macros into it, rather than typing the whole string into LinkedIn by hand. Fewer places to fat-finger a bracket.

What the documentation doesn't tell you

Two honest gaps.

LinkedIn's help page still describes the new macro set as arriving "starting October 2025" and carries a last-updated stamp of roughly eight months ago. That date has passed. The page reads as though it hasn't been rewritten since the change shipped, so treat my macro list as a strong prior and confirm against a live ad in your own account before you rebuild everything.

Second, older third-party posts claim Thought Leader Ads and boosted posts are excluded from dynamic UTM support. LinkedIn's current page says nothing either way. I'm not going to assert it's still true, because I couldn't verify it, and a confident claim sourced from an agency blog is exactly how this stuff goes wrong. Test a boosted post and watch what lands.

If you want the version of this problem where the platform fights you harder, Google Ads auto-tagging and UTMs covers running gclid and manual tags together without one erasing the other. LinkedIn is comparatively well-behaved. It just renamed the furniture without telling anyone loudly enough.

← All posts