Performance Optimization15 min read

Facebook Ads Not Working? A 5-Layer Diagnostic to Find What's Actually Wrong

Wissam Hallak

Wissam Hallak

Jun 25, 2026
Share
Facebook Ads Not Working? A 5-Layer Diagnostic to Find What's Actually Wrong

TL;DR

When your Facebook ads stop working, check in this order:

(1) Pixel and tracking: is Meta recording your conversions at all?

(2) Audience: is the ad reaching the right people?

(3) Creative: is the ad resonating?

(4) Offer and landing page: is the destination converting visitors?

(5) Budget and bidding: is there enough spend to generate signal?

Skipping straight to creative is the most expensive mistake you can make.

The 5 most common reasons Facebook ads stop working

  • Pixel not firing: Meta can't see your conversions, so it's optimizing against no signal and spending your budget on an audience it has never seen convert
  • Audience too small or saturated: The campaign can't reach enough new users at your spend level, or frequency is so high the same people keep seeing the same ad
  • Creative fatigue: CTR declining week-over-week means the audience has stopped responding to the creative, not that the campaign is fundamentally broken
  • Landing page failure: High click rate but near-zero conversion rate on the destination page points to speed, message match, or offer clarity problems after the click
  • Budget below the minimum data threshold: Campaigns judged before spending 3–5x the target CPA are being cut before Meta's algorithm has enough data to optimize

Quick Triage: Identify Your Symptom First

Before running the full diagnostic, find your row in this table. It routes you directly to the layer most likely causing your problem.

Quick Triage: Match your symptom to the right diagnostic layer

SymptomMost likely layerJump to
Zero impressions, zero spendAudience or policy issueLayer 2 + check ad approval status
Impressions but zero conversionsLayer 1 (Pixel) - start hereLayer 1 below
Impressions and clicks but no salesLayer 4 (Landing page)Layer 4 below
Sales occurring but not showing in MetaLayer 1 (attribution/pixel)Layer 1 below
Previously working campaign suddenly stoppedLayer 3 (creative fatigue) or Layer 5 (bidding)Layer 3 or Layer 5 below
High spend, very few conversionsAll layers - run full diagnosticAll sections below
Learning Limited statusLayer 5 (budget/bidding)Layer 5 section

If you're unsure which row matches, start at Layer 1 (Pixel). The 5 minutes spent verifying tracking is never wasted regardless of where the actual problem turns out to be.

5-Layer Diagnostic Flowchart

Use this to find your entry point before running the full diagnostic.

5-layer-diagnostic-flowchart
Campaign is failing
        |
        v
+-------------------------------+
| Zero impressions, zero spend? |--Yes--> Check ad approval status -> Layer 2
+---------------+---------------+
                | No
                v
+-------------------------------+
| Impressions but zero          |--Yes--> LAYER 1: Pixel & Tracking
| conversions?                  |         (Test Events tool first)
+---------------+---------------+
                | No
                v
+-------------------------------+
| Clicks but no sales?          |--Yes--> LAYER 4: Offer & Landing Page
+---------------+---------------+
                | No
                v
+-------------------------------+
| CTR declining week-over-week? |--Yes--> LAYER 3: Creative
+---------------+---------------+
                | No
                v
+-------------------------------+
| Learning Limited or           |--Yes--> LAYER 5: Budget & Bidding
| high spend, few conversions?  |
+---------------+---------------+
                | No
                v
        Run full diagnostic
        Layers 1 -> 2 -> 3 -> 4 -> 5
bash

Read the flowchart top to bottom. Each layer assumes the layers above it have been checked and cleared. Do not jump to creative or budget diagnosis before verifying the Pixel.

Layer 1: Pixel & Tracking Check

What is the Facebook Pixel?

The Facebook Pixel (now called Meta Pixel) is a snippet of JavaScript code installed on your website that reports visitor actions back to Meta's ad delivery system. When a customer completes a purchase, the Pixel fires a Purchase event. This tells Meta which ad drove that conversion and lets the algorithm find more users likely to buy. If this signal breaks, Meta optimizes against no data.

Check this first, before changing anything else in the campaign.

If your Pixel isn't firing correctly, Meta is optimizing against incomplete or incorrect conversion data. Your campaign may be spending against an audience that has never been seen to convert, because conversions are invisible to Meta. Creative testing, audience optimization, and bidding strategy mean nothing if the conversion signal is broken.

How to verify your Pixel is working

1
Meta Events Manager, Test Events tool

Fire a live test conversion on your site and watch for it to appear in the real-time events stream. If nothing appears after 30 seconds, the Pixel isn't firing on that page.

2
Meta Pixel Helper (Chrome extension)

Install the extension, visit your site, and it will display which Pixel events are firing on each page and flag errors: missing fbq() calls, duplicate events, misconfigured event types. Look for red error icons.

3
Check the Purchase event specifically

Verify the Pixel fires on your order confirmation page with the correct event type (Purchase) and that it passes a value parameter. A Pixel firing PageView on the thank-you page instead of Purchase is one of the most common setup errors.

4
Check Event Match Quality (EMQ) in Events Manager

Meta defines EMQ on a scale of 0–10. Scores below approximately 4 generally indicate attribution quality worth investigating. Improve EMQ by passing hashed email, phone, or name parameters alongside the event. (Meta EMQ docs: https://www.facebook.com/business/help/765081237991954)

5
Check for Conversions API (CAPI)

If you're not running CAPI alongside your browser Pixel, iOS-driven tracking loss can make a significant share of conversions invisible to Meta. Some accounts see losses in the 20–40% range depending on demographics and iOS consent rates. (Meta CAPI docs: https://developers.facebook.com/docs/marketing-api/conversions-api)

If the Pixel is broken

Fix it before changing anything else. A corrected Pixel frequently reveals that the campaign was performing far better than it appeared. The conversions were real; they just weren't being recorded.

Layer 2: Audience Check

Prerequisite

Only continue here after Layer 1 (Pixel) has been verified and is firing correctly. Audience analysis built on a broken Pixel produces unreliable conclusions because the data doesn't reflect real performance.

If your Pixel is verified and firing correctly, check whether your audience targeting is the problem.

Signs of an audience issue

  • CTR consistently below roughly 0.5% for cold prospecting traffic (a common practitioner benchmark, not an official Meta threshold; acceptable CTR varies by industry, creative format, and audience)
  • Frequency rising above roughly 4 for cold audiences within 7 days, a common signal of saturation, though tolerance varies by audience size, campaign objective, and creative quality
  • Very low reach relative to daily budget, suggesting the audience may be too small for your spend level

What to check

Audience size: Open your ad set and check the estimated audience size in the targeting panel. For Lowest Cost campaigns, audiences under 100,000 often cause delivery instability. For Cost Cap campaigns, combining a small audience with a tight cap creates delivery stalls.

Audience overlap: If you're running multiple ad sets with overlapping definitions, they compete against each other in the same auction. Meta's Audience Overlap tool (Audiences > Actions > Show Audience Overlap) shows the percentage overlap between ad sets. Overlap above 20–25% between cold prospecting sets is a common practitioner threshold. Meta does not publish an official overlap cutoff.

Targeting restrictions: If you're advertising in a Special Ad Category (housing, credit, employment, social issues), Meta restricts targeting options significantly. Verify your campaign isn't accidentally assigned to a restricted category, which silently removes demographic and interest targeting controls.

The fix

Broaden the audience. Enable Advantage+ Audience to let Meta optimize beyond your manually defined parameters. If using interest targeting, test broadening to a wider interest or removing interest targeting entirely. Broad targeting frequently outperforms narrow interest stacks on accounts with enough conversion history.

Layer 3: Creative Check

Prerequisite

Only investigate creative after Layers 1 (Pixel) and 2 (Audience) have been confirmed. A creative problem diagnosis is only valid when the conversion signal is clean and delivery is confirmed to be reaching the right people.

If tracking is working and audience isn't the problem, check whether the creative has fatigued or was never resonating. Facebook ads not converting despite healthy delivery most often points to a creative problem once Layers 1 and 2 are ruled out.

Signs of a creative problem

  • CTR was acceptable in Week 1 but has declined over subsequent weeks (creative fatigue)
  • Click-through rate is consistently below roughly 0.8% for cold traffic (a practitioner benchmark; actual acceptable CTR varies by industry, placement, and offer type)
  • The ad has been running 4+ weeks without a creative refresh (fatigue is expected at this point, not exceptional)

What to check

CTR over time: Pull your ad performance broken down by week using the Breakdown > Time > Week option in Ads Manager. If CTR was 1.5% in Week 1 and is 0.6% in Week 4, that's creative fatigue, not a broken campaign. The fix is new creative, not restructuring the campaign.

When frequency rises and CTR falls together, the fix is new creative — not a new campaign structure.

A
AdAdvisor Diagnostic Framework

Frequency alongside CTR: If frequency is rising and CTR is falling simultaneously, the audience has seen the ad enough times that it has stopped registering. Creative refresh or audience expansion resolves this.

Creative fundamentals (for new campaigns with zero conversions from launch)

  • Does the ad stop the scroll? The first 0–3 seconds of a video or the static visual of an image must work in isolation. Assume the viewer's thumb is mid-swipe and your text hasn't been read yet.
  • Is the value proposition immediate and clear? Assume the reader won't read the headline. The visual and the first line of copy must carry the entire message.
  • Is there a specific CTA? 'Shop Now' and 'Get Offer' outperform 'Learn More' for conversion-optimized campaigns. Generic CTAs signal a generic offer.

Layer 4: Offer & Landing Page Check

Prerequisite

This layer applies specifically when CTR is healthy but conversions are near zero. Verify Pixel, audience, and creative before attributing a conversion problem to the landing page.

'Getting clicks but no sales' is Layer 4's signature symptom. The ad is working, people are clicking, but they're not buying after they arrive. Meta ads not converting despite healthy CTR is most often a landing page or offer problem, not a campaign problem.

Signs of a landing page problem

  • CTR is healthy (1%+ for cold, 2%+ for warm audiences) but conversion rate is near zero
  • Landing page conversion rate in GA4 is below 1% for e-commerce (under 0.5% is a page problem, not a traffic problem)
  • High bounce rate on the landing page session (GA4 bounce rate above 70% on a product or cart page indicates the page isn't meeting visitor expectations)

What to check

Page load speed: A page taking more than 3 seconds to load on mobile loses a significant percentage of paid traffic before they see the offer. Run your URL through Google PageSpeed Insights and prioritize fixes for the Mobile score. Google and Deloitte's 2019 research found that as page load time increases from 1 to 3 seconds, the probability of a mobile visitor bouncing increases by 32% (Think With Google, 2019).

Core Web Vitals vs. conversion rate

Core Web Vitals (LCP, CLS, INP) are a Google ranking signal that measure technical page performance. A passing Core Web Vitals score does not guarantee strong conversion rates. A page can pass all Core Web Vitals thresholds and still convert at 0.3% because of offer clarity, message match, or trust signal problems. Use PageSpeed Insights as a starting diagnostic, not a conversion ceiling.

Message match: Does the landing page deliver exactly what the ad promised? If the ad says '50% off all orders this weekend' and the landing page shows full-price product with no promotional banner, visitors feel misled and leave immediately.

Mobile experience: DataReportal's 2024 report indicates 98.5% of Facebook's monthly active users access via mobile devices. This represents user access patterns, not a guaranteed ad click split, but mobile should be your default testing environment for any landing page receiving Meta traffic. Is the primary CTA button visible without scrolling? Does the checkout require more than 3 steps?

Offer clarity: A visitor should be able to answer three questions within 5 seconds of landing: What is this? What does it cost? Why should I buy now? If any of these require scrolling or reading additional copy to answer, conversion rates drop.

Trust signals: Product reviews, security badges, return policy language, and social proof should be visible without scrolling for pages receiving cold traffic. Warm retargeting audiences tolerate more friction; cold audiences do not.

Layer 5: Budget, Bidding & Minimum Spend Check

Prerequisite

All prior layers must be verified before evaluating budget performance. The 3–5x CPA minimum spend rule assumes tracking is confirmed. If the Pixel was broken during the spend period, the conversion data is not a reliable baseline for this calculation.

The minimum spend rule before judging a campaign

A campaign with insufficient data cannot be fairly evaluated. Before concluding that a campaign isn't working, verify you've spent enough to draw a conclusion.

Spend at least 3–5x your target CPA before drawing conclusions

This is a practitioner guideline, not an official Meta requirement. Meta's own documented threshold is approximately 50 conversions per ad set per week to exit the learning phase, which may correspond to very different spend levels depending on your CPA. The 3–5x rule is a useful decision heuristic for evaluating early-stage campaigns. It assumes tracking has been verified first. Spend from a period when the Pixel was broken does not count toward this threshold.

If your target CPA is $40, spend at least $120–$200 before deciding the campaign doesn't work. Cutting spend before that threshold is one of the most common causes of self-reported 'Facebook ads not working' situations that turn out to be adequate campaigns killed too early.

Bidding problems that cause fb ads not working

Cost Cap set below market CPA: This is the most common bidding mistake on conversion campaigns. If your Cost Cap is $25 and the actual market CPA for your product is $45, the campaign either won't spend at all or will spend without finding the $25 conversions that don't exist at scale. Fix: switch to Lowest Cost temporarily to find the real market CPA, then set the Cost Cap at market CPA +20% once you have data.

What does 'Learning Limited' mean in Meta Ads Manager?

'Learning Limited' is a delivery status that appears when an ad set cannot complete Meta's learning phase because it isn't generating enough conversion events. Meta requires approximately 50 conversion events per ad set per week to exit the learning phase and stabilize delivery (Meta Business Help: https://www.facebook.com/business/help/112167992830700). Until that threshold is met, delivery is unstable and CPA is typically inflated. This status appears in the Delivery column of Ads Manager directly below the ad set name.

Learning Limited status: If your ad set shows 'Learning Limited' in Ads Manager, the bidding or budget structure is preventing the algorithm from collecting enough conversion data. Fix causes: daily budget too low relative to CPA (budget / CPA x 7 should exceed 50 events per week), Cost Cap set below market CPA, or too many ad sets splitting a small total budget.

Budget exhausting too early in the day: If your daily budget depletes by midday, delivery stops for the remaining hours. Check the Delivery column. If it shows 'Budget Limited' by noon, either increase the daily budget or switch from standard to accelerated delivery to diagnose whether pacing is the constraint.

Master Troubleshooting Table

Match your symptom to a specific cause and fix. This table covers the most common failure patterns across all 5 diagnostic layers.

Master Troubleshooting Table - 15 common failure patterns across 5 diagnostic layers

SymptomLikely causeDiagnostic stepFix
Zero impressions, zero spendAd rejected or under reviewCheck ad status column in Ads ManagerAppeal rejection or edit the flagged element
Impressions but zero conversionsPixel not firing on conversion pageUse Test Events tool in Events Manager: fire a live purchaseFix Pixel installation on the confirmation page
Impressions but zero conversionsPurchase event firing on wrong pageReview Events Manager event log by URLMove Purchase event trigger to order confirmation page only
Clicks but no salesLanding page not convertingCheck GA4 conversion rate for the specific landing page URLImprove mobile UX, load speed, and message match
Clicks but no salesOffer unclear or not compellingReview landing page: can visitor answer 'what, how much, why now' in 5 seconds?Rewrite headline and CTA; add trust signals above the fold
Previously working campaign declinedCreative fatiguePull CTR by week in Ads Manager: Breakdown > Time > WeekRefresh creative with new visuals and copy
Previously working campaign declinedAudience saturationFrequency rising while CTR falls simultaneouslyExpand audience or launch a new audience ad set
Good CTR, zero conversionsPixel tracking wrong pageTest Events in Events Manager while navigating through purchase flowFix Purchase event placement
Good CTR, zero conversionsLanding page loading too slowly on mobileGoogle PageSpeed Insights: Mobile scoreFix largest contentful paint and eliminate render-blocking resources
Learning Limited statusBudget too low relative to target CPACheck: (Daily Budget / Target CPA) x 7 should be >= 50 events per weekIncrease budget or reduce the number of active ad sets
Learning Limited statusCost Cap set below market CPASwitch to Lowest Cost temporarily and observe actual CPASet Cost Cap at observed market CPA + 20%
High spend, very few conversionsCampaign judged before minimum data thresholdCheck total spend vs (Target CPA x 3)Spend minimum 3–5x target CPA before evaluating performance
ROAS looks far worse than GA4 showsAttribution window or model mismatchCompare Meta 7-day click window vs GA4 last-click (known difference, not a bug)Use Meta data for campaign optimization; GA4 for business reconciliation
Ad running but conversions not in MetaCAPI not implementedEvents Manager: check for server events vs browser eventsImplement Meta Conversions API
Facebook ads stopped working after iOS updateBrowser Pixel signal lossEvents Manager: check event match quality score on PurchaseImplement CAPI + enable Advanced Matching with hashed customer data

Illustrative Example: The Most Common Zero-Conversion Root Cause

Composite example

The following scenario illustrates the most frequent root cause pattern in zero-conversion campaigns: a Pixel misconfiguration. It is a composite example representing a real failure mode, not a single documented incident.

The situation: An e-commerce store running a Meta Ads campaign for a skincare product spent $900 over 12 days with zero reported conversions in Ads Manager. The advertiser had already tested three different creative variants and switched the bidding strategy from Cost Cap to Lowest Cost, with no improvement. The next planned step was to pause the campaign entirely.

Step 1 - Check the Pixel first: Before touching anything else, the advertiser opened Meta Events Manager and ran the Test Events tool. They navigated through their site to the checkout page and stopped. The Purchase event was not firing on the order confirmation page. It was firing on the cart page.

What happened: The developer had placed the Purchase event trigger on the 'Proceed to Checkout' button click rather than the order confirmation page load. Every visitor who clicked 'Checkout', including those who abandoned before paying, was being counted as a purchase in Meta's system. Actual purchases were invisible.

The fix: The Purchase event was moved to the order confirmation page (/thank-you) and tested again using the Test Events tool. The event fired correctly. The campaign was left unchanged.

The result: Within 48 hours, 28 purchases appeared in Ads Manager. The campaign had been converting throughout the 12-day period. Meta's algorithm had been receiving no purchase signal and could not optimize delivery toward buyers, but the underlying campaign and audience were performing. Fixing the Pixel was the entire fix.

The lesson

$900 spent on creative testing and bidding changes while the Pixel was broken was wasted effort. Layer 1 takes 5 minutes. Run it first.

When to Kill a Campaign vs Optimize It

Making this call is genuinely hard. The framework below covers both directions.

Kill the campaign (or pause and rebuild) when:

  • The Pixel was broken and you've been running for more than 7 days. All conversion data from that period is corrupted; the campaign's algorithmic learning is built on incorrect signals and cannot be salvaged.
  • The landing page conversion rate is below 0.5% and you've confirmed the traffic quality is good. A page problem this severe will not be solved by campaign-level adjustments.
  • Frequency has reached 10+ on a small audience and you've already rotated creative twice with no improvement. The audience is genuinely exhausted.
  • You've changed targeting, creative, or bidding more than 3 times in 30 days. Constant edits prevent the algorithm from stabilizing, and a clean reset is often faster than continued micro-adjustment.

Optimize (don't kill) when:

  • The Pixel is verified working and total spend is below 3x your target CPA. You don't have enough data to render a verdict yet.
  • CTR was strong early but fell recently. That's a clear symptom of creative fatigue with a clear fix (new creative). The campaign structure isn't the problem.
  • One specific diagnostic layer has an identified problem that hasn't been fixed yet. A broken Pixel fixed is not the same as a bad campaign.

The reset principle

If you do rebuild, don't duplicate the existing campaign and change one element. That carries forward the corrupted learning signal. Create a genuinely new campaign with new structure, fresh creative, and verified tracking from day one.

Frequently Asked Questions

Frequently Asked Questions

Summary

When Facebook ads not working is what you're seeing, always verify the Pixel before touching the creative. A broken Pixel means every other analysis is built on bad data. The 5-layer diagnostic (Pixel > Audience > Creative > Offer > Budget) covers the root causes of underperformance in the order they should be investigated. Fix one layer at a time. If you've confirmed the Pixel is working and want to run this diagnostic against your actual account data automatically, AdAdvisor's AI-assisted diagnostic does this automatically using MCP.

One-Page Diagnostic Checklist

Work through each layer in order. Do not proceed to the next layer until all items in the current layer are confirmed.

Layer 1: Pixel & Tracking

  • Test Events tool: Purchase event fires on order confirmation page (not cart, not checkout button)
  • Meta Pixel Helper: no red error icons on any page in the purchase flow
  • Event Match Quality (EMQ) on Purchase events: approximately 4/10 or above
  • CAPI implemented alongside browser Pixel (critical for iOS traffic)

Layer 2: Audience

  • Audience size: above 100,000 for Lowest Cost campaigns
  • Frequency: below 4.0 for cold audiences within 7 days
  • Audience overlap between ad sets: below 20–25%
  • Campaign not accidentally assigned to a Special Ad Category

Layer 3: Creative

  • CTR trend: not declining week-over-week (pull Breakdown > Time > Week)
  • Frequency rising while CTR falls? (fatigue signal: rotate creative)
  • Cold traffic CTR above 0.8%
  • Ad creative running more than 4 weeks without refresh?

Layer 4: Offer & Landing Page

  • Page load speed on mobile: below 3 seconds (Google PageSpeed Insights)
  • Message match: landing page delivers exactly what the ad promised
  • Mobile checkout: CTA button visible without scrolling; 3 steps or fewer to purchase
  • GA4 landing page conversion rate: above 1% for e-commerce
  • Trust signals visible above the fold (reviews, return policy, security badges)

Layer 5: Budget & Bidding

  • Total spend above 3–5x target CPA before evaluating performance (tracking must be verified first)
  • Cost Cap set at or above actual market CPA (switch to Lowest Cost temporarily to measure)
  • Ad set not showing 'Learning Limited' in the Delivery column
  • Daily budget not exhausting before end of day ('Budget Limited' in Delivery column)

Final check

  • No more than 3 targeting, creative, or bidding changes made in the past 30 days
  • If rebuilding: genuinely new campaign, not a duplicate with one element changed
Wissam Hallak

Written by

Wissam Hallak

Co-Founder of AdAdvisor and Owner of Wesso Digital. Paid Ads Specialist.