# LinkedIn Ads Conversion Tracking & Attribution Setup Guide

Connect LinkedIn Ads to push offline conversions via the Conversions API and capture Lead Gen Form submissions in real time. Multi ad-account support, li_fat_id matching.

Source: https://sourceloop.ai/help/connect-linkedin-ads/
Updated: 2026-05-28

---

Connecting LinkedIn Ads to SourceLoop opens the full conversion loop for B2B campaigns. Every tracked lead converts (form submit, meeting booked, payment received), and SourceLoop sends that event server-side to LinkedIn via the Conversions API. Your bidding strategies and reporting train on real revenue instead of relying only on the Insight Tag's browser-side coverage.

LinkedIn Ads is one of the highest-CPC ad platforms, so offline conversion sync matters more here than anywhere else. Without it, you're optimising against vanity clicks. With it, your CPL and ROAS reports tell the truth.

This article covers the OAuth connect flow only. After connecting, see:
- [Configure LinkedIn Conversions API sync](/help/configure-linkedin-offline-conversions/)
- [Capture LinkedIn Lead Gen Form submissions](/help/capture-linkedin-lead-gen-forms/) (for accounts running Lead Ads)
- [Troubleshoot LinkedIn Ads sync issues](/help/troubleshoot-linkedin-ads-sync/)

## Why connect LinkedIn Ads to SourceLoop?

LinkedIn's Insight Tag fires browser-side, which means it covers maybe 40-60% of conversions on a B2B audience (which is heavier on iOS Safari, corporate VPNs, ad blockers, and consent banners than consumer traffic). The Conversions API fills in the rest from server-side, so:

- **Server-side conversion push** via the LinkedIn Conversions API, immune to browser-side blocking
- **Identity matching** using `li_fat_id` (LinkedIn First-Party Ads Tracking) plus hashed email and phone
- **Conversion values** sent with every event when payment integrations are connected
- **Lead Gen Form capture** in real time via webhook (separate setup, see linked article)
- **Multi-touch attribution** within SourceLoop, while feeding LinkedIn the conversion data needed for tCPA-style bidding

## Before you start

You'll need:

- A **SourceLoop workspace** with the [tracking pixel installed](/help/install-the-tracking-pixel/)
- A **LinkedIn user** with Campaign Manager access on the ad accounts you want to connect (Account Manager or higher)
- A **LinkedIn Insight Tag** installed on your site (recommended, helps populate `li_fat_id` for matching)
- An existing **Conversion Rule** in LinkedIn Campaign Manager (you'll get its Conversion Rule ID in the next article)
- **Admin** or **Owner** role in SourceLoop

## Step 1: Open the Ad Platforms page

1. Sign in to [SourceLoop](https://app.sourceloop.ai/).
2. Click **Setup** in the left sidebar.
3. Click the **Ad Platforms** tab.
4. Scroll to the **LinkedIn Ads** card and click **Connect**.

You'll be redirected to LinkedIn's OAuth consent screen.

## Step 2: Authorise SourceLoop on LinkedIn

1. Sign in to LinkedIn with the user that has Campaign Manager access.
2. Review the scopes SourceLoop is requesting (read/write on ads, ads reporting access).
3. Click **Allow**.

LinkedIn redirects you back to SourceLoop with an authorisation code, which SourceLoop exchanges for an access token + refresh token. Both are stored encrypted. Access tokens live for 60 days and rotate automatically; refresh tokens last longer.

## Step 3: Pick the ad account

If your LinkedIn user has access to more than one ad account (common for agencies and teams), SourceLoop shows a picker listing each active account with its currency.

1. Find the ad account you want to connect.
2. Click **Connect this account**.

SourceLoop creates a connection for that specific ad account. The LinkedIn Ads card flips to **Connected** with the account name and Account ID.

> **To connect another account, repeat the flow**
> Each LinkedIn ad account is its own connection. Run the Connect LinkedIn Ads flow once per account; they sync and push conversions independently.

## Step 4: Pick what to sync and where conversions go

After connecting, the LinkedIn drawer opens with sync settings:

1. **Inbound sync** (LinkedIn → SourceLoop): pulls campaign / ad group / ad hierarchy plus daily spend and impressions, enabled by default.
2. **Outbound sync** (SourceLoop → LinkedIn): pushes conversions via the Conversions API, enabled by default once you add a conversion mapping.
3. **Lead Gen Form capture** (separate flow): an optional add-on for accounts running Lead Ads. See [Capture LinkedIn Lead Gen Form submissions](/help/capture-linkedin-lead-gen-forms/).

For the Conversions API push to actually work, you need to add at least one conversion mapping with a Conversion Rule ID, see [Configure LinkedIn Conversions API sync](/help/configure-linkedin-offline-conversions/).

## What gets synced

Once connected and configured, SourceLoop runs two flows automatically:

**PULL (Insights sync, daily at 05:00 UTC):**
- Campaign, campaign group, and ad / creative hierarchy
- Daily spend, impressions, clicks per level
- 14-day rolling re-sync to catch LinkedIn's late attribution
- Refreshed in SourceLoop dashboards within minutes of each sync run

**PUSH (Conversions API, every 2 minutes):**
- Every SourceLoop conversion where the visitor's session carries an `li_fat_id` cookie or a hashed email / phone that matches a LinkedIn user
- Conversion value (currency) and currency code when configured
- Mapped to your LinkedIn Conversion Rule URN

## What's next

- **Pick which SourceLoop events get pushed to which LinkedIn conversion rule:** [Configure LinkedIn Conversions API sync](/help/configure-linkedin-offline-conversions/).
- **Capture Lead Gen Form submissions** in real time: [Capture LinkedIn Lead Gen Form submissions](/help/capture-linkedin-lead-gen-forms/).
- **Troubleshoot** any push errors: [Troubleshoot LinkedIn Ads sync issues](/help/troubleshoot-linkedin-ads-sync/).
- **Disconnect or reset** the integration: [Disconnect LinkedIn Ads from SourceLoop](/help/disconnect-linkedin-ads-from-sourceloop/).

## Frequently Asked Questions

### Do I need a specific LinkedIn ad account tier?

No. Any LinkedIn ad account works, Self-service or managed. The integration uses the standard Marketing API and Conversions API endpoints which are available on every active account.

### Which ad accounts can I connect?

Every active ad account your LinkedIn user has access to. After OAuth, SourceLoop shows the list (up to 20) and you pick one per connection. Repeat the flow to connect multiple ad accounts.

### What scopes does SourceLoop request?

The required scopes are r_ads, rw_ads, r_ads_reporting. If you also enable Lead Gen Form capture (a separate step after connect), SourceLoop requests an additional scope for Lead Sync. We never ask for personal LinkedIn content like messages, connections, or profile data beyond your name and email used to label the connection.

### How long does the LinkedIn token last?

60 days. SourceLoop stores the refresh token and rotates the access token automatically as needed, you won't need to reconnect unless someone explicitly revokes SourceLoop's access on LinkedIn's side.

### Does this work for sponsored content, Message Ads, and Conversation Ads?

Yes. The Conversions API push is campaign-type-agnostic. As long as your visitors have the LinkedIn Insight Tag (or li_fat_id click cookie) when they arrive, SourceLoop can match the conversion back to the originating campaign regardless of format.

### Can I connect multiple LinkedIn ad accounts to one SourceLoop workspace?

Yes. Each ad account is a separate connection. Repeat the Connect LinkedIn Ads flow once per account.

### What's the difference between this and LinkedIn's built-in Conversion Tracking?

LinkedIn's built-in tracking depends on browser-side Insight Tag firing. Privacy settings, browser extensions, and the LinkedIn iOS app block much of this. SourceLoop's Conversions API integration sends conversions server-side so they get through regardless. The two can run side-by-side, LinkedIn dedupes overlapping events via conversion rule + timestamp.
