Facebook Ad Not Delivering: The Full Diagnostic Playbook
Facebook ad not delivering? This diagnostic playbook covers every cause — policy rejections, audience issues, bid mechanics, learning phase blocks — with concrete fixes for each.

Sections
Your Facebook ad says Active. Your budget is set. Your audience looks right. And yet: zero impressions, zero spend, zero delivery. The status column lies. "Active" means Meta accepted the ad — it does not mean the ad is winning auctions.
Delivery failures have seven distinct root causes, and they don't look alike. A policy rejection looks different from a bid that's too low, which looks different from an audience that's too narrow, which looks different from a learning phase that never exits. Treating all of these with the same generic fix — "try increasing your budget" — wastes time and makes the underlying problem harder to find.
TL;DR: When a Facebook ad is not delivering, work through a structured diagnostic sequence: policy and approval status first, then account health, then audience size and overlap, then bid and budget mechanics, then optimization goal alignment, then creative format compatibility, and finally pixel and technical issues. Each layer has a specific check and a specific fix. Skipping layers causes false diagnoses and wasted spend.
This guide walks the full sequence. Each section names the problem, explains why it causes delivery to stop, and gives you the exact check to run and the exact lever to pull.
Step 1: Check Policy and Approval Status First
Every ad goes through Meta's automated review system before it can serve. An ad compliance failure at this stage stops delivery completely — and the fix is different from every other delivery problem.
Where to check: In Ads Manager, look at the Delivery column. Possible statuses that indicate a review issue: In Review, Rejected, Partially Approved, or With Issues. An ad showing Active has passed review for the approved placements.
Common rejection triggers in 2026:
- Before/after imagery: Any side-by-side or sequential imagery implying a physical or emotional transformation (weight loss, skin, fitness, mental health). Meta's automated classifier flags these regardless of whether the claim is substantiated.
- Health and wellness language: Phrases referencing body image, medical conditions, anxiety, depression, or weight in ad copy. The trigger is the language pattern, not the clinical accuracy of the claim.
- Misleading landing pages: Meta's review process checks whether the landing page content matches the ad's implied promise. A mismatch — especially for financial offers or lead-gen pages with exaggerated claims — triggers rejection.
- Restricted category eligibility: Ads for financial services, housing, employment, credit, or social issues require additional account-level authorization. Running these ad types without the required authorization creates a Rejected status regardless of creative quality.
- Text-heavy imagery: Images where more than approximately 20% of the visual area contains text perform worse in the auction (Meta reduces delivery) and in some cases are rejected outright.
How to fix a rejected ad: Meta's rejection notice includes a link to the specific Meta Advertising Standards section that applies. Read it literally — the rule is usually narrower than the rejection message implies. Edit the specific flagging element, then resubmit.
If you believe the rejection is wrong, use Request Review in Ads Manager. A human reviewer re-evaluates the ad within 2-5 business days. Important: do not resubmit the same ad multiple times without editing — repeated resubmissions of rejected content escalate to account-level review restrictions.
For a broader look at how delivery issues compound with optimization problems, see Facebook Advertising Optimization in 2026.
Step 2: Verify Account Health and Payment Status
Account-level issues block all ads simultaneously — every active campaign, every ad set. If multiple campaigns stopped delivering at the same time, check the ad account status before investigating individual ads.
Checks to run:
- Payment method: In Business Manager → Billing, verify the payment method is current and has no outstanding failures. A single failed charge puts the account in a delinquent state that pauses all active ads immediately. This is the most common cause of sudden across-the-board delivery stoppage.
- Account status: In Meta Business Suite → Account Quality, check for any account-level restrictions or strikes. Multiple policy violations accumulate into account restrictions that limit which ad formats, objectives, or audiences you can target.
- Spending limit: Monthly spending limits, if set, are enforced at the account level. Check Business Manager → Billing → Account Spending Limit. If you've hit the monthly cap, all ads pause.
- Ad account disabled or restricted: A fully disabled account cannot serve any ads. This typically follows repeated policy violations or an unusual payment pattern flagged as suspicious. Appeal via Meta's Account Quality page.
For teams managing multiple client accounts, account-level issues are the most disruptive — one payment failure stops all client campaigns simultaneously. Building a monitoring layer that alerts on payment failures before they cascade is a standard step in the Facebook Ad Account Management playbook.
Step 3: Diagnose Audience Size and Targeting Constraints
Audience problems are the second most common cause of delivery failure and the easiest to misread. A small audience number looks like a targeting choice, not a delivery blocker — until the spend goes to zero.
The minimum viable audience threshold: Meta's delivery system needs a pool of eligible users large enough to find your optimization event at a competitive price. For most objectives, an effective audience below 100,000–200,000 people creates delivery instability. Below 50,000, delivery often stops entirely for anything other than very low budgets.
Specific audience issues that block delivery:
Over-layered targeting. Each added targeting layer narrows the eligible pool multiplicatively. An ad set targeting "25-35, interested in yoga, owns a home, follows fitness accounts, excluding existing customers" might show 380,000 in the estimator but serve to a far smaller pool once all conditions apply simultaneously. If the ad set editor shows "Defined" or "Narrow," delivery will be constrained.
Audience overlap. Running multiple ad sets with overlapping audiences causes them to compete against each other in Meta's auction. The result: both ad sets lose auctions they would have won individually, and total delivery drops. Use Ads Manager's Audience Overlap tool (under the Tools menu in the ad set view) to check overlap between your active ad sets. Overlap above 20% between high-spend ad sets is a consolidation signal.
Excluded audience too large. Custom audience exclusions (existing customers, recent purchasers, current email list) reduce the available pool. If your total market audience is 300,000 and your exclusion list is 180,000, you're serving to 120,000 people — which is tight for a mid-budget campaign.
Lookalike audience source too small. Lookalike audiences built from source audiences under 1,000 people produce low-quality models. Facebook recommends 1,000–5,000 minimum; 10,000+ produces the best results.
Fixes: Broaden targeting by removing the most restrictive layer first. If using detailed interests, test removing all of them and running broad targeting — Meta's Andromeda model often outperforms manually curated interest stacks for conversion objectives. For custom audiences, check whether exclusion lists are current and haven't grown to block a material portion of your market.
For a deeper look at targeting structure, see Lookalike Audience Models in 2026 and the section on audience construction in the Hierarchical Guide to Improving Paid Ads Performance.
Use the Facebook Ads Cost Calculator to estimate what a given audience size and budget combination should generate in impressions — this gives you a baseline to compare against actual delivery.
Step 4: Fix Bid and Budget Mechanics
Bid and budget issues are the most technically nuanced delivery problems. An ad can pass policy review, point at a large audience, and still not deliver a single impression if the bid mechanics don't clear the auction floor.
How Meta's auction works: Every time an eligible user is about to see an ad, an auction runs. The winner is determined by bid, estimated action rate, and ad quality score. If your bid is systematically too low for your target audience, you lose every auction silently.
Bid control issues:
Bid cap set too low. If you're using a manual bid cap and it's below the market clearing price for your audience, your ad sets lose auctions without spending budget. The symptom: ad set shows Active, budget under-spends severely, impressions are near zero. Fix: temporarily remove the bid cap and run on Lowest Cost to find the market rate, then reintroduce a cap that's 20-30% above that baseline.
Cost cap too restrictive. Cost caps tell Meta to find conversions at or below a target cost per result. If the target is below what the current auction market will bear — which changes daily — Meta will reduce or pause delivery. Fix: raise the cost cap or switch to Lowest Cost temporarily to restore delivery, then bring it back gradually.
Budget too low for the audience. A €5/day budget against an audience of 5 million people is a budget problem, not a targeting one. Meta's minimum effective spend for stable optimization learning is roughly €10-20/day per ad set for most objectives.
Daily versus lifetime budget pacing. A lifetime budget with a distant end date causes Meta to pace spend slowly across the entire flight. If you need front-loaded delivery, use daily budgets or shorten the campaign end date.
For structured budget allocation logic, see Automated Meta Ads Budget Allocation and model your own thresholds with the Ad Budget Planner.
Step 5: Check Optimization Goal Alignment
This is the most commonly overlooked delivery blocker — and the hardest to diagnose because the ad looks entirely normal. The issue: you've asked Meta to optimize for an event that happens too rarely for the delivery system to learn from.
The 50-event threshold: Meta's delivery algorithm needs approximately 50 optimization events per ad set per week to exit the learning phase and achieve stable delivery. If your optimization event — Purchase, Lead, Subscribe, CompleteRegistration — happens fewer than 50 times per week per ad set, the ad set enters Learning Limited status. Delivery drops, costs rise, and the ad set never finds its stride.
How to check: In Ads Manager, the Delivery column shows Learning Limited when this is the active constraint. Hovering shows the reason and the recommendation.
Fixes by scenario:
- Low conversion volume: Switch to a higher-funnel optimization event. If Purchases are too rare, optimize for Add to Cart or Landing Page Views. Once those ad sets gather data, you can create a conversion-optimized ad set that inherits the learned audience profile.
- Too many ad sets splitting events: If you have 8 ad sets all targeting different audiences but all optimizing for Purchase, and you only generate 40 purchases/week total, no single ad set gets the 50 events it needs. Consolidate ad sets — fewer, higher-budget ad sets exit the learning phase faster than many low-budget fragmented ones.
- Campaign budget optimization (CBO) under-allocating: If CBO is active and one ad set consistently receives <€5/day from the campaign budget, it will never generate enough events. Set ad set minimum spends within CBO, or move underperforming ad sets to their own campaign with a dedicated budget.
The learning phase interaction with campaign objective selection is covered in detail in Mastering Meta Ads Learning Phase Optimization.

Step 6: Audit Creative Format and Placement Compatibility
Ad creative format mismatches cause silent delivery problems that look like audience or bid issues. Meta's delivery system scores each ad partially on predicted engagement — and a creatively mismatched ad format scores poorly before it ever reaches a real user.
Common format compatibility problems:
Aspect ratio mismatches. An image optimized for Feed (1:1 or 4:5) served in Stories or Reels looks cropped and low-quality. Meta's quality check downscores ads with poor placement fit. Fix: use placement-specific creative assets, or restrict placements to those your assets are optimized for.
Video length mismatches. A 90-second video is penalized in Reels placements where Meta favors sub-30-second content. If your creative library is all long-form video, Reels placement delivery will be limited. Check Placement Asset Customization in the ad set.
Missing catalog connection. Catalog sales campaigns require a product catalog connected to the ad account. If the catalog connection has broken after a data source update, catalog ads go to 0 impressions immediately. Check Business Manager → Catalogs for connection health.
Low creative quality score. Meta ranks each ad on feedback signals — hide rates, negative feedback, engagement rates versus competing ads. Ads in the bottom 35% of quality ranking receive reduced delivery regardless of bid. If you've run the same creative for more than 4 weeks, ad fatigue signals have likely degraded its score. Refresh the creative.
For structured competitive research on what creative formats are working in your category right now, the Ad Detail View in AdLibrary shows the exact format, dimensions, and hook structure of competitor ads — including which ones have been running long enough to indicate real performance rather than testing.
Step 7: Verify Pixel, Conversion API, and Event Tracking
Tracking failures cause a specific and destructive delivery pattern: the ad serves, generates real conversions, but Meta can't see them — so it thinks the optimization event never happens and gradually cuts delivery.
The Pixel diagnostic:
In Events Manager, check your Pixel's event activity for the last 7 days. Look for:
- Event count significantly below expected conversion volume. If you know you had 80 purchases last week but Events Manager shows 12 PageView events, the Pixel is misfiring or not loading on the post-purchase page.
- Duplicate events. A Pixel firing twice per conversion inflates event counts but also distorts attribution. Meta may show purchases at half the actual cost — which looks good — but the inflated count misleads learning.
- Mismatched event names. If your Pixel fires a custom event called "checkout_complete" but your ad set is optimizing for "Purchase" (Meta's standard event), no match occurs and the ad set never exits learning. Standard events must use Meta's exact naming convention.
Conversion API (CAPI) setup:
Apple's ATT framework and browser cookie blocking have degraded browser Pixel signal quality since 2021. Meta's own data shows CAPI-parallel setups report 10-20% more conversions than Pixel-only. If conversion events are sparse and you're not running CAPI, event undercounting may be the learning-phase block. Set up CAPI via the native Shopify or WooCommerce integrations, or via Meta's partner integration list.
Demographic targeting and age restrictions: If your ad set has an age restriction set (e.g., 25+) but your Pixel fires on pages flagged as accessible to minors, delivery is restricted. Verify age restrictions in the ad set match your landing page's actual access requirements.
For a systematic account review that catches pixel and tracking failures alongside structural issues, see Facebook Ad Account Management: Delegation + Automation Playbook and Facebook Ad Workflow Efficiency.
Step 8: Use Delivery Insights to Identify the Active Constraint
Meta provides a native diagnostic tool that most advertisers never open: Delivery Insights. It's available in Ads Manager by clicking any ad set name and selecting the "Delivery" tab.
Delivery Insights shows three specific constraint diagnostics:
Auction Overlap: How often your ad sets are competing against each other for the same impressions. High auction overlap (>30%) means your own ad sets are inflating the auction price you pay for your own audience. Fix: consolidate overlapping ad sets.
Audience Saturation: How often people in your target audience have seen your ads recently. High saturation means the audience is exhausted — the ad set is running out of fresh eligible users. Fix: expand the audience or rotate creative.
Audience Fragmentation: Whether your campaign budget is spread across too many small ad sets for any of them to generate stable learning. Fix: reduce active ad sets and consolidate budget.
Delivery Insights is the most direct path from "why isn't this delivering" to a specific, actionable diagnosis. Run it before making any structural changes.
To benchmark your delivery rates, see Facebook Ad CTR Benchmarks and Optimization Strategies and use the Facebook Ads Cost Calculator to reverse-engineer what an auction-competitive bid should look like for your audience and budget.
Step 9: Research What's Actually Delivering in Your Category
The diagnostic steps above fix structural delivery problems. But they don't tell you what to run once delivery is restored. A technically healthy ad set running mediocre creative will gradually lose auction competitiveness as quality scores degrade — and eventually stop delivering again for a different reason.
The best way to reset your creative baseline is to look at what competitors are currently running — specifically which ads have been live long enough to indicate active spend rather than testing.
The long-run signal: An ad that's been active for 30+ days in a competitive category is almost certainly generating positive ROI. Advertisers don't keep running ads that lose money. A collection of long-running competitor ads in your category is a map of the creative patterns that work right now.
AdLibrary's Ad Timeline Analysis shows how long each competitor ad has been active — filter for 30+ days runtime. The AI Ad Enrichment feature extracts hook structure, offer framing, and copy angles automatically, giving you a brief-ready breakdown rather than screenshots to flip through manually.
For teams running behavioral targeting and contextual targeting across multiple ad sets, this research layer surfaces which creative angles are resonating right now — before you rebuild ad sets after a delivery failure.
For a practical workflow combining competitive research with delivery recovery, see How to See Competitor Facebook Ads, Structuring Facebook Ad Intelligence for Creative Testing, and the Save and Share Winning Ad Creatives use case.
Step 10: Build a Monitoring Layer to Catch Delivery Failures Early
Diagnosing a delivery failure after it happens is the reactive version of this playbook. The goal is to catch delivery problems within hours, not days.
Native monitoring options:
- Meta's Automated Rules: Set a rule that sends a notification or email alert when any ad set's impressions drop below a threshold (e.g., 0 impressions over 12 hours) during your active delivery window. This catches payment failures, sudden rejections, and audience exhaustion within hours.
- Custom columns in Ads Manager: Create a saved column view that surfaces Delivery Insights flags — Auction Overlap, Audience Saturation, Learning Limited status — so they're visible at a glance without clicking into each ad set individually.
- Frequency capping monitoring: Track frequency trend by ad set. When frequency climbs above 4.0 within a 7-day window while engagement rate drops, you're in the early stages of audience fatigue — a precursor to the delivery drop that follows.
Scaling the monitoring layer:
For agencies and multi-brand operators, manual monitoring across Ads Manager becomes a bottleneck fast. The Facebook Ad Account Management Automation Playbook covers building alert logic that fires on the specific delivery metrics that matter without generating noise.
For teams using the API, AdLibrary's API Access on the Business plan (€329/mo) provides a competitive data layer — tracking which competitor ad sets are active and which have recently paused — so you can distinguish algorithm-level market shifts from account-level problems in real time.
See also: Facebook Ads Workflow Efficiency and Meta Ad Performance Inconsistency on separating account issues from market volatility.
Frequently Asked Questions
Why is my Facebook ad not delivering even though it says Active?
An Active status means Meta accepted the ad for review and it passed policy checks, but several conditions can still block delivery: your bid may be too low to win auctions for your target audience, your audience definition may be too narrow to find eligible impressions, your budget may be exhausted earlier in the day than expected, or your ad set may be in the learning phase and not yet finding stable delivery. Check Delivery Insights in Ads Manager — the Auction Overlap, Audience Saturation, and Audience Fragmentation diagnostics tell you which specific constraint is limiting spend.
How long does Facebook ad review take before delivery starts?
Facebook ad review typically completes within 24 hours for accounts with no prior policy issues. For accounts with a clean track record, most ads are reviewed within 1-3 hours. If your ad is stuck In Review for more than 24 hours, it may have triggered an automated flag requiring manual review — this can take 2-5 business days. Ads involving financial products, health claims, social issues, elections, or housing typically take longer due to additional compliance checks. Check review status in Ads Manager under the Delivery column and visit Meta's Ad Policy Help Center for category-specific timelines.
What does the Facebook ad learning phase mean and why does it stop delivery?
The learning phase is the period during which Meta's delivery system explores your audience to find who is most likely to take your optimization action. An ad set needs approximately 50 optimization events within a 7-day window to exit the learning phase. If it cannot reach 50 events — because budget is too low, the audience is too small, or the optimization event is too rare — it enters Learning Limited status, which restricts delivery and often causes spend to drop near zero. Fix: broaden the audience, increase budget, or switch to a higher-volume optimization event such as Landing Page Views instead of Purchases. See Meta's learning phase documentation for the full threshold guidance.
How do I fix a Facebook ad that was rejected for policy violations?
First, identify the specific policy violated — Meta's rejection notices link to the relevant section of the Meta Advertising Standards. Common rejection reasons include prohibited content (before/after imagery, health claims, misleading landing pages), restricted category ads requiring additional account-level permissions, or imagery that automated review flagged as potentially deceptive. Edit the ad to remove the flagging element, then resubmit. If you believe the rejection was in error, use the Request Review option in Ads Manager — a human reviewer re-evaluates the ad. Repeated rejections on the same account can trigger account-level restrictions, so resolve issues before resubmitting at volume.
Why is my Facebook ad active but not spending the full budget?
Full budget under-spend typically traces to one of four causes: (1) Your bid cap or cost cap is set below the market clearing price for your target audience — raise or remove the manual bid control and test Lowest Cost. (2) Your audience is too small or over-constrained with layered targeting — an effective audience under 200,000 people rarely spends a daily budget above €50 reliably. (3) Your campaign is competing against itself through audience overlap across multiple ad sets. (4) Your ad set has an end date or scheduled delivery window limiting when it can spend. Use Delivery Insights to identify the specific constraint before making changes.
The Sequenced Approach: Why Order Matters
A Facebook ad not delivering is never one problem — it's one active constraint in a chain where the others are waiting. Fixing the wrong one first wastes time and sometimes makes diagnosis harder: removing a bid cap reveals that the audience was also too narrow, but now you can't isolate which change fixed delivery.
Work the sequence: policy first, account health second, audience third, bid/budget fourth, optimization goal fifth, creative format sixth, tracking seventh. Each layer is a gate. When you find the layer that's failing, fix only that layer — then verify delivery recovers before touching anything else.
For teams running campaigns at scale across multiple accounts, the Facebook Ad Campaign Planning framework and the Hierarchical Guide to Paid Ads Performance both cover how to structure campaigns so these failure points are easier to isolate when they happen.
If delivery has recovered but performance is now inconsistent — oscillating between good and bad weeks without an obvious cause — the Meta Ad Performance Inconsistency post covers the structural reasons for that pattern and the Facebook Ads Productivity guide covers how to build the operational habits that catch inconsistency before it becomes a crisis.
For teams that want systematic competitor monitoring as part of delivery recovery — tracking which ad formats competitors are currently running and which they've recently paused — the Pro plan at €179/mo gives you 300 credits/month and full access to AI enrichment and timeline analysis tools that turn competitive ad data into brief-ready creative inputs. For API-level access to build programmatic monitoring across accounts, the Business plan at €329/mo with 1,000+ monthly credits is the right tier.
Further Reading
Related Articles
Facebook Ad Optimization in 2026: The Sequenced Playbook
Seven domains of Facebook ad optimization in priority order: account structure, CAPI signal, creative testing, audience, bidding, fatigue management, and attribution. Concrete thresholds throughout.

Your Facebook ad account management is overwhelming: the delegation + automation playbook
Cut Facebook ad account management from 55h to 22h/week with three levers: structured Business Manager delegation, rule-based automation, and campaign consolidation. Full playbook with decision tree.

Why Meta ad performance is inconsistent (and what actually fixes it)
Seven root causes of volatile Meta ROAS — each with a detection signal, measurement method, and specific fix. Includes a B2B SaaS worked example.

How to speed up Facebook ads workflows: concrete time-saving setups
Cut Facebook ads ops time by 60% with time audits, batch launching, naming conventions, automated scaling rules, and async handoff patterns. Concrete playbook.
The Hierarchical Guide to Improving Paid Ads Performance
Stop wasting budget on random tests. Learn the structured hierarchy of testing—from product and offer to creative visuals—to systematically improve ad results.
Facebook Ad CTR Benchmarks and Optimization Strategies
Discover average Facebook Ad CTRs by industry (0.90% benchmark), key influencing factors, and a workflow for creative optimization.