How to troubleshoot Meta Ads sync issues
Checklist for Meta Ads sync problems, OAuth token expiry, missing CAPI events, match quality issues, business permission errors, and how to verify pushes in Events Manager.
On this page
- Before you start
- Step 1: Check the connection status
- Step 2: For ‘Token expired’ / ‘Disconnected’
- Step 3: For ‘conversions not appearing in Events Manager’
- Step 4: For ‘test events not showing in Events Manager Test events tab’
- Step 5: For ‘poor Match Quality score’
- Step 6: For ‘Insights data not updating’
- How to disconnect or reset
- When to email support
Meta Ads sync issues fall into a handful of buckets. Work through this checklist in order.
Before you start
Have these tabs open:
- SourceLoop’s Meta Ads card at Setup -> Ad Platforms -> Meta Ads
- Meta Events Manager for the Pixel you’re reporting to
- Meta Business Settings in case you need to regenerate a System User token
- The most recent Sync log entry on the Meta card
Step 1: Check the connection status
- Open Setup -> Ad Platforms -> Meta Ads in SourceLoop.
- Look at the card:
- Active with recent Last sync → healthy; problem is downstream
- Active with stale Last sync (>24 hours) → Insights sync stuck
- Token expired → reconnect or update the token
- Disconnected → run the Connect flow
Step 2: For ‘Token expired’ / ‘Disconnected’
The fastest fix is to update the token directly in the Meta drawer:
- In Meta Business Settings, generate a new System User Access Token with
ads_managementand the correct Pixel assignment (see Configure Meta Conversions API sync for the System User setup). - In SourceLoop, open Setup -> Ad Platforms -> Meta Ads.
- Paste the new token in the CAPI configuration section and click Save.
- The connection flips back to Active immediately.
If you’d rather run a fresh OAuth flow instead, click Reconnect on the card. Note: user tokens from OAuth expire every 60 days, so you’ll see this issue again. System User tokens don’t expire.
Step 3: For ‘conversions not appearing in Events Manager’
This is the most common issue. Walk through:
- Open the Sync log on the Meta card (three-dot menu).
- Find a conversion you expected. Each push is logged with the event_name, Pixel ID, value, and status:
- sent → SourceLoop successfully called the Conversions API. The event may take 20-60 seconds to appear in Events Manager.
- pending_identity → the visitor had no usable identity signal (no
fbc, nofbp, no email, no phone). Skip these. - error → Meta rejected the push. Click the row to see the exact error message.
Common errors and fixes:
Invalid OAuth access token→ token expired or revoked. See Step 2.Pixel not found / unauthorized→ wrong Pixel ID, or the System User isn’t assigned to the Pixel.Permission OAuthException→ token has correct format but isn’t authorised for this Pixel. Regenerate withads_managementand confirm the System User is assigned to the Pixel.Field "event_name" is invalid→ custom event_name contains spaces or unsupported characters. Use camelCase or underscored names.server_event has no fields→ SourceLoop sent an event with no matchable data and Meta rejected it. Same root cause aspending_identity— improve the identity capture (see Step 5).
Step 4: For ‘test events not showing in Events Manager Test events tab’
If you set a test_event_code but events aren’t appearing:
- Confirm the test_event_code in SourceLoop matches the one in Events Manager Test events tab. They must be identical, case-sensitive.
- The code is per Pixel, make sure you’re looking at the Test events tab for the same Pixel ID you configured in SourceLoop.
- After firing a conversion, refresh the Test events tab manually, it doesn’t always live-update.
- Confirm the conversion actually fired in SourceLoop by checking the Contacts Hub for a new entry with a recent timestamp.
Step 5: For ‘poor Match Quality score’
Match Quality is Meta’s measure of how often your CAPI events successfully match to real Meta users. Low scores mean Meta can’t optimise bidding well off your data.
To improve Match Quality:
- Make sure the SourceLoop tracking pixel is installed on every landing page, not just the conversion page. The
fbccookie is set on first ad-click landing; if the page doesn’t load the SourceLoop tracker, that cookie never gets captured. - Capture email and phone in your forms. Meta hashes them client-side before sending and uses the hashes to match against its user database. Email + phone together produce match rates near 100%.
- Don’t push events for anonymous visitors. SourceLoop already skips conversions with no identity signal (
pending_identitystatus). Make sure your conversion sources are configured to require email at minimum. - Send
fbcandfbpreliably. These are set by the SourceLoop tracker on first ad-click and propagate through to the conversion event. If you have aggressive cookie-clearing or privacy plugins on your site, they may strip these.
Step 6: For ‘Insights data not updating’
If campaign / ad set / ad spend and impressions look stale in SourceLoop:
- Check the last sync timestamp on the Meta card. Insights sync runs daily at 05:00 UTC. Within 24 hours is normal.
- Force a manual resync. Click Resync now on the card. This triggers an immediate Insights sync re-fetching the last 14 days.
- Check Meta’s own reporting. If Meta Ads Manager shows the same lag (common for the last 1-3 days), the data isn’t ready yet on Meta’s end. SourceLoop can only show what Meta has.
How to disconnect or reset
- Soft reset (re-run the click-mapping backfill if you suspect attribution issues): three-dot menu -> Reset click mapping on the Meta card.
- Hard reset (disconnect entirely): see Disconnect Meta Ads from SourceLoop.
When to email support
If you’ve worked through the checklist and CAPI events still aren’t appearing correctly, email [email protected] with:
- The Meta Ads card’s current status
- Two or three error messages from the Sync log (verbatim, including the Meta-side error message)
- Your Ad Account ID (visible on the Meta card)
- Your Pixel ID
We respond within one business day.
Frequently asked questions
-
My Meta card shows 'Token expired'. What now?
Reconnect from the Meta card to refresh the user token, or paste a System User Access Token from Meta Business Settings (which doesn't expire). If you reconnect with a user token, you'll see this again in 60 days. Switching to a System User token is the durable fix.
-
Conversions are firing in SourceLoop but not showing in Meta Events Manager. What should I check?
Five common causes. (1) Test event code mismatch, if you set a test_event_code in SourceLoop, events go to Test events only, not the live Pixel feed. Remove the test code to send to production. (2) Pixel ID wrong, double-check the value matches the Pixel ID in Events Manager. (3) Token missing ads_management permission, regenerate the System User token with the right scope. (4) System User isn't assigned to the Pixel, in Business Settings, assign the user to the Pixel as Admin. (5) The events take 20-60 seconds to appear in Events Manager UI, that's normal.
-
Meta says 'Invalid OAuth access token' in the sync log. Why?
Three possible causes. (1) The token has expired (user tokens last 60 days; System User tokens with "Never" expiry don't). (2) Someone removed SourceLoop from your Business' Connected Apps. (3) The token was generated for a different Business / ad account than the one you connected. Reconnect with a valid token bound to the right Business.
-
My Match Quality score is poor. How do I improve it?
Match Quality is Meta's measure of how well CAPI events match to real Meta users. To improve it, make sure SourceLoop is capturing as much identity data as possible, ensure the tracking pixel is installed early on every page (so fbc/fbp cookies get set), capture email and phone where possible (forms with these fields produce much better match), and don't fire CAPI for visitors who never gave any identifying signal.
-
I'm getting 'Permission OAuthException' errors. What does that mean?
The token you provided doesn't have permission to write to the Pixel ID you specified. Either the System User isn't assigned to the Pixel (fix in Business Settings -> Users -> System Users -> [user] -> Assets), or the token was generated for a different Pixel.
-
How do I send a test event to verify the integration?
In Meta Events Manager, open the **Test events** tab. Copy the test code shown. Paste it into SourceLoop's Meta drawer in the CAPI configuration section. Fire a real conversion on your site, the event should appear in the Test events view within seconds, with match quality and parameter values visible.
-
Insights data (spend, impressions) is stale. When does it refresh?
Insights sync runs daily at 05:00 UTC and re-fetches the last 14 days to catch Meta's late attribution. To force an immediate refresh, click Resync now on the Meta card. Note that very recent campaign performance (last 1-3 days) often lags in Meta itself, you're not behind, Meta is.
-
Can I disconnect just the CAPI push but keep the Insights sync?
Not directly. Disconnecting removes the connection entirely. To stop CAPI pushes without disconnecting, remove all conversion mappings in the Conversion sync section. The connection stays Active and continues to pull Insights, but no events are pushed.