Meta Ads
Connect Facebook and Instagram ads to see spend and cost per qualified lead next to Google.
Connect your Meta ad account and Orwel pulls your Facebook and Instagram campaigns with their daily spend, then ties each lead to its campaign through the campaign id in the landing URL. Meta campaigns appear in the same Campaigns screen as Google Ads.
Orwel only reads from Meta (ads_read). It never creates, edits or pauses ads.
Connect
- Open Integrations
In the dashboard go to Integrations and find Meta Ads under data sources.
- Connect
Click Connect, log in with the Facebook account that manages your ads, and grant access to the ad accounts you want Orwel to read.
- Pick the ad account
Choose the ad account for this workspace.
Some Meta logins issue tokens that expire after about 60 days. When that happens the card shows Expires soon and then Access expired: click Reconnect and approve again. Business logins with a system user token do not expire.
What gets synced
| Data | Grain |
|---|---|
| Campaigns (name, status) | Per campaign |
| Impressions, clicks, spend, conversions | Daily, per campaign |
Orwel syncs every 3 hours. The Sync button on the Campaigns screen runs it on demand.
How leads are tied to campaigns
Meta has no click level report, so the click id it adds (fbclid) can prove that a visit came from a Meta ad but cannot be joined with spend. The join uses the campaign id in utm_id:
-
In each ad (or at the campaign level), set URL parameters to:
utm_source=meta&utm_medium=paid&utm_campaign={{campaign.name}}&utm_id={{campaign.id}} -
The SDK captures them on landing and sends them with the conversion. See Attribution.
-
The sync matches
utm_idwith the Meta campaign id. Ifutm_idis missing, it falls back to a campaign whose name matchesutm_campaignexactly.
utm_id keeps working when you rename a campaign; utm_campaign does not.
Troubleshooting
| Problem | What to do |
|---|---|
| No ad accounts to choose | During login, make sure the ad account was selected in the permissions screen. Reconnect and select it. |
| Access expired | Click Reconnect. |
| Meta leads show as direct | The ads have no URL parameters. Add the utm_* parameters above, then test a click with the development key. |
Leads with fbclid but no campaign |
fbclid alone cannot be joined with spend. Add utm_id={{campaign.id}}. |