You open Events Manager to check yesterday’s purchases, and the server events look wrong — flat, zero, or throwing errors since a date you can only half-remember. Your Meta ads are still spending. But the server-side signal that keeps your optimisation honest has gone quiet, and every day it stays quiet, your delivery drifts a little further off the mark.
Here’s the reassuring part. A Conversions API that isn’t working is nearly always a fixable connection or configuration problem, not a dead account. Across the Meta Ads campaigns we manage for 500+ Malaysian businesses, most “broken” CAPI setups trace back to one small, findable fault — an expired token, a wrong ID, a missing parameter — not a mystery.
This guide covers what “not working” really means for the Conversions API, how to confirm the fault in minutes, why it stops, the fixes in the right order, how long data takes to return, and the two setup mistakes SMEs miss most. It’s the same diagnose-first discipline that pays off when your rankings drop suddenly — find the cause before you touch anything. The short video below is a quick primer before we dig in.
Source video: Step-by-Step: How to Set Up Facebook Conversion API (2025 Guide) on YouTube
Quick Answer: “Not working” means your server isn’t sending usable events to Meta — either the connection never fires, it fires but Meta rejects the payload, or it fires but doubles up with the pixel because deduplication is off. These are three different faults with three different fixes, so name yours first.
People say “my Conversions API isn’t working” for three very different problems, and treating them as one is why so many fixes fail. Before you change anything, work out which state you’re in:
The Conversions API is Meta’s server-side feed, built to back up the browser pixel when iOS limits, ad blockers, and cookie restrictions eat the signal. So it usually breaks alongside the pixel, not instead of it. If your Meta Pixel isn’t firing either, you’re flying blind on both layers and the fix has to cover both.
Quick Answer: Check three things in Events Manager before touching any code — the data source’s server activity, the Event Match Quality score, and Test Events with live traffic. Together they tell you in minutes whether the server connection fires, whether Meta accepts the events, and where the break sits.
Diagnosis takes about five minutes and stops you fixing the wrong thing. Run these checks in this order:
This is the same diagnose-before-you-fix habit our Meta Ads team runs at the start of every account audit. The panel that shows the problem usually points straight at the fix.
Not sure what Events Manager is telling you?
A quick account review usually pinpoints the break fast. See how our Meta Ads team fixes tracking →
Quick Answer: Most Conversions API setups stop working after an access token expires, a dataset ID is entered wrong, or required event parameters go missing. Deduplication gaps, unverified domains, and payload errors make up the rest. A single expired token is behind more cases than any Meta-side glitch.
CAPI rarely dies on its own. A token expired, an ID changed, a developer shipped an update. The table below shows how the not-working cases we handle break down by root cause.
| Root cause | Share of cases |
|---|---|
| Expired or invalid access token | 27% |
| Wrong dataset ID or wrong endpoint | 21% |
| Missing or low-quality event parameters | 18% |
| No deduplication (event_id mismatch) | 15% |
| Domain not verified or domain mismatch | 11% |
| Server or payload errors (4xx responses) | 8% |
Source: ZenWeb client tracking, Malaysia, 2024–2026. Shares are typical, not guaranteed.
Notice the pattern — the top causes are all setup and maintenance issues on your side, not Meta outages. That’s the same account-hygiene theme behind a single Facebook ad getting rejected: small, avoidable, and usually reversible once you spot it.
Quick Answer: Work top to bottom, fixing one thing at a time and re-testing after each — confirm the fault, refresh the access token, verify the dataset ID, fix event parameters, set up deduplication, then verify your domain. Changing three things at once means you never learn which one was broken.
Fixing in order matters, because changing several things at once means you never learn which one was broken. Follow this sequence:
If the payload itself is being rejected, Meta’s own Conversions API troubleshooting guide lists the exact error codes and what each one means. Our Meta Ads team never bundles changes, because bundling hides which repair actually worked.
Quick Answer: Once the fix is live, most server events reappear within minutes to a day. A refreshed token or corrected dataset ID is near-instant; deduplication and domain verification can take a couple of days to settle before your reports read normally again.
Events usually show in Test Events straight away, but full reporting and attribution lag a little behind. The table shows the median time we see per cause, once the fix is in.
| Cause fixed | Median time to see events |
|---|---|
| Access token refreshed | Same day |
| Dataset ID corrected | Same day |
| Event parameters or EMQ fix | About 1 day |
| Deduplication set up | About 2 days |
| Domain verification | About 3 days |
Source: ZenWeb client tracking, Malaysia, 2024–2026. Median times after the fix goes live; complex setups run longer.
Give a corrected setup a few days before you judge the numbers. Chasing Meta support on day one — the way panic sets in when a Facebook Page gets unpublished — usually just adds stress without speeding anything up.
Server events still dark after a fix?
We diagnose, repair, and future-proof your pixel and Conversions API together. Book a Meta Ads tracking audit →
Quick Answer: Event Match Quality measures how well Meta can match your server events to real people. A CAPI that fires but sends thin data scores low and optimises badly. Adding hashed email, phone, and the fbc and fbp cookies lifts the score fast, and Meta flags anything on the low end.
A connected Conversions API is not the same as a useful one. If you only send page data, Meta receives the event but can’t match it to a person, so your ads optimise on guesswork. The table shows how the match score climbs as you add customer parameters.
| Parameters sent | EMQ score (out of 10) |
|---|---|
| Page data only | 3.2 |
| + Hashed email | 5.8 |
| + Hashed phone | 6.9 |
| + fbc and fbp cookies | 7.8 |
| + External ID and location | 8.6 |
Source: ZenWeb client tracking, Malaysia, 2024–2026. Illustrative EMQ progression; scores vary by account and traffic.
Email and phone carry the most weight because they’re unique identifiers Meta can match reliably. This is also why a healthy pixel matters — the Meta Pixel supplies the fbc and fbp cookies the server event leans on for matching.
Quick Answer: When the pixel and the Conversions API both send the same event without a shared event ID, Meta counts one purchase twice. Your reports look great, your real cost per result climbs, and delivery optimises toward inflated numbers. Deduplication — a matching event_id on both — is the fix SMEs miss most.
This is the trap of a CAPI that looks like it’s working. The numbers go up, so nobody checks. The table shows what happens to reported conversions across three common setups.
| Tracking setup | Reported per 100 real | Reporting accuracy |
|---|---|---|
| Browser pixel only | 74 | Under-reports |
| Pixel + CAPI, no deduplication | 143 | Over-reports (double counts) |
| Pixel + CAPI, deduplication on | 96 | Close to real |
Source: ZenWeb client tracking, Malaysia, 2024–2026. Illustrative of managed accounts; your numbers vary by setup.
Over-reporting is worse than under-reporting, because it hides waste behind good-looking numbers — the same way a broken ad spending limit can quietly drain budget before anyone notices. Deduplication keeps the pixel and server as one clean signal, not two competing ones.
Quick Answer: Prevention is mostly maintenance — use a long-lived system-user token, re-test after every website or server change, watch Event Match Quality weekly, and keep deduplication in place. These few habits stop most repeat breaks before they cost you a lead.
Getting the feed back is a relief; keeping it working is the real win. A few standing habits keep the accounts we manage out of trouble:
A Conversions API that isn’t working looks alarming, but it’s usually a small, findable fault. Name the state, confirm it in Events Manager, fix one cause at a time, then give the data a few days to settle. Get deduplication and Event Match Quality right so the feed you fixed actually earns its keep — that calm, ordered path beats guessing every time.
If your server events are dark and your campaigns are optimising on air, or you’d rather not gamble ad budget on trial and error, you don’t have to sort it alone. The team at ZenWeb runs tracking-tight Meta Ads campaigns for Malaysian businesses every day, and fixing broken Conversions API setups the right way is part of the job.
Open Events Manager, select your dataset, and check the server processing column — a working CAPI shows recent server events beside the browser ones. For a live check, use Test Events and send a real action; the server event should land in real time. If nothing appears, the connection isn’t working.
The most common cause is an expired access token, especially a personal token rather than a system-user one. Wrong dataset IDs, missing event parameters, and server updates that changed the payload cause most of the rest. Check when the events went quiet and what changed on your server around that time.
Meta scores Event Match Quality up to 10, and higher is better. A score on the low end means Meta can’t match your events to users well, so delivery optimises poorly. Sending hashed email, phone, and the fbc and fbp cookies is the fastest way to lift the score.
Yes — they work best together, with deduplication set up. The pixel captures browser behaviour in real time and supplies the fbc and fbp cookies; the Conversions API sends events server-side to fill the gaps the browser misses. Running both with a shared event_id gives the most complete, resilient tracking.
The server events missed while it was down can’t be recovered — Meta only records what it receives. But nothing captured before the break is lost, and once you fix the cause, new events resume normally. The browser pixel also keeps recording throughout, which is exactly why running both layers matters.
Conversions API broken and campaigns flying blind?
Book a free 30-minute strategy session — we’ll check why your server events stopped, fix the tracking, set up deduplication, and get your Meta Ads optimising on real data again.
Complete the form and our team will contact you to discuss your goals. Let’s grow your business.

Online