LinkedIn Ads Event Tracking | Blue Frog Docs

LinkedIn Ads Event Tracking

Complete guide to LinkedIn Insight Tag and conversion tracking

LinkedIn Ads Event Tracking

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:

  1. Navigate to Account Assets > Matched Audiences
  2. Create new Matched Audience
  3. Upload CSV with conversion data
  4. Map columns to required fields
  5. 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:

  1. Native integrations - Salesforce, HubSpot, Marketo
  2. LinkedIn Matched Audiences - Upload contact lists with conversion flags
  3. 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:

  1. Create Matched Audiences with target accounts
  2. Tag campaigns with account segments
  3. View conversions aggregated by company
  4. Measure account engagement and pipeline impact

Debugging & Validation

LinkedIn Insight Tag Checker

Browser extension for validating implementation:

  1. Install LinkedIn Insight Tag Checker Chrome extension
  2. Visit page with Insight Tag
  3. Review tag status:
    • Partner ID detected
    • Tag firing correctly
    • Conversion events tracked
    • Warnings or errors

Tag Status in Campaign Manager

Verify Insight Tag installation:

  1. Navigate to Account Assets > Insight Tag

  2. Check Tag Status:

    • Active - Tag installed and firing
    • Inactive - Tag not detected
    • Unverified - Recently installed, pending verification
  3. View Partner ID and installation date

Conversion Tracking Validation

Test conversions are recording:

  1. Navigate to Account Assets > Conversions
  2. Review conversion list
  3. Check Status column:
    • Active - Conversions tracking
    • No recent conversions - Set up but no data
  4. 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

  1. Install Insight Tag on all pages for complete user journey and remarketing
  2. Use Google Tag Manager for easier tag management
  3. Implement both browser and server tracking (Insight Tag + CAPI)
  4. Create separate conversions for each business goal
  5. Use descriptive conversion names for easy reporting

Conversion Strategy

  1. Track micro-conversions (content downloads, video views) for nurture campaigns
  2. Set appropriate conversion values based on average customer value
  3. Create conversion-specific audiences for remarketing
  4. Use LinkedIn Lead Gen Forms for mobile-optimized lead capture
  5. Track account-level conversions for ABM campaigns

Data Quality

  1. Use event IDs to prevent duplicate conversions
  2. Pass revenue values for ecommerce and value-based bidding
  3. Implement enhanced matching with email hashes
  4. Upload offline conversions within 90 days
  5. Regular audit of Insight Tag status

B2B-Specific Tracking

  1. Use Website Demographics to understand audience composition
  2. Create account-based audiences for target account engagement
  3. Track pipeline events (MQL, SQL, Opportunity) as separate conversions
  4. Measure by company attributes (size, industry) in reports
  5. Sync CRM data for closed-loop attribution

Privacy & Compliance

  1. Implement consent management for GDPR compliance
  2. Hash PII before sending via CAPI
  3. Update privacy policy to disclose LinkedIn tracking
  4. Respect opt-outs via LinkedIn privacy controls
  5. Use LinkedIn's DPA for data processing agreements

Optimization

  1. Use conversion-based bidding (Maximum Delivery or Target Cost)
  2. Optimize to valuable conversions (not just volume)
  3. Exclude converted leads from awareness campaigns
  4. Create lookalike audiences from converters
  5. A/B test LinkedIn Lead Gen Forms vs. landing pages

Lead Generation

  1. Use LinkedIn Lead Gen Forms for higher conversion rates
  2. Pre-fill forms from LinkedIn profile data
  3. Sync leads to CRM automatically
  4. Track form submissions as conversions
  5. Set up lead notifications for sales team

Reporting

  1. Segment conversions by demographics (job title, seniority, company size)
  2. Track conversion rate by audience segment
  3. Monitor cost per conversion by campaign objective
  4. Use conversion export for external analysis
  5. Create custom conversion reports with demographic breakdowns

Account-Based Marketing

  1. Upload target account lists as Matched Audiences
  2. Track engagement at company level
  3. Measure account penetration via website demographics
  4. Create ABM-specific conversions (demo requests from target accounts)
  5. Report on pipeline by account tier or segment
// SYS.FOOTER