
Make confident, data-driven decisions with actionable ad spend insights.
© 2026 DataCops. All rights reserved.
13 min read
For B2B marketing, LinkedIn is paramount, yet its native browser tracking—the Insight Tag—suffers from the same crippling flaws as the Meta Pixel: ad blockers, browser restrictions (ITP), and an over-reliance on third-party cookies. The LinkedIn Conversion API (CAPI) is the necessary server-side solution that ensures your high-value lead and account data—the bedrock of B2B campaigns—actually makes it back to the platform for optimization.

Orla Gallagher
PPC & Paid Social Expert
Last Updated
December 13, 2025
The Problem: LinkedIn Ads reports 300 eBook downloads from your VP of Engineering campaign. Your CRM shows only 5 new leads. Web analytics shows conversions as "Direct" or "Organic," not LinkedIn. You cannot determine which campaigns drive actual pipeline because LinkedIn Insight Tag gets blocked for 30-50% of B2B decision-makers who use ad blockers and privacy-focused browsers.
The Reason: LinkedIn Insight Tag loads from snap.licdn.com (third-party domain) that ad blockers and Safari ITP prevent from firing. Privacy-conscious executives (your target audience) most likely to block tracking. When tag blocked, conversion happens but LinkedIn never sees it. Manual backend integration loses li_fat_id attribution data. Data reaches LinkedIn but cannot match to original ad click.
The Solution: Implement LinkedIn Conversions API that sends conversion data from your server to LinkedIn, bypassing browser blocking. Use first-party tracking via CNAME to capture li_fat_id for 95%+ of users instead of 50%. Filter bot traffic before sending to CAPI. Send clean, complete conversion data with attribution IDs for accurate campaign optimization.
LinkedIn Conversions API (CAPI) sends conversion data from your server directly to LinkedIn, bypassing browser-based Insight Tag tracking that gets blocked by ad blockers and privacy browsers.
How Insight Tag tracking works (browser-based):
User clicks LinkedIn ad.
Lands on website, Insight Tag loads in browser.
User converts (downloads eBook, submits form).
Insight Tag sends conversion to LinkedIn from user's browser.
Where Insight Tag fails:
Ad blocker prevents tag from loading (no tracking).
Safari ITP limits third-party cookies (attribution breaks).
Privacy browsers block third-party scripts (tag never fires).
30-50% of B2B users affected (executives use privacy tools).
How LinkedIn CAPI works (server-based):
User clicks LinkedIn ad, visits website.
User converts (downloads eBook).
Your server detects conversion.
Server sends conversion directly to LinkedIn API.
Server-to-server, not affected by browser blocking.
Why CAPI improves tracking:
Bypasses ad blockers (server connection, not browser).
Not affected by Safari ITP restrictions.
Works for privacy-conscious users.
Captures conversions from 95%+ of users instead of 50-60%.
LinkedIn Insight Tag loads from third-party domain that ad blockers and privacy browsers prevent from executing for 30-50% of B2B decision-makers.
Insight Tag loading:
Script source: https://snap.licdn.com/li.lms-analytics/insight.min.js
Browser classifies as third-party (different domain than your website).
Ad blocker recognizes snap.licdn.com as tracking domain.
Who blocks LinkedIn tracking:
Ad blocker users:
Desktop: 40-45% of corporate users run uBlock Origin, Ghostery.
Mobile: 20-25% use ad blocking browsers.
Privacy browser users:
Brave browser: Blocks third-party trackers by default.
DuckDuckGo browser: Blocks snap.licdn.com.
Firefox with Enhanced Tracking Protection: Blocks social trackers.
Safari ITP impact:
Limits third-party cookies to 7 days.
li_fat_id (LinkedIn attribution cookie) expires after 7 days.
Multi-week B2B consideration cycles lose attribution.
The B2B problem:
Your target: VPs, Directors, C-level executives.
These users most privacy-conscious (use ad blockers, Brave, VPNs).
Highest-value prospects are invisible to Insight Tag.
LinkedIn reports low conversion rates when they actually convert at high rates.
Most LinkedIn CAPI setups fail because they do not fix the foundational data capture problem, only improve data delivery.
Problem 1: GTM server-side container
Google Tag Manager server-side receives data from client-side GTM.
Client-side GTM blocked by ad blockers (30-50% of users).
No data collected, nothing to send to server container.
Server container receives zero data for blocked users.
LinkedIn CAPI gets nothing (garbage in, garbage out).
Problem 2: Manual backend integration
Engineers send CAPI event when conversion recorded in database.
But missing li_fat_id (LinkedIn Click ID) for attribution.
li_fat_id exists in browser URL when user clicks ad.
If Insight Tag blocked, li_fat_id never captured.
Backend sends conversion without attribution ID.
LinkedIn receives conversion but cannot match to campaign.
Problem 3: Bot traffic pollution
CAPI reliably sends all conversions.
Includes bot form submissions and fake downloads.
LinkedIn algorithm learns from bot patterns.
Optimizes toward more bot traffic, not real prospects.
The core issue:
CAPI is delivery mechanism (the pipe).
Does not fix data collection (the source).
Sending incomplete or polluted data via CAPI only automates bad data delivery.
li_fat_id is LinkedIn's Click ID added to landing page URLs when users click LinkedIn ads, enabling accurate attribution matching for conversions.
How li_fat_id works:
User clicks your LinkedIn ad.
LinkedIn appends li_fat_id to landing page URL:
yoursite.com/landing?li_fat_id=ABC123XYZ...
Insight Tag (if firing) captures li_fat_id from URL.
Stores in cookie for future conversions.
What li_fat_id contains:
Specific LinkedIn ad that was clicked.
Specific user who clicked (LinkedIn member ID).
Campaign, ad creative identifiers.
Timestamp of click.
Why li_fat_id is critical for CAPI:
When sending conversion to LinkedIn API, include li_fat_id.
LinkedIn matches conversion to exact ad click.
Deterministic attribution (not probabilistic email matching).
The capture problem:
Insight Tag blocked for 30-50% of users.
li_fat_id in URL but no script to capture it.
Conversion happens but li_fat_id lost.
Later CAPI send has no attribution ID.
Cannot match conversion to original campaign.
Ad blockers prevent Insight Tag from capturing li_fat_id, so LinkedIn CAPI cannot attribute conversions to specific campaigns later.
Standard Insight Tag scenario:
User clicks LinkedIn ad with li_fat_id in URL.
Lands on website, has uBlock Origin installed.
Ad blocker prevents snap.licdn.com script from loading.
li_fat_id in URL but not captured (no script running).
User converts (downloads whitepaper).
Backend CAPI send:
Your server detects conversion.
Sends CAPI event to LinkedIn:
{
"conversion": "download",
"user": {"email": "[email protected]"}
}
Missing li_fat_id (was never captured).
LinkedIn receives conversion but cannot match to campaign.
Conversion appears as "Direct" or unattributed.
Attribution failure:
Spent $500 on LinkedIn ad for this user.
User converted but LinkedIn does not credit campaign.
Campaign appears to have 0 conversions (false).
Cannot optimize based on incomplete data.
Element GTM Server-Side Manual Backend First-Party CAPI
Data Collection Client GTM (blocked 30-50%) Standard Insight Tag (blocked 30-50%) First-party script (95%+ capture)
li_fat_id Capture Only if client tag fires Only if Insight Tag fires Captured even when blockers active
Bot Filtering None None Active before CAPI send
Attribution Accuracy 50-60% (missing blocked users) 50-60% (missing blocked users) 95%+ (complete coverage)
Setup Complexity High (cloud infrastructure) Very high (custom engineering) Low (managed platform)
Ongoing Maintenance High (monitoring, debugging) Very high (code updates) Low (automated)
First-party tracking via CNAME captures li_fat_id for 95%+ of users, enabling accurate LinkedIn CAPI attribution.
Standard tracking (fails to capture):
Insight Tag from snap.licdn.com (third-party).
Ad blocker prevents loading.
li_fat_id in URL but no script to read it.
First-party tracking (captures successfully):
Script from analytics.yourcompany.com (your subdomain via CNAME).
Ad blockers do not block your own domain.
Script reads li_fat_id from URL parameter.
Stores li_fat_id in first-party cookie.
Conversion flow:
User clicks LinkedIn ad with li_fat_id.
First-party script captures li_fat_id from URL.
Stores in cookie: _li_fat_id=ABC123XYZ
User browses site over multiple sessions (cookie persists).
Day 7: User downloads eBook.
Conversion triggers CAPI send with stored li_fat_id.
CAPI payload:
{
"conversion": "download",
"conversionHappenedAt": 1701456789,
"conversionValue": {
"amount": "500",
"currencyCode": "USD"
},
"user": {
"email": "SHA256_hash",
"li_fat_id": "ABC123XYZ"
}
}
LinkedIn receives li_fat_id, matches to campaign instantly.
Attribution complete, optimization data accurate.
Week 1: Implement first-party tracking
Create CNAME subdomain: analytics.yourcompany.com
Install first-party script on website.
Verify li_fat_id capture (click your own LinkedIn ad, check cookie).
Test with ad blocker active (should still capture).
Week 2: Configure li_fat_id persistence
First-party script captures li_fat_id from URL.
Stores in cookie with 90-day expiration.
Persists across multiple sessions and days.
Verify cookie survives browser close and reopen.
Week 3: Set up LinkedIn CAPI connection
Create LinkedIn CAPI credentials in Campaign Manager.
Configure API endpoint and authentication.
Test connection with sample event.
Week 4: Configure conversion events
Define conversion actions to track:
Form submissions
eBook downloads
Demo requests
Free trial signups
Map each to LinkedIn conversion type.
Week 5: Implement CAPI event sending
When conversion occurs, trigger CAPI send:
{
"conversion": "urn:li:conversion:12345",
"conversionHappenedAt": timestamp,
"user": {
"sha256Email": hashed_email,
"li_fat_id": captured_li_fat_id
}
}
Include li_fat_id from first-party cookie.
Hash email with SHA-256 for privacy.
Week 6: Enable bot filtering
Detect and filter bot traffic before CAPI send.
Check for data center IPs, headless browsers.
Only send verified human conversions.
Week 7: Verify and monitor
Check LinkedIn Campaign Manager for conversion matches.
Verify attribution to correct campaigns.
Monitor match rates (should be 90%+).
Compare to previous Insight Tag-only setup.
Mistake 1: Not capturing li_fat_id
Implement CAPI sending from backend.
Send email and conversion details.
Forget to capture li_fat_id.
LinkedIn receives conversion but cannot attribute.
Fix: Capture li_fat_id with first-party script, include in CAPI payload.
Mistake 2: Relying on email-only matching
Send CAPI events with only email hash.
Hope LinkedIn matches email to user profile.
Match rate only 40-60% (email mismatches).
Fix: Always include li_fat_id for deterministic matching (95%+).
Mistake 3: Not filtering bot conversions
Backend detects all form submissions.
Sends all to LinkedIn CAPI including bots.
LinkedIn algorithm learns from fake patterns.
Fix: Filter bots before CAPI send, only send human conversions.
Mistake 4: Missing conversion value
Send conversion event to LinkedIn.
Omit value parameter.
LinkedIn knows conversion happened but not revenue value.
Cannot optimize for ROAS.
Fix: Include estimated or actual deal value in CAPI payload.
Mistake 5: Delayed CAPI sends
Batch conversions, send weekly.
Data too old for real-time optimization.
Algorithm cannot learn from timely feedback.
Fix: Send CAPI events within minutes or hours of conversion.
Check 1: li_fat_id capture rate
[ ] Click your own LinkedIn ad
[ ] Check if li_fat_id in landing page URL
[ ] Check browser cookies for _li_fat_id
[ ] Test with ad blocker active
[ ] If not captured, Insight Tag blocked
Check 2: CAPI event payload
[ ] Trigger test conversion
[ ] Check CAPI payload sent to LinkedIn
[ ] Verify li_fat_id included in payload
[ ] If missing, tracking implementation broken
Check 3: LinkedIn attribution
[ ] LinkedIn Campaign Manager > Conversions
[ ] Check if conversions attributed to campaigns
[ ] If showing "Direct" instead, attribution failing
Check 4: Match rate
[ ] Campaign Manager > Conversion Tracking
[ ] Check match rate for CAPI events
[ ] If <80%, li_fat_id missing or email hashing incorrect
Check 5: Bot filtering
[ ] Review conversions for suspicious patterns
[ ] Check for immediate form submissions (bot indicator)
[ ] Verify bot detection active before CAPI
What is LinkedIn Conversions API?
LinkedIn Conversions API (CAPI) sends conversion data from your server directly to LinkedIn, bypassing browser-based Insight Tag tracking that gets blocked by ad blockers and privacy browsers used by 30-50% of B2B decision-makers. Improves conversion tracking accuracy from 50-60% to 95%+.
Why is my LinkedIn CAPI match rate low?
Low LinkedIn CAPI match rates (40-60%) occur when using email-only matching because ad blockers prevented li_fat_id (LinkedIn Click ID) capture. Without li_fat_id, LinkedIn relies on probabilistic email matching which fails when users have different emails on LinkedIn vs your forms. First-party tracking captures li_fat_id for 95%+ match rates.
What is li_fat_id?
li_fat_id is LinkedIn's Click ID appended to landing page URLs when users click LinkedIn ads. Including li_fat_id in CAPI events enables deterministic attribution matching (95%+ accuracy) compared to probabilistic email matching (40-60% accuracy). Ad blockers prevent standard Insight Tag from capturing li_fat_id.
How do I capture li_fat_id for LinkedIn CAPI?
Capture li_fat_id by implementing first-party tracking script via CNAME that bypasses ad blockers. Script reads li_fat_id from URL parameter when user lands from LinkedIn ad, stores in first-party cookie. When user converts, include li_fat_id from cookie in LinkedIn CAPI payload for perfect attribution.
Is GTM server-side enough for LinkedIn CAPI?
No. GTM server-side receives data from client-side GTM which gets blocked by ad blockers for 30-50% of users. If client GTM blocked, server container receives no data to send. First-party data collection must capture li_fat_id and conversions at source before server-side routing becomes effective.
How does LinkedIn CAPI work with GDPR?
LinkedIn CAPI complies with GDPR when integrated with first-party Consent Management Platform. User provides consent before tracking begins. First-party system only captures li_fat_id and sends CAPI events for consented users. Consent status tied to conversion data ensuring only compliant events sent to LinkedIn.
DataCops provides first-party data platform with native LinkedIn Conversions API integration, capturing li_fat_id for 95%+ of B2B users and automatically sending clean conversion data for accurate campaign attribution.
Complete li_fat_id capture:
First-party script from analytics.yourcompany.com bypasses ad blockers.
Captures li_fat_id from URL for 95%+ of LinkedIn ad clicks.
Standard Insight Tag captures only 50-60% (blocked for executives).
li_fat_id stored in first-party cookie persisting 90 days.
Automatic LinkedIn CAPI integration:
Native LinkedIn CAPI connector pre-configured.
Monitors website conversions (forms, downloads, signups).
Automatically sends to LinkedIn API within minutes.
Includes li_fat_id for 95%+ attribution match rate.
Bot-filtered conversions:
Real-time detection filters data center IPs, headless browsers.
Bot conversions excluded before LinkedIn CAPI send.
Algorithm optimizes on verified human prospects only.
No wasted spend targeting fake engagement.
Multi-session attribution:
li_fat_id persists across multiple website visits.
User clicks LinkedIn ad Day 1, converts Day 14.
Attribution maintained for full B2B sales cycle.
No 7-day cookie expiration (first-party persistence).
Conversion value tracking:
Include estimated deal value in CAPI events.
LinkedIn optimizes for revenue, not just conversion volume.
Target ROAS bidding enabled with accurate value data.
Privacy-compliant implementation:
TCF-certified Consent Management Platform included.
Captures li_fat_id only for consented users.
CAPI events sent only with valid consent.
Complete GDPR/CCPA compliance.
Event customization:
Define custom conversion events:
MQL (Marketing Qualified Lead)
SQL (Sales Qualified Lead)
Demo Request
Free Trial Start
Paid Conversion
Map to LinkedIn conversion types automatically.
Real-time synchronization:
Conversion detected, CAPI event sent within 1-5 minutes.
Algorithm receives timely feedback for optimization.
Not delayed batch uploads (real-time learning).
Attribution reporting:
Dashboard shows LinkedIn campaigns with complete attribution.
Compare Insight Tag-only vs CAPI attribution rates.
Typical improvement: 50-60% coverage → 95%+ coverage.
Reveals true campaign performance hidden by tracking gaps.
Implementation timeline:
Week 1: CNAME DNS setup, first-party script installation
Week 2: li_fat_id capture testing and verification
Week 3: LinkedIn CAPI credentials and connection setup
Week 4: Conversion event configuration and mapping
Week 5: Bot filtering calibration, go-live monitoring
Platform handles ongoing li_fat_id capture, bot filtering, and LinkedIn CAPI sending with no manual work required.
Supported LinkedIn features:
Lead Gen Forms (direct integration)
Website conversions (all event types)
Custom conversion tracking
Offline conversion upload
Matched Audiences sync
Key Takeaways:
LinkedIn Conversions API sends conversion data server-side, bypassing Insight Tag blocked by 30-50% of B2B executives
li_fat_id (LinkedIn Click ID) enables 95%+ attribution match rate vs 40-60% for email-only matching
Ad blockers prevent Insight Tag from capturing li_fat_id for privacy-conscious decision-makers (your target audience)
First-party tracking via CNAME bypasses ad blockers to capture li_fat_id for 95%+ of users
GTM server-side fails because client-side data collection still blocked, sends nothing to server container
Store li_fat_id in first-party cookie persisting 90 days to maintain attribution for long B2B sales cycles
Filter bot traffic before LinkedIn CAPI send to prevent algorithm learning from fake conversion patterns
Include conversion value in CAPI events to enable LinkedIn's value-based bidding and ROAS optimization