If you are wondering why is my meta ad not delivering, the first thing worth knowing is that approved and delivering are two different states, and Meta does a poor job of explaining the gap between them. An ad can be reviewed, approved, switched on, funded, and still show zero impressions for days.
The delivery column in Ads Manager is where the answer usually sits, and most of it is ignored because the wording is vague. Here is what each state means and the order to work through when the status says active and the spend says nothing.
First, read the delivery status properly
In review
Meta is checking the ad against its policies. Most reviews finish within 24 hours, and many within an hour. Editing the ad while it is in review sends it back to the start of the queue, which is why an ad someone keeps tweaking can sit in review for two days.
Scheduled
The start date is in the future. Obvious once seen, and it accounts for a fair share of panicked messages on a Monday morning. Check the campaign schedule and the account time zone, which may not be the one you are sitting in.
Active with zero impressions
This is the state people mean when they say the ad is not delivering. The ad is live, eligible, and losing every auction or not entering any. The rest of this article is about this case.
Learning
Normal and temporary. Meta is working out who responds. Delivery is uneven and cost per result is unreliable during this window. Leave it alone.
Learning limited
A warning rather than an error. The ad set is not receiving enough conversion events each week for Meta to tune delivery, so it runs on weaker signals and usually costs more per result. This one needs action, covered below.
Editing an ad set restarts the learning phase. Budget, audience, creative, placement and optimisation event all count. Campaigns that never leave learning are usually campaigns that get adjusted every morning. Set it, then leave it for three or four days.
Check billing before anything else
This is the most common cause of zero delivery for Indian advertisers and the one people check last.
A card that fails, a bank that declines an international transaction, an expired card, or a spending limit that has been reached all stop delivery while leaving the ad marked approved and active. Meta notifies you, but the notice is easy to miss among everything else it sends.
- Open Billing and Payments in Business ManagerLook for a failed payment or an outstanding amount at the top of the screen.
- Check the account spending limitSet once and forgotten, this stops delivery silently the moment it is reached. It is separate from your campaign budget.
- Confirm the card is enabled for online and international useMany Indian debit and credit cards need this switched on in the banking app, and it can be reset by the bank without warning.
- Check GST and billing details are completeAn incomplete business profile can hold payment processing on Indian accounts.
- Add a backup payment methodThe single most useful preventative step. Delivery continues if the primary card fails.
Audience causes
If billing is clean, the audience is the next place to look.
The audience is too small
Meta needs room to find people. Very tight interest stacking, a narrow age band, a small radius around one city and three layered filters can reduce a reachable audience to a few thousand. Delivery becomes expensive, then stops.
Watch the audience size estimate as you build. For most Indian small business campaigns, an audience below roughly 100,000 people will struggle unless you are running a tightly local service.
Your own ad sets are competing
Running several ad sets aimed at overlapping audiences means bidding against yourself. Meta suppresses the weaker ones rather than letting you inflate your own costs. Symptoms are one ad set spending everything while the others sit at zero.
Use the Audience Overlap tool under Audiences. Anything above roughly 30 percent overlap is worth consolidating into one ad set with a larger budget.
Exclusions that removed everybody
Layered exclusions accumulate. Excluding past purchasers, plus website visitors, plus an engagement audience, plus a customer list can leave very little behind. Remove exclusions one at a time and watch the size estimate recover.
Budget and bidding causes
A bid cap set too low is the classic self-inflicted wound. It tells Meta never to pay above a certain amount, and if the auction consistently clears above it, your ad never shows. Nothing looks broken. Delivery is just zero.
While diagnosing, remove any bid cap or cost cap and let Meta bid to the lowest cost. Add controls back once delivery is proven.
Daily budget matters too. A budget too small to buy a meaningful number of impressions in a day gets spent in a burst or not at all. If your product needs a ₹300 cost per result, a ₹100 daily budget cannot produce one.
Creative and policy causes
An ad can be approved and still perform so poorly that Meta stops showing it. Low quality ranking, negative feedback, or creative that has fatigued all reduce delivery gradually rather than stopping it outright.
Check Ad Quality Ranking in the account. Below average on quality, engagement rate or conversion rate ranking tells you the creative is the constraint, not the settings.
Creative fatigue is worth watching in Indian markets where audiences are often smaller and frequency climbs faster. Once frequency passes roughly 3 for a cold audience, results usually fall away. Have the next creative ready before the current one tires.
Tracking causes, and the plugins that fix them
When you optimise for conversions, Meta needs to see conversions. A broken pixel gives it nothing to aim at, and delivery becomes cautious or stops.
- Meta Pixel Helper, free Chrome extensionLoad your site with it running. It shows whether the pixel fires and which events register. Start here before changing any settings.
- Events Manager, in Business ManagerCheck the event you are optimising for is arriving and is not marked inactive. An event with no recent activity cannot be used for optimisation.
- PixelYourSite, free versionHandles pixel and event setup on WordPress and WooCommerce without touching code. The free tier covers standard events for most sites.
- Conversions APISends events from your server rather than the browser, so ad blockers and browser tracking limits do not erase them. Meta reports many Indian advertisers recovering a noticeable share of lost events with it. Most tag plugins now include a setup path.
- Meta pixel on ShopifyUse the native Facebook and Instagram channel rather than pasting the pixel into the theme. Manual installs frequently double-count purchases, which corrupts optimisation.
Switch one ad set from conversion optimisation to link clicks for 24 hours. If it delivers immediately, the settings and audience are fine and your tracking is the problem. If it still does not deliver, the cause is billing, audience or bid.
Fixing learning limited
The threshold is roughly 50 conversion events per ad set per week. Below that, Meta cannot tune delivery reliably.
- Combine similar ad setsFour ad sets with 10 conversions each learn nothing. One with 40 gets close to the threshold.
- Optimise for an earlier eventIf Purchase is too rare, switch to Add to Cart or Lead. More events means faster learning, and you can move back later.
- Widen the audienceRemove one interest layer, or broaden the age band.
- Raise the budget rather than the number of ad setsConcentration beats spread when volume is the constraint.
- Stop editingEvery change restarts learning. Give it four clear days.
Placements, and where small budgets quietly go
Placements decide where your ad can appear: Facebook feed, Instagram feed, Reels, Stories, Audience Network, Messenger and more. Two things about them matter when delivery is poor.
Restricting placements shrinks the auction pool. Selecting only Instagram feed and Instagram Stories cuts out most of the inventory Meta has available, and on a small audience that can be the difference between delivering and not. Advantage+ placements, which lets Meta choose, almost always delivers more reliably on a limited budget.
The counter-argument is real though. Audience Network and some Reels inventory can produce cheap impressions of poor quality, which flatters your cost per click and does nothing for enquiries. If you turn placements loose, watch results by placement in the breakdown rather than trusting the blended number.
| Situation | Placement setting | Reason |
|---|---|---|
| New account, small budget, delivery stalling | Advantage+ placements | Widest pool, best chance of leaving learning |
| Creative made only for vertical video | Manual, feed plus Stories plus Reels | Square creative in a vertical slot wastes the impression |
| Lead quality falling, volume fine | Manual, exclude Audience Network | Common source of accidental clicks |
| Retargeting a small warm list | Advantage+ placements | The audience is already tight. Do not narrow it twice. |
Breaking results down by placement takes a minute. In Ads Manager choose Breakdown, then By Delivery, then Placement. If one placement is taking most of the budget and producing none of the results, you have found something worth acting on.
Account quality and restrictions
If several campaigns stop at once, check Account Quality in Business Manager. Restrictions can apply to the ad account, the page, the pixel or the business, and each shows separately.
New accounts in India often hit a soft spending ceiling in the first weeks. It lifts as billing history builds. Trying to force volume through a new account by raising budgets sharply is a reliable way to trigger a review.
If the account is disabled, request a review through Account Quality and wait. Creating a replacement ad account to get around a restriction risks the whole business account.
The order to check, in one list
- Billing and payment methodFailed payments, spending limits, card restrictions. Most common, least suspected.
- Schedule and time zoneThirty seconds to rule out.
- Audience size and overlapToo small, or competing with your own ad sets.
- Bid and budget capsRemove them while diagnosing.
- Pixel and eventsOnly matters if optimising for conversions.
- Ad quality rankingIf everything else is fine, the creative is the constraint.
- Account qualityRestrictions at account, page or business level.
Zero delivery is nearly always a mechanical problem: billing, audience size, or a cap you set and forgot. Poor delivery is usually a creative problem. Treating the first as though it were the second is how people rewrite ad copy for a week while a declined card sits at the top of the billing screen.
What not to do
- Do not duplicate the ad set repeatedly hoping one will take. It multiplies audience overlap and makes delivery worse.
- Do not raise the budget sharply to force delivery. Large sudden increases reset learning and can trigger a review on newer accounts.
- Do not delete and rebuild a campaign that is merely in learning. You discard the data it has gathered.
- Do not run several ad sets at the same small audience. Consolidate instead.
- Do not judge results during learning. The numbers in the first three days do not predict the next thirty.
Most delivery problems resolve in an afternoon once you know which of the seven to check. If the account has been through several people and nobody is sure what was changed or when, an outside read of the structure is usually quicker than another round of adjustments. That is the first thing we look at on any paid advertising account we take over, and it is often where the answer has been sitting for weeks. Where the ads deliver but the enquiries do not convert, the constraint has moved to the page rather than the campaign, and our landing page work is the better place to start.