You are spending eight thousand dollars a month on Meta. Ads Manager says the account is doing 4x. Your Shopify dashboard shows a trickle of orders you can loosely tie back to paid social, and the bank balance has not moved the way a 4x account should move it. So you do the thing everyone does: you assume the ads are tired, you brief new creative, and you spend another month testing hooks against a problem that was never in the creative.
Here is the uncomfortable pattern behind most "Meta ads not converting" complaints. The ads are usually converting fine. What is broken is the layer that is supposed to tell you they converted - or the target you are grading them against. Rebuilding creative on top of a measurement problem is the single most common way ecommerce brands waste a quarter.
This is a diagnostic post, not a pep talk. Run the checks below in order, because each one can produce the exact symptom you are seeing, and fixing the wrong one costs you weeks.
"Not converting" almost always means one of three things
When a founder says Meta ads are not converting, the statement collapses into three very different situations, and the fix for each is unrelated to the fix for the others:
- They are converting, but Meta cannot see it. The purchases are happening; the pixel and the Conversions API are not reporting them correctly, so Ads Manager shows a dead campaign that is quietly profitable.
- They look like they are converting, but the number is fiction. Duplicate events, double-counted purchases, and cross-platform double-claiming inflate a ROAS that the bank account never confirms.
- They really are converting, just not profitably. The events are correct and the number is real, but the ROAS target was never derived from contribution margin, so "converting" and "making money" are not the same thing.
You cannot tell which one you are in by looking at creative. You tell by reconciling numbers. Start there.
Rule out the measurement failure first
Before you touch a single ad, confirm the machine that reports conversions is intact. In delivered paid-media audits, this is where the answer lives far more often than in the creative.
Check the purchase event actually fires, once. The failure mode is not subtle when you look for it. In a delivered tracking audit we found a property showing roughly 526,000 "conversions" over 90 days against zero dollars of revenue, because session_start and user_engagement had been marked as key events while the real purchase event never fired at all. Every optimization decision on that account was made against a number that meant nothing. Google's own ecommerce measurement framework defines the exact purchase event a store should send - verify that sequence is firing before you trust anything downstream.
Check deduplication between the pixel and the Conversions API. Meta's Conversions API is a supplement to the browser pixel, not a replacement - it recovers match rate lost to iOS restrictions and ad blockers. But browser and server events must carry a shared event_id so Meta can deduplicate them. In a delivered audit, purchase events fired from both browser and server without a shared ID on part of the catalog: Events Manager deduplication sat around 71 percent and reported ROAS was inflated by roughly a third. That is a campaign that looks like it is over-performing while it burns money.
Check the catalog is fully approved. If you run Advantage+ catalog or dynamic product ads, disapproved products simply stop serving, and feed rejections are silent. This class of failure is easy to miss on either platform. In a delivered audit we found about 11 percent of a store's Google Merchant Center catalog silently disapproved after a currency-app change created a feed-versus-landing-page price mismatch, and the disapprovals included best-sellers. The same price-mismatch and missing-identifier problems reject products in Meta's Commerce Manager, so check both feeds before you conclude the ads themselves stopped working.
Check the attribution window nobody remembers changing. Meta's default is a 7-day click, 1-day view attribution setting, and industry guidance for ecommerce is to hold that window steady. If someone narrowed it to 1-day, or you are silently comparing Meta's window against GA4's last-click model, the two will never agree and a healthy campaign can look like it fell off a cliff. Any deliberate window change needs a 30 to 60 day evaluation, not a two-day gut check.
Then rule out the inflation problem
The mirror image of an under-reporting account is one that looks great and is not. This is where turning ads off becomes the expensive mistake.
The tell is a gap between platform-reported ROAS and blended ROAS. In a delivered audit, Meta reported 4.2x and Google reported 3.8x while blended revenue against total spend was about 1.9x - the platforms were each taking full credit for the same orders. If you have ever watched Facebook Ads and GA4 refuse to reconcile, this is the mechanism underneath it: two systems claiming the same conversion, and neither one wrong from its own point of view.
Compute one honest number before you judge any campaign: total store revenue in the window divided by total ad spend in the window. If Meta's reported ROAS towers over that blended figure, the problem is not that your ads stopped converting - it is that they were never converting as well as Ads Manager claimed, and the reported metric is the least trustworthy input to a shutdown decision.
Only now look at the ads themselves
If the events are correct, the catalog is live, the windows match, and blended ROAS confirms the platform number, then - and only then - is it genuinely an ads problem. Two structural issues cause more "not converting" pain than tired creative does.
A broken exclusion or audience. In a delivered audit, a purchaser-exclusion audience froze when the event it was built on got renamed, so retargeting frequency climbed past 9 against a recent-buyer overlap around 22 percent. The ads were fine; they were being shown relentlessly to people who had already bought. Frequency, not the hook, was the story.
Fighting the platform's structure. Meta's own post-iOS 14 guidance is to lean on creative quality and volume rather than granular targeting, because targeting precision degraded industry-wide once signal loss set in. Accounts still built around a sprawl of narrow, overlapping audiences tend to compete with themselves and fragment their own conversion signal, then read as "not converting." Consolidating audiences and letting delivery optimize is often the structural fix, not another round of hooks.
The number that redefines "converting"
Even a correctly measured, well-structured campaign can be a bad idea. The scaling ROAS target only means something if it is derived from contribution margin - revenue minus COGS, shipping, payment fees, and the variable cost of fulfilling the order - and recalculated for full-price versus markdown periods. A single static ROAS target applied across every pricing scenario is how brands scale spend into unprofitable orders while the dashboard says "converting." If your target was picked because it sounded healthy rather than because the margin math produced it, the ads may be doing exactly what you asked and still losing money.
The diagnostic order, before you rebrief a single ad
Work this list top to bottom. Stop at the first check that fails, fix it, and let the account run before moving on - most accounts never need to reach the creative step.
- Reconcile three numbers. Meta purchases, GA4 purchases, and actual Shopify orders for the same window. A large gap tells you which direction the error runs before you do anything else.
- Verify the purchase event fires once, with revenue. No phantom key events, no missing
purchase. If your store runs on Shopify, our walkthrough of what actually breaks in Shopify conversion tracking covers the usual culprits. - Confirm pixel and Conversions API share an
event_id. Deduplication near 100 percent, not 71. - Confirm the full catalog is approved in Commerce Manager, not silently rejected.
- Lock the attribution window and stop comparing it against a different model.
- Compute blended ROAS and compare it against the platform number before trusting either.
- Then, and only then, audit exclusions, frequency, account structure, and creative.
If you cannot get clean answers to the first five, the honest next step is not a creative sprint - it is a measurement fix. A fixed-scope tracking and paid-media audit exists precisely to run this checklist for you and hand back the answer in a day or two, and because our audits are fixed-price and credited toward implementation, you find out whether the problem is the ads or the tracking before committing to anything ongoing. That is also the whole thesis behind our measurement-led ads management: you cannot manage a Meta account well on numbers you have not verified, and most accounts that "stopped converting" never did. The reporting did.

