Multitool ADS
Live demo START
Multitool ADS / Guides

Facebook ads not delivering: what the status means and how to fix it

Updated November 14, 2026

Short answer: "Not Delivering" in Meta Ads Manager means an ad cannot enter the auction right now, not that one specific error occurred. The cause can sit at the campaign, ad set, ad, billing, or Page level. Check the Delivery column across all three tabs, inspect Account Quality and Billing, and look for asset errors such as deleted posts or unpublished Pages.

Check the three levels in Ads Manager first

Meta evaluates delivery top down across Campaigns, Ad Sets, and Ads. A single paused toggle or error at the campaign or ad set level stops every active ad underneath it.

  1. Open Ads Manager and check the Campaigns, Ad Sets, and Ads tabs in that order.
  2. Look at the Delivery column on each tab and hover over any warning or error icon to read the diagnostic text Meta displays.
  3. Confirm that the toggle switches are turned On at all three levels and that the ad set schedule has started and not ended.
  4. Open Billing & Payments in Meta Business Suite to verify that no payment failed and that your Account Spending Limit has not been reached.
  5. Open Account Quality to check for rejected ads, ad account restrictions, or disabled Pages.

Common delivery statuses and what to do

Not every non-active label means a policy ban or technical failure. Some statuses reflect normal queue timing or slow optimization rather than a complete block.

Status in Delivery column What it means What to do
Off (PAUSED, CAMPAIGN_PAUSED, ADSET_PAUSED) The ad itself, its parent ad set, or its parent campaign is switched off. Check all three tabs and switch on the paused parent level.
In Review (PENDING_REVIEW) Meta is running automated and, when flagged, manual policy checks. Most reviews finish within 24 hours, though peak periods take longer. Wait for review to complete. Avoid editing the ad while it is in review because changes reset the queue.
Rejected (DISAPPROVED) Creative, copy, targeting, or the landing page violated Meta Advertising Policies. Read the policy category in Account Quality or Delivery feedback, edit the ad to comply, or request another review if it was flagged in error.
Delivery Error / With Issues (WITH_ISSUES) A technical or asset blocker stops delivery, such as a deleted post, missing media, deactivated Page, missing Page role, or Special Ad Category mismatch. Open the ad or ad set details to read the exact issue, then replace the broken Page, media, or targeting setting.
Scheduled / Completed The ad set start time is in the future or the end time has passed. Adjust the start or end date in the ad set schedule.
Active (with unpublished Page) The ad toggle is on, but the connected Facebook Page is unpublished or closed. Publish the Page again or switch the ad to a live Page.
Account Error / Disabled A failed charge, unpaid balance, reached Account Spending Limit, or restricted ad account halted all delivery. Settle the balance, reset or raise the Account Spending Limit, or resolve the restriction in Account Quality.
Learning Limited The ad set is delivering, but too slowly to exit the learning phase (typically fewer than about 50 optimization events per week). Broaden the audience, raise the budget, or combine overlapping ad sets rather than treating it as a hard block.

Narrow targeting and restrictive manual bids can also keep impressions at zero without triggering a red error. If an active, approved ad spends nothing for hours, check whether your Bid Cap or Cost Cap is too low to win auctions or whether layered locations and exclusions shrank the estimated audience size too far.

Where Meta actually states the reason

In Ads Manager, the Delivery column tooltip and Account Quality summarize why an ad stopped. Behind the scenes in the Graph API, Meta splits those reasons across three separate fields on the ad node (with ad sets also carrying issues_info):

  • issues_info: technical and asset blockers, each with an integer error_code, error_type (HARD or SOFT), level, error_summary, and error_message. Common examples seen on live accounts include a deleted post (2446289), missing image (2446386), missing Page permission (1885499, 3858749), deactivated Page (4469001), or Special Ad Category violation (2490031).
  • ad_review_feedback: policy rejection categories and explanations (global and placement_specific), populated when an ad is DISAPPROVED.
  • failed_delivery_checks: runtime delivery checks, including summary and description.

Three measured behaviours explain why Meta's delivery feedback often confuses teams working across accounts:

  1. Meta publishes no public lookup table for issues_info error codes. Measured across 28 live ad accounts and stored account records on October 28, 2026: the Marketing API reference documents error_code only as an integer, so practitioners rely on the summary text Meta returns. Across 107 live objects read in English (17 distinct codes) and 68 code-and-language pairs in stored data, each code kept one consistent meaning across ad sets and ads.
  2. Error wording follows the token profile's language. In the same October 28, 2026 measurement, reading ads without an explicit locale returned Ukrainian, English, and Russian reasons side by side depending on which Meta profile's token made the request. Passing locale=en_US (or ru_RU / uk_UA) translated issues_info, ad_review_feedback, and failed_delivery_checks consistently.
  3. Unpublishing a Page leaves the ad marked ACTIVE. Measured read-only on October 29, 2026 across 5 live active ads on unpublished Pages (and confirmed across 146 active ads on unpublished or closed Pages in stored data): taking a Facebook Page off publication kept every ad's effective_status at ACTIVE and sent no webhook. The block appeared only inside failed_delivery_checks as "Page Unpublished" ("This ad cannot deliver because the page it targets is not published.", with no check_name).

It also helps to separate real Page blockers from local user-access issues. When a Facebook Page is unpublished, permanently closed, or deactivated (4469001), Meta stops delivery. By contrast, revoking a single user profile's assignment on a live Page does not stop existing ads from delivering as long as the Page itself stays published (observed in live tests on a test ad account on October 22, 2026).

Seeing non-delivering ads across many ad accounts

In Ads Manager, checking delivery means switching into one ad account at a time. When you run dozens of accounts across several Business Managers and Meta profiles, an ad stopped by a deleted post or unpublished Page in account 18 can sit unnoticed for days.

Multitool ADS loads campaigns, ad sets, ads, and creatives from all connected Meta profiles and ad accounts into one table. Ads that are not delivering are listed with the reason Meta states, and rejected ads appear with Meta's rejection reason, so you can filter and spot blocked ads across every account in one view. You can also set up Telegram notifications for important account events and run 24/7 automated rules to pause ads that burn budget without results.

You can explore how non-delivering ads and their stated reasons look across multiple accounts in the Multitool ADS live demo, no account needed.

Sources: Meta Business Help Center, Marketing API Ad Set Reference, Marketing API Campaign Reference.

Multitool ADS

High-performance ads management and analytics system

Live demo START

Related

  • How to manage multiple Facebook ad accounts in one place
  • How to change the Facebook Page on an existing ad (and when Meta blocks it)
  • Meta Special Ad Categories: targeting restrictions, API rules, and how to update existing ad sets
  • Facebook ad account restricted: what it means, why it happens, and how to appeal
Features AI assistants Compare Guides Rule templates Meta ads reference
Privacy Policy Terms of Service Data Deletion Features
Swiss Made © 2026 Multitools.pro. All rights reserved.