How Do You Add UTM Parameters to LinkedIn Ads?
UTM parameters in LinkedIn Ads go directly into the destination URL field at the ad level in Campaign Manager. Unlike Meta's separate URL Parameters field, LinkedIn expects you to append UTM parameters to the landing page URL itself — full URL with ? and all parameters included.
That's one of the first things that trips people up when they switch from Meta or Google to LinkedIn. There is no dedicated "tracking" field. You build the full URL and paste it.
LinkedIn is the top paid channel for B2B marketers. According to LinkedIn Marketing Solutions, the platform reaches over 1 billion professionals across 200 countries, with 4 out of 5 members driving business decisions. The average cost per click on LinkedIn in 2025 ran between $5 and $12 — roughly 3-5x more expensive than Meta Ads. At those CPCs, broken UTM tracking doesn't just waste data. It wastes serious budget.
And until March 2024, LinkedIn offered zero dynamic UTM parameters. Every campaign URL had to be manually typed. That changed.
What Are LinkedIn's Dynamic UTM Parameters?
LinkedIn introduced dynamic URL parameters in March 2024, ending years of manual-only UTM tagging. There are 4 macros available — fewer than Meta's 8 or Google's 15+, but they cover the essentials for B2B campaign attribution.
| Dynamic Parameter | What It Inserts | Recommended UTM Field |
|---|---|---|
{{CAMPAIGN_NAME}} | Campaign name (text) | utm_campaign |
{{CAMPAIGN_ID}} | Campaign ID (numeric) | utm_id |
{{CAMPAIGN_GROUP_NAME}} | Campaign group name | utm_campaign |
{{CREATIVE_ID}} | Creative ID (numeric) | utm_content |
LinkedIn uses the double curly brace syntax with ALL CAPS — {{CAMPAIGN_NAME}}, not {{campaign.name}} like Meta. Confusing the two is a guaranteed broken link. Meta's macros won't resolve on LinkedIn, and vice versa.
One missing piece: LinkedIn has no {{PLACEMENT}} or {{AD_NAME}} macro. You can't dynamically track whether a click came from the LinkedIn Feed, the Audience Network, or a Message Ad. That limits granularity compared to Meta or Google. For now, the workaround is to use separate campaigns for different ad formats and bake that distinction into your static UTM values.
Pro tip: UTM Generator knows LinkedIn's exact macro syntax. Select "LinkedIn Ads" from the network dropdown and each field shows the correct dynamic parameters — no need to memorize the ALL CAPS format or check documentation.
What Is the Best UTM Template for LinkedIn Ads?
The Clean Signal Method template for LinkedIn Ads:
?utm_source=linkedin&utm_medium=paid_social&utm_campaign={{CAMPAIGN_NAME}}&utm_content={{CREATIVE_ID}}&utm_id={{CAMPAIGN_ID}}
Here's why each value is set the way it is:
utm_source=linkedin — Static. The platform sending the traffic doesn't change. Some teams write li or linkedin_ads — but keeping it simple with linkedin matches the source taxonomy that scales across all platforms.
utm_medium=paid_social — This matches GA4's Default Channel Grouping for paid social traffic. Writing cpc, sponsored, or social sends LinkedIn traffic to GA4's "Unassigned" channel. That's a 100% data loss in your channel reports. paid_social is one of the two values GA4 recognizes for this grouping (along with cpm).
utm_campaign={{CAMPAIGN_NAME}} — Dynamic. Whatever you named the campaign in Campaign Manager gets pulled in automatically. Rename it to something better in July? The new name shows up in new clicks. No URL editing needed.
utm_content={{CREATIVE_ID}} — The numeric creative ID tells you which ad variation drove each click. Since LinkedIn doesn't offer a {{AD_NAME}} macro, the ID is what you get. Match it back to Campaign Manager when analyzing.
utm_id={{CAMPAIGN_ID}} — Non-negotiable for GA4 cost data import. Without utm_id, you can't match LinkedIn spending data to GA4 sessions. And unlike campaign names, numeric IDs survive renames.
How Do You Set Up UTM Tracking in LinkedIn Campaign Manager?
Setting up UTM tracking in LinkedIn Campaign Manager takes about 3 minutes per campaign. But there's a more efficient approach.
Step 1: Build your UTM URL
Start with your landing page URL and append the parameters:
https://example.com/demo?utm_source=linkedin&utm_medium=paid_social&utm_campaign={{CAMPAIGN_NAME}}&utm_content={{CREATIVE_ID}}&utm_id={{CAMPAIGN_ID}}
Step 2: Paste into the Destination URL field
In Campaign Manager, navigate to your ad creative. The URL goes into the Destination URL (or Header link URL for carousel ads). Paste the full URL including all UTM parameters.
Step 3: Validate
LinkedIn shows a preview. Click through it. Verify that your landing page loads and the URL bar shows the resolved dynamic parameters — actual campaign names and IDs, not the macro syntax.
One thing I learned after losing two weeks of attribution data: LinkedIn's dynamic parameters only resolve for Sponsored Content and Document Ads format. If you're running Message Ads (formerly InMail), the URL parameters work differently — the macros resolve in the CTA button URL, not the message body links. Test every ad format separately.
For teams running 15+ campaigns, building each URL manually is painfully slow. Use a UTM generator with LinkedIn support to build the URL once as a template, then share it across your team through a URL — everyone gets the same consistent structure without re-typing macros.
How Does LinkedIn Attribution Compare to GA4 UTM Data?
LinkedIn's built-in attribution and GA4's UTM-based attribution will show you different numbers for the same campaign. Always. Understanding why prevents a lot of wasted meetings.
LinkedIn counts a conversion when someone clicks your ad and converts within a 30-day click window or 7-day view-through window (configurable). GA4 attributes the conversion to whatever source drove the session, using last-click by default.
Here's a real scenario. A VP of Engineering sees your ad on Monday, doesn't click. Sees it again Thursday, clicks, browses your site, leaves. Friday, they Google your company name and sign up. LinkedIn reports: 1 conversion (view-through). GA4 reports: organic search conversion. The UTM data says nothing about the ad impression. Neither tool is wrong — they're measuring different things.
| Metric | LinkedIn Attribution | GA4 (UTM-based) |
|---|---|---|
| Attribution model | Last-touch + view-through | Last-click (default) |
| Click window | 30 days (configurable: 1, 7, 30, 90) | Session-based |
| View-through | 7 days (configurable: 1, 7) | Not tracked |
| Cross-device | LinkedIn profile-based | Cookie/device-based |
| Data delay | 24-48 hours | 24-48 hours |
For B2B, the gap between LinkedIn and GA4 numbers is typically wider than for B2C platforms. B2B buying cycles run 3-6 months. Most of your pipeline influence happens through impressions and repeated exposure that UTMs can't capture.
So why bother with UTMs on LinkedIn at all? Because UTMs give you the one thing LinkedIn attribution can't: cross-channel comparison. With consistent UTM tagging across LinkedIn, Google, and Meta, you can see in a single GA4 report which channel drives the most engaged sessions, the highest form completion rate, and the lowest cost per qualified lead.
What Are Common LinkedIn UTM Mistakes That Break B2B Tracking?
B2B marketers on LinkedIn make specific mistakes that are different from what you see on Meta or Google. Five stand out.
Mistake 1: Using cpc as utm_medium. LinkedIn's Campaign Manager shows CPC pricing, so people write utm_medium=cpc. But GA4's Default Channel Grouping maps cpc to "Paid Search," not "Paid Social." Your LinkedIn traffic appears alongside Google Ads in reports. Use paid_social.
Mistake 2: Stuffing job titles into UTM parameters. B2B targeting is granular — you're reaching "VP of Marketing at SaaS companies with 50-200 employees." Some teams put audience details like utm_term=vp_marketing_saas into UTM parameters. That's fine for utm_term, but I've seen teams put this in utm_source or utm_campaign instead. Right value, right field.
Mistake 3: Forgetting dynamic parameters exist. Since LinkedIn only got macros in March 2024, many teams still use hardcoded campaign names from their pre-2024 setup. When they rename a campaign — and in B2B you rename constantly as strategies shift quarterly — the hardcoded UTMs go stale. Switch to {{CAMPAIGN_NAME}}.
Mistake 4: Missing utm_id for cost import. LinkedIn's CPCs are high. Importing cost data into GA4 to calculate true ROAS requires utm_id. Without it, you see sessions but not spend. At $8-12 per click, that's an expensive blind spot.
Mistake 5: Inconsistent source names across the org. Sales ops uses utm_source=LinkedIn. Demand gen uses utm_source=linkedin_ads. Growth uses utm_source=li. Three teams, three "sources" in GA4. GA4 is case-sensitive: LinkedIn and linkedin are two different entries. Lowercase linkedin. Period.
How Is LinkedIn UTM Tracking Different from Meta and Google?
LinkedIn sits in a unique spot in the paid media landscape for B2B. The tracking setup reflects that.
| Feature | LinkedIn Ads | Meta Ads | Google Ads |
|---|---|---|---|
| Dynamic parameter count | 4 | 8 | 15+ |
| Macro syntax | {{ALL_CAPS}} | {{dot.notation}} | {lowercase} |
| Where UTMs go | Destination URL field | URL Parameters field (no ?) | Tracking Template ({lpurl}) |
| Placement macro | Not available | {{placement}} | {placement} |
| Auto-tagging (click ID) | li_fat_id (limited) | fbclid | gclid |
| GA4 cost data import | Via utm_id | Via utm_id | Auto (GCLID) or utm_id |
| Account-level template | Not available | Not available | Yes (Tracking Template) |
The biggest practical difference: Google Ads lets you set a Tracking Template at account level — one template covers every ad. LinkedIn requires you to set the destination URL per ad. For large B2B accounts running 50+ ad variations, that's a meaningful operational difference.
LinkedIn also lacks an account-level click identifier comparable to Google's GCLID. LinkedIn does append li_fat_id (LinkedIn First-Party Ad Tracking ID) to URLs, but it's limited to LinkedIn Insight Tag integrations and doesn't flow into GA4 the way GCLID does. UTMs remain the primary attribution mechanism for LinkedIn traffic in GA4.
For a deeper comparison of all platform macro syntaxes, see the UTM parameters explained guide.
Can You Use Custom UTM Parameters for LinkedIn B2B Campaigns?
Standard UTM parameters — source, medium, campaign, content, term — cover channel attribution. But B2B campaigns often need deeper segmentation that five fields can't handle.
Custom parameters are your answer. They travel in the URL alongside standard UTMs and get captured by hidden form fields on your landing page.
Useful custom parameters for LinkedIn B2B:
| Custom Parameter | Example Value | What It Tells You |
|---|---|---|
funnel_stage | tofu, mofu, bofu | Which funnel stage the campaign targets |
audience | cmo_saas_50-200, it_directors | Which audience segment clicked |
offer | ebook_leadmagnet, demo_free | What was offered |
geo | us, dach, uk | Geographic targeting |
language | en, de, fr | Language of the creative |
A full URL with custom parameters for a LinkedIn lead gen campaign:
https://example.com/demo?utm_source=linkedin&utm_medium=paid_social&utm_campaign={{CAMPAIGN_NAME}}&utm_content={{CREATIVE_ID}}&utm_id={{CAMPAIGN_ID}}&funnel_stage=mofu&audience=cmo_saas&offer=demo_free
The critical part most teams forget: your landing page forms need hidden fields that match these parameter names exactly. If you add funnel_stage=mofu to the URL but your HubSpot form doesn't have a hidden field called funnel_stage, that data disappears the moment someone submits the form. It never reaches your CRM.
This is where the Clean Signal Method's principle of "Right Value, Right Field" extends beyond UTM fields to your entire data pipeline — from ad click to CRM record.
FAQ
Do LinkedIn Ads support dynamic UTM parameters?
Yes, since March 2024. LinkedIn offers 4 dynamic macros: {{CAMPAIGN_NAME}}, {{CAMPAIGN_ID}}, {{CAMPAIGN_GROUP_NAME}}, and {{CREATIVE_ID}}. They use double curly braces with ALL CAPS syntax — different from Meta and Google. These macros resolve at click time, inserting actual campaign data into the URL automatically.
What utm_medium should I use for LinkedIn Ads?
Use utm_medium=paid_social. This matches GA4's Default Channel Grouping for paid social traffic. Common mistakes include using cpc (which GA4 maps to "Paid Search"), sponsored (maps to "Unassigned"), or linkedin (also "Unassigned"). Only paid_social or cpm correctly route LinkedIn traffic in GA4 channel reports.
Where do I add UTM parameters in LinkedIn Campaign Manager?
Add them directly to the Destination URL field at the ad level. Unlike Meta (which has a separate URL Parameters field) or Google (which uses a Tracking Template), LinkedIn expects the full URL including all parameters. Include the ? before your first parameter.
Does LinkedIn have auto-tagging like Google's GCLID?
LinkedIn appends li_fat_id to URLs, but it works differently from Google's GCLID. The LinkedIn ID only integrates with the LinkedIn Insight Tag and LinkedIn's own attribution — it doesn't flow into GA4. For GA4 attribution, you need UTM parameters. You can use both simultaneously without conflict.
Why do LinkedIn and GA4 show different conversion numbers?
LinkedIn uses view-through attribution with a 7-day window — it counts conversions from people who saw but didn't click your ad. GA4 defaults to last-click attribution and doesn't track view-through at all. For B2B campaigns with long sales cycles, LinkedIn typically reports 20-40% more conversions than GA4 for the same campaign.
How do I import LinkedIn Ads cost data into GA4?
Add utm_id={{CAMPAIGN_ID}} to every LinkedIn ad URL. GA4's cost data import uses utm_id to match spending data with traffic sessions. Without it, you see sessions and conversions but can't calculate ROAS directly in GA4. Export cost data from Campaign Manager and import via GA4 Admin > Data Import.
Can I set a tracking template at account level in LinkedIn?
No. LinkedIn doesn't support account-level or campaign-level tracking templates. You must set the destination URL with UTM parameters individually for each ad. For teams running many ad variations, use UTM Generator to build a template once, then share it via URL so your team applies consistent parameters without re-typing macros for every ad.
Should I use UTM parameters on LinkedIn organic posts too?
Yes, for any link you share in organic LinkedIn posts, add UTM parameters with utm_source=linkedin&utm_medium=organic. This distinguishes organic LinkedIn traffic from paid in GA4. Without UTMs, organic LinkedIn clicks typically appear as "referral" or "direct" traffic in GA4, making it impossible to measure your content marketing ROI on the platform.
Start Tracking LinkedIn Ads Properly
LinkedIn Ads CPCs are too high to fly blind. Every click without proper UTM tracking is $5-12 of budget with no attribution trail.
Build your first LinkedIn UTM template in UTM Generator — select LinkedIn Ads from the network dropdown, and the correct {{ALL_CAPS}} dynamic parameters appear automatically in each field. Save it as a template, share the URL with your team, and stop manually typing macros into Campaign Manager.