Overview
LinkedIn Ads uses the LinkedIn Insight Tag for conversion tracking, website demographics collection, and remarketing audience building. The platform also supports the LinkedIn Conversions API (CAPI) for server-side tracking and enhanced measurement. LinkedIn's B2B focus makes its conversion tracking particularly valuable for lead generation, account-based marketing, and professional service conversions.
Standard Events
LinkedIn provides predefined conversion types for common business goals:
Lead Generation Events
- Lead - Form submission, consultation request
- Download - Whitepaper, ebook, case study download
- Sign Up - Newsletter, webinar, or account registration
- Contact - Contact form, quote request
- Apply - Job application or program application
- Install - Software or app installation
- Book Appointment - Demo or consultation scheduled
Ecommerce Events
- Purchase - Completed transaction
- Add to Cart - Product added to cart
- Start Checkout - Checkout process initiated
Engagement Events
- View - Key page or content view
- Subscribe - Paid subscription or service signup
- Complete Registration - Full account setup
- Key Page View - Specific important page
Video Events
- Video First Quartile - 25% video completion
- Video Midpoint - 50% video completion
- Video Third Quartile - 75% video completion
- Video Complete - 100% video completion
Custom Conversions
- Other - Custom business-specific conversions
Custom Events
Creating Custom Conversions
Define custom conversions with event-specific names:
// Custom conversion event
window.lintrk('track', { conversion_id: CONVERSION_ID });
Event-Specific Conversions
Create multiple conversion actions for different events:
// Lead form submission
window.lintrk('track', { conversion_id: 12345678 });
// Whitepaper download
window.lintrk('track', { conversion_id: 23456789 });
// Demo request
window.lintrk('track', { conversion_id: 34567890 });
Conversion with Revenue
Track conversions with monetary value:
// Purchase with value
window.lintrk('track', {
conversion_id: 12345678,
value: 99.99,
currency: 'USD'
});
Custom Parameters
While LinkedIn doesn't support extensive custom parameters like other platforms, you can track:
// Basic conversion tracking
window.lintrk('track', {
conversion_id: 12345678
});
// With value (for ecommerce)
window.lintrk('track', {
conversion_id: 12345678,
value: 149.99,
currency: 'USD',
orderId: 'ORDER_12345' // For deduplication
});
Ecommerce Events
Purchase Tracking
Track ecommerce conversions with revenue:
<!-- LinkedIn Insight Tag (on all pages) -->
<script type="text/javascript">
_linkedin_partner_id = "YOUR_PARTNER_ID";
window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || [];
window._linkedin_data_partner_ids.push(_linkedin_partner_id);
</script>
<script type="text/javascript">
(function(l) {
if (!l){window.lintrk = function(a,b){window.lintrk.q.push([a,b])};
window.lintrk.q=[]}
var s = document.getElementsByTagName("script")[0];
var b = document.createElement("script");
b.type = "text/javascript";b.async = true;
b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js";
s.parentNode.insertBefore(b, s);})(window.lintrk);
</script>
<noscript>
<img height="1" width="1" style="display:none;" alt=""
src="https://px.ads.linkedin.com/collect/?pid=YOUR_PARTNER_ID&fmt=gif" />
</noscript>
<!-- Purchase Conversion (on confirmation page) -->
<script>
window.lintrk('track', {
conversion_id: 12345678,
value: 149.99,
currency: 'USD',
orderId: 'ORDER_12345'
});
</script>
Shopping Cart Events
Track funnel progression:
// Add to Cart
window.lintrk('track', {
conversion_id: 11111111 // Separate conversion for AddToCart
});
// Start Checkout
window.lintrk('track', {
conversion_id: 22222222 // Separate conversion for InitiateCheckout
});
// Purchase
window.lintrk('track', {
conversion_id: 33333333,
value: 99.99,
currency: 'USD',
orderId: 'ORDER_12345'
});
Note: Create separate conversion actions in LinkedIn for each event type.
Conversion Tracking
Implementation Methods
1. LinkedIn Insight Tag (Browser-Side)
Standard JavaScript implementation:
<!-- Global Insight Tag (install on all pages) -->
<script type="text/javascript">
_linkedin_partner_id = "YOUR_PARTNER_ID";
window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || [];
window._linkedin_data_partner_ids.push(_linkedin_partner_id);
</script>
<script type="text/javascript">
(function(l) {
if (!l){window.lintrk = function(a,b){window.lintrk.q.push([a,b])};
window.lintrk.q=[]}
var s = document.getElementsByTagName("script")[0];
var b = document.createElement("script");
b.type = "text/javascript";b.async = true;
b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js";
s.parentNode.insertBefore(b, s);})(window.lintrk);
</script>
<noscript>
<img height="1" width="1" style="display:none;" alt=""
src="https://px.ads.linkedin.com/collect/?pid=YOUR_PARTNER_ID&fmt=gif" />
</noscript>
<!-- Event-Specific Conversion (on conversion page) -->
<script>
window.lintrk('track', { conversion_id: YOUR_CONVERSION_ID });
</script>
2. Google Tag Manager
Deploy LinkedIn Insight Tag via GTM:
Base Tag Setup:
// GTM Custom HTML Tag - All Pages
<script type="text/javascript">
_linkedin_partner_id = "{{LinkedIn Partner ID}}";
window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || [];
window._linkedin_data_partner_ids.push(_linkedin_partner_id);
</script>
<script type="text/javascript">
(function(l) {
if (!l){window.lintrk = function(a,b){window.lintrk.q.push([a,b])};
window.lintrk.q=[]}
var s = document.getElementsByTagName("script")[0];
var b = document.createElement("script");
b.type = "text/javascript";b.async = true;
b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js";
s.parentNode.insertBefore(b, s);})(window.lintrk);
</script>
Conversion Tracking:
// GTM Custom HTML Tag - Conversion Pages
<script>
window.lintrk('track', {
conversion_id: {{LinkedIn Conversion ID}}
});
</script>
With dataLayer:
// Push to dataLayer
dataLayer.push({
'event': 'linkedin_conversion',
'conversion_id': '12345678',
'conversion_value': 99.99,
'conversion_currency': 'USD'
});
// GTM Tag fires on custom event
window.lintrk('track', {
conversion_id: {{DL - LinkedIn Conversion ID}},
value: {{DL - Conversion Value}},
currency: {{DL - Conversion Currency}}
});
3. LinkedIn Conversions API (CAPI)
Server-side conversion tracking for enhanced accuracy:
// Node.js example
const axios = require('axios');
const conversionData = {
conversion: {
conversionHappenedAt: Date.now(),
conversionId: 'YOUR_CONVERSION_ID',
conversionValue: {
currencyCode: 'USD',
amount: '99.99'
},
user: {
userIds: [
{
idType: 'SHA256_EMAIL',
idValue: hashEmail('user@example.com')
}
],
userInfo: {
ipAddress: '192.168.1.1',
userAgentHeader: 'Mozilla/5.0...'
}
},
eventId: 'ORDER_12345' // For deduplication
}
};
const response = await axios.post(
'https://api.linkedin.com/rest/conversions',
conversionData,
{
headers: {
'Authorization': `Bearer YOUR_ACCESS_TOKEN`,
'Content-Type': 'application/json',
'LinkedIn-Version': '202401'
}
}
);
4. LinkedIn Lead Gen Forms
Native LinkedIn lead forms with automatic conversion tracking:
- No Insight Tag required for lead form fills
- Conversions tracked automatically
- Can sync leads to CRM
- Download leads via Campaign Manager or API
Advantages:
- No website needed
- Lower cost per lead
- Pre-filled form fields from profile
- Mobile-optimized experience
Enhanced Matching
Improve conversion attribution with first-party data:
// Enhanced matching via Insight Tag
window.lintrk('track', {
conversion_id: 12345678
}, {
email: 'user@example.com', // Will be hashed
company: 'Acme Corporation'
});
For CAPI, pass user identifiers:
- Hashed email (SHA256)
- LinkedIn member ID
- Company name
- IP address
- User agent
Offline Conversions
Manual Upload
Upload offline conversions via Campaign Manager:
CSV Requirements:
- Conversion - Conversion action name
- Conversion Date - When conversion occurred
- Email or LinkedIn Member URN
- Value - Conversion value (optional)
- Currency - Currency code (optional)
CSV Format:
Conversion,ConversionDate,Email,Value,Currency
Purchase,2025-01-15,user@example.com,99.99,USD
Lead,2025-01-15,customer@company.com,50.00,USD
Upload Steps:
- Navigate to Account Assets > Matched Audiences
- Create new Matched Audience
- Upload CSV with conversion data
- Map columns to required fields
- Process and match conversions
Conversions API
Automate offline conversion uploads via API:
import requests
import hashlib
import time
def hash_email(email):
return hashlib.sha256(email.lower().encode()).hexdigest()
# Conversion data
conversion_payload = {
"conversion": {
"conversionHappenedAt": int(time.time() * 1000),
"conversionId": "urn:lla:llaPartnerConversion:12345678",
"conversionValue": {
"currencyCode": "USD",
"amount": "99.99"
},
"user": {
"userIds": [
{
"idType": "SHA256_EMAIL",
"idValue": hash_email("user@example.com")
}
]
},
"eventId": "ORDER_12345"
}
}
headers = {
"Authorization": f"Bearer {access_token}",
"Content-Type": "application/json",
"LinkedIn-Version": "202401"
}
response = requests.post(
"https://api.linkedin.com/rest/conversions",
json=conversion_payload,
headers=headers
)
CRM Integration
Connect CRM for automated offline conversions:
Supported Methods:
- Native integrations - Salesforce, HubSpot, Marketo
- LinkedIn Matched Audiences - Upload contact lists with conversion flags
- API integration - Custom CRM sync via Conversions API
Best Practices:
- Capture LinkedIn ad click ID (li_fat_id cookie)
- Include conversion timestamps within 90 days
- Hash email addresses before upload
- Use event IDs to prevent duplicates
Attribution
Attribution Windows
LinkedIn uses fixed attribution windows:
Default Settings:
- Click-through: 30 days
- View-through: 24 hours
Note: Attribution windows are not customizable per conversion like other platforms.
Attribution Reporting
View attribution data in LinkedIn Campaign Manager:
Available Reports:
- Campaign Performance - Conversions by campaign
- Conversion Tracking - All conversion actions
- Demographics - Conversions by audience attributes
- Company - Account-based conversion insights
Unique B2B Metrics:
- Conversions by company size
- Conversions by industry
- Conversions by job title/function
- Conversions by seniority level
Multi-Touch Attribution
LinkedIn provides limited multi-touch attribution:
- Last click attribution is standard
- View assisted conversions in reports
- Cross-campaign conversion paths available
Assisted Conversions: View campaigns that contributed to conversions without getting last-click credit in Campaign Manager > Conversions > Assisted Conversions
Account-Based Attribution
For B2B marketing, track conversions at account level:
- Create Matched Audiences with target accounts
- Tag campaigns with account segments
- View conversions aggregated by company
- Measure account engagement and pipeline impact
Debugging & Validation
LinkedIn Insight Tag Checker
Browser extension for validating implementation:
- Install LinkedIn Insight Tag Checker Chrome extension
- Visit page with Insight Tag
- Review tag status:
- Partner ID detected
- Tag firing correctly
- Conversion events tracked
- Warnings or errors
Tag Status in Campaign Manager
Verify Insight Tag installation:
Navigate to Account Assets > Insight Tag
Check Tag Status:
- Active - Tag installed and firing
- Inactive - Tag not detected
- Unverified - Recently installed, pending verification
View Partner ID and installation date
Conversion Tracking Validation
Test conversions are recording:
- Navigate to Account Assets > Conversions
- Review conversion list
- Check Status column:
- Active - Conversions tracking
- No recent conversions - Set up but no data
- View conversion count in last 30 days
Website Demographics
Verify Insight Tag data collection:
Navigate to Account Assets > Website Demographics to see:
- Company information of visitors
- Job titles and functions
- Seniority levels
- Industries
- Geographic data
Note: Requires minimum traffic threshold for privacy.
Browser Console Testing
Test conversion firing in browser console:
// Check if lintrk is defined
if (typeof window.lintrk !== 'undefined') {
console.log('LinkedIn Insight Tag loaded');
} else {
console.error('LinkedIn Insight Tag not found');
}
// Check lintrk queue
console.log(window.lintrk.q);
// Fire test conversion
window.lintrk('track', { conversion_id: 12345678 });
Common Issues
Tag not detected:
- Verify Partner ID is correct
- Check script placement in <head> or before </body>
- Ensure no JavaScript errors blocking execution
- Clear cache and test in incognito mode
Conversions not tracking:
- Confirm Insight Tag is installed on conversion page
- Verify conversion ID matches Campaign Manager
- Check conversion fires after page load
- Wait 24-48 hours for initial data to appear
Website Demographics not showing:
- Requires minimum traffic volume
- Allow 24-48 hours after tag installation
- Check tag is on all pages, not just conversion pages
Best Practices
Implementation
- Install Insight Tag on all pages for complete user journey and remarketing
- Use Google Tag Manager for easier tag management
- Implement both browser and server tracking (Insight Tag + CAPI)
- Create separate conversions for each business goal
- Use descriptive conversion names for easy reporting
Conversion Strategy
- Track micro-conversions (content downloads, video views) for nurture campaigns
- Set appropriate conversion values based on average customer value
- Create conversion-specific audiences for remarketing
- Use LinkedIn Lead Gen Forms for mobile-optimized lead capture
- Track account-level conversions for ABM campaigns
Data Quality
- Use event IDs to prevent duplicate conversions
- Pass revenue values for ecommerce and value-based bidding
- Implement enhanced matching with email hashes
- Upload offline conversions within 90 days
- Regular audit of Insight Tag status
B2B-Specific Tracking
- Use Website Demographics to understand audience composition
- Create account-based audiences for target account engagement
- Track pipeline events (MQL, SQL, Opportunity) as separate conversions
- Measure by company attributes (size, industry) in reports
- Sync CRM data for closed-loop attribution
Privacy & Compliance
- Implement consent management for GDPR compliance
- Hash PII before sending via CAPI
- Update privacy policy to disclose LinkedIn tracking
- Respect opt-outs via LinkedIn privacy controls
- Use LinkedIn's DPA for data processing agreements
Optimization
- Use conversion-based bidding (Maximum Delivery or Target Cost)
- Optimize to valuable conversions (not just volume)
- Exclude converted leads from awareness campaigns
- Create lookalike audiences from converters
- A/B test LinkedIn Lead Gen Forms vs. landing pages
Lead Generation
- Use LinkedIn Lead Gen Forms for higher conversion rates
- Pre-fill forms from LinkedIn profile data
- Sync leads to CRM automatically
- Track form submissions as conversions
- Set up lead notifications for sales team
Reporting
- Segment conversions by demographics (job title, seniority, company size)
- Track conversion rate by audience segment
- Monitor cost per conversion by campaign objective
- Use conversion export for external analysis
- Create custom conversion reports with demographic breakdowns
Account-Based Marketing
- Upload target account lists as Matched Audiences
- Track engagement at company level
- Measure account penetration via website demographics
- Create ABM-specific conversions (demo requests from target accounts)
- Report on pipeline by account tier or segment