# Meta Ads Conversion Tracking & Attribution Setup Guide

Connect Facebook and Instagram Ads to push real conversions back to your Meta Pixel via the Conversions API. Multi ad-account support, automatic Lead Ads capture.

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

---

Connecting Meta Ads to SourceLoop opens up the full conversion loop for Facebook and Instagram campaigns. Every time a tracked lead converts on your site (form submission, meeting booked, payment received), SourceLoop sends that conversion back to Meta via the Conversions API. The bidding algorithms train on real revenue instead of relying only on browser-side pixel events that get blocked by privacy settings.

This article covers the OAuth connect flow only. After connecting, see:
- [Configure Meta Conversions API sync](/help/configure-meta-conversions-api/)
- [Troubleshoot Meta Ads sync issues](/help/troubleshoot-meta-ads-sync/)

## Why connect Meta Ads to SourceLoop?

The Meta Pixel that fires in browsers covers maybe 60% of conversions on a good day. iOS tracking restrictions, ad blockers, third-party cookie restrictions, and consent banners eat the rest. The Conversions API closes that gap by sending events server-side from your backend (in this case, SourceLoop) instead of the browser.

What SourceLoop adds:

- **Server-side conversion push** via the Conversions API, immune to browser-side blocking
- **Click ID matching** using `fbc` (click cookie) and `fbp` (browser cookie) plus hashed email and phone
- **Revenue values** sent on every conversion when payment integrations are connected
- **Event-level dedup** so server-side and browser-side reporting of the same conversion don't double-count
- **Lead Ads capture** for Facebook and Instagram Lead Ads (with the right scopes during connect)
- **Multi-touch attribution** within SourceLoop, while feeding Meta the conversion signals it needs for tROAS and CAPI-driven bidding

## Before you start

You'll need:

- A **SourceLoop workspace** with the [tracking pixel installed](/help/install-the-tracking-pixel/)
- A **Meta Business Manager** account that owns the ad accounts you want to connect
- A Meta user with **Admin** access on the Business
- An existing **Meta Pixel** (or Dataset) attached to the ad account, you'll need its Pixel ID in the next article
- **Admin** or **Owner** role in SourceLoop (Editors can't add integrations)

## 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 **Meta Ads** card and click **Connect**.

You'll be redirected to Meta's OAuth consent screen on facebook.com.

## Step 2: Authorise SourceLoop on Meta

1. Sign in to Facebook with the user that has Admin access on your Business Manager.
2. Review the scopes SourceLoop is requesting (ads management, ads insights, Business enumeration, plus Pages scopes for Lead Ads capture).
3. **Pick which Business and ad accounts SourceLoop should access.** Meta lets you scope the OAuth grant to a subset; uncheck anything SourceLoop shouldn't see.
4. Click **Continue**.

Meta redirects you back to SourceLoop with a short-lived authorization code, which SourceLoop exchanges for a long-lived access token (good for 60 days). The token is stored encrypted.

> **Recommended: switch to a System User Access Token after connect**
> Long-lived user tokens expire every 60 days, which means an annoying reconnect on a fixed cadence. For production use, generate a System User Access Token in Meta Business Manager and paste it into SourceLoop's Meta drawer (see [Configure Meta Conversions API sync](/help/configure-meta-conversions-api/)). System User tokens don't expire.

## Step 3: Pick the Meta ad account

If your Meta user has access to more than one ad account (common for agencies and teams), SourceLoop shows a picker with every account, including currency and timezone.

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

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

> **To connect another account, repeat the flow**
> Each Meta ad account is its own connection. To connect multiple accounts (e.g., one per brand or per region), run the Connect Meta Ads flow once per account. They sync and push conversions independently.

## Step 4: Add your Pixel ID and CAPI token

To actually push conversions, SourceLoop needs two pieces of information that only you can see on Meta's side: your **Pixel ID** and an access token that's authorised to write to that Pixel.

The full walk-through of how to find each one is in [Configure Meta Conversions API sync](/help/configure-meta-conversions-api/). Short version:

1. In SourceLoop's Meta drawer, find the **CAPI configuration** section.
2. Paste your **Pixel ID** (visible in Meta Events Manager).
3. Paste your **System User Access Token** with `ads_management` permission for that Pixel.
4. Click **Save**.

The connection status flips to **Active**, and the daily Insights sync + the 2-minute conversion-push cycle both start running.

## What gets synced

Once connected, SourceLoop runs two flows automatically:

**PULL (Insights sync, daily at 05:00 UTC):**
- Campaign, ad set, and ad hierarchy
- Daily spend, impressions, clicks, reach, and frequency per level
- 14-day rolling re-sync to catch Meta'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 `fbc` cookie, an `fbp` cookie, or a hashed email / phone that matches a Meta user
- Conversion value (currency) and currency code when configured
- Stable event IDs for dedup against any browser-side pixel events fired on the same action
- Event source URL (the landing page where the conversion happened)

## What's next

- **Pick which SourceLoop events map to which Meta event_name (Lead, Purchase, etc.):** [Configure Meta Conversions API sync](/help/configure-meta-conversions-api/).
- **Troubleshoot** any push errors or stale syncs: [Troubleshoot Meta Ads sync issues](/help/troubleshoot-meta-ads-sync/).
- **Disconnect or reset** the integration: [Disconnect Meta Ads from SourceLoop](/help/disconnect-meta-ads-from-sourceloop/).

## Frequently Asked Questions

### Do I need a Meta Business Manager account?

Yes. SourceLoop connects to ad accounts owned by your Meta Business, so a Business Manager account is the entry point. If you have a personal ad account that hasn't been claimed by a Business yet, claim it first at business.facebook.com.

### Which ad accounts can I connect?

Every active ad account your Meta user has access to. After OAuth, SourceLoop shows the list, currency and timezone included, and you pick one per connection. Repeat the flow to connect multiple accounts.

### What's the difference between my Pixel ID and the System User Access Token?

The Pixel ID is the public identifier of your Meta Pixel (or Dataset) where events should be reported. The System User Access Token is the credential SourceLoop uses to call the Conversions API against that Pixel. You enter both in the Meta drawer after the initial OAuth connection. We walk through finding each one in the Configure article.

### My Meta token expires every 60 days, do I need to reconnect manually?

SourceLoop monitors token health and emails you a reminder when the token is approaching expiry. If a Long-Lived Access Token is in use, SourceLoop renews it automatically when it's still valid. If your Pixel uses a System User token (recommended for stability), those don't expire at all.

### Does this work for Instagram Ads too?

Yes. Meta Ads is the unified surface for both Facebook and Instagram placements. Conversions captured by SourceLoop are reported with `action_source = 'website'` to the Conversions API and Meta routes them to whichever campaign and placement drove the click.

### What scopes does SourceLoop request from Meta?

The required scopes are `ads_management` (push conversions via Conversions API), `ads_read` (pull spend and impressions), `business_management` (enumerate your ad accounts), plus four Page-related scopes used only if you also enable Lead Ads capture, `pages_show_list`, `pages_manage_metadata`, `pages_read_engagement`, `leads_retrieval`. We never ask for personal Facebook content like messages or friends.

### Can I sync more than one Meta ad account into the same SourceLoop workspace?

Yes. Each ad account is a separate connection. Repeat the Connect Meta Ads flow once per account; they sync and push conversions independently.
