- Start with the status column, not the panic
- Cause one: your daily budget is too small for your bid
- Cause two: audience overlap is splitting your own ads against each other
- Cause three: the learning phase got reset and nobody noticed
- Cause four: payment failed quietly
- Cause five: it's in review, rejected, or restricted and you missed the notification
- The uncomfortable bit nobody tells you
- A quick diagnostic order to follow
- Frequently asked questions
The short version: Instagram ads usually stop delivering because of budget pacing issues, audience overlap, a learning phase reset, payment problems, or a rejected edit you missed. Work through those five causes in order and you'll find the culprit in about ten minutes, before you even open a support ticket.
I've spent years sitting next to business owners staring at an Ads Manager dashboard that just says "learning limited" or shows zero impressions, and the panic is always the same. They assume Instagram is broken or that they've been shadowbanned. Nine times out of ten it's none of that. It's one of a handful of boring, fixable things.
Start with the status column, not the panic
Open Ads Manager and look at the Delivery column next to the ad, not the campaign. Instagram shows a status for a reason:
- Active but zero spend - usually a budget or bidding problem
- Learning - the algorithm is still testing, give it time
- Learning limited - your audience is too small or conversions too rare for the algorithm to optimise
- Not delivering - a hard stop, usually payment or policy related
- In review - sitting in the moderation queue, which can take up to 24 hours
That one word tells you which of the five causes below you're dealing with. Don't skip this step and jump straight to rewriting the ad, because half the time the ad itself is fine.
Cause one: your daily budget is too small for your bid
This is the most common one and nobody likes hearing it. Meta generally wants your daily budget to be at least enough to cover roughly 50 optimisation events a week for the goal you've picked. If you're optimising for purchases and your average order is £40, a £5 a day budget is not going to get you enough purchase signals, so the system throttles delivery rather than spend wildly for no result.
Worked example: say you run a candle business and set up a £10 a day campaign optimising for purchases, with a £25 average order value. You need roughly seven purchases a week for the algorithm to exit learning. At £10 a day that means your cost per purchase would need to be under £10, which is unrealistic for a cold audience. Instagram effectively stalls the ad rather than overspend chasing an outcome it can't predict. Bump the budget to £20-£25 a day, or switch the optimisation goal to add-to-cart instead of purchase, and delivery usually picks up within 48 hours.
Cause two: audience overlap is splitting your own ads against each other
If you're running three ad sets targeting UK women 25-44 interested in fitness, UK women 25-44 interested in wellness, and UK women 25-44 interested in yoga, you've probably built three near-identical audiences. Meta's auction will often suppress delivery on two of them in favour of the one performing best, because it doesn't want to bid against itself. Use the Audience Overlap tool in Ads Manager (under Audiences) to check. Anything above 20% overlap is worth merging into one ad set.
Cause three: the learning phase got reset and nobody noticed
Every time you make a "significant edit" the ad set drops back into learning and delivery slows while Meta relearns who to show it to. A significant edit includes changing the budget by more than roughly 20%, swapping the creative, editing targeting, or changing the bid strategy. If you're making small tweaks every day because the numbers look slow, you're the one causing the slowness. Set a rule: leave a new ad set alone for at least three to four days, or until it's spent roughly the cost of 50 target events, before touching anything.
Cause four: payment failed quietly
This sounds obvious but it happens constantly. A card expires, a bank flags an overseas transaction as suspicious, or a prepaid threshold wasn't met. Check Billing under Settings in Ads Manager. If there's an outstanding balance or a declined payment, every ad across the account pauses, not just the one you're looking at. For anyone running ads for clients in different countries, this is worth checking first because currency conversion holds and fraud flags on international cards are more common than people expect.
Cause five: it's in review, rejected, or restricted and you missed the notification
Ad review usually clears in under an hour but can take up to 24 hours, and rejected ads often sit there quietly instead of shouting at you. Common rejection triggers include before/after imagery, text covering more than 20% of the image on older ad formats, claims about personal attributes ("lose weight," "find love"), or policy-sensitive categories like health, finance and housing, which get extra scrutiny. Check the Policy tab on the ad level. If it's rejected for a vague reason, use the Request Review button rather than rebuilding the ad from scratch, because a full rebuild puts you back in a fresh review queue and a fresh learning phase.
The uncomfortable bit nobody tells you
Here's what most troubleshooting guides won't say plainly: sometimes the ad isn't delivering because the ad itself is bad, and no technical fix will rescue it. If your click-through rate is under 0.5% and your relevance ranking (shown as quality ranking in Ads Manager) is "below average," Meta's auction is correctly deciding that nobody wants to see this ad, and it's bidding you out of the auction against competitors with better creative. That's not a bug. That's the system working as intended. I've watched business owners spend three weeks fiddling with budgets and bid caps when the actual problem was a stock photo and generic copy that nobody was going to stop scrolling for. Fix the hook in the first three seconds of your video or the first line of your image ad before you touch anything in the settings.
Want AI doing the heavy lifting in your marketing?
I build the systems that handle the boring 80 percent, so you get your week back. Done properly, with the human kept in.
A quick diagnostic order to follow
- Check the Delivery status column first
- Check Billing for a declined payment
- Check the Policy tab for a rejection
- Check Audience Overlap if you're running multiple similar ad sets
- Check your budget against roughly 50 weekly optimisation events
- If all of that is clean, check your quality ranking and be honest about your creative
This takes ten minutes and solves the vast majority of delivery problems without needing to message Meta support, which can take days to respond and often just repeats the same policy text you've already read.
If you're running ads as part of a wider marketing push and keep hitting the same walls, it might be worth getting a second pair of eyes on the account setup rather than guessing indefinitely. An AI consultant for small business can often spot a structural issue, like audience overlap or a mismatched optimisation goal, in minutes because they're not emotionally attached to the campaign the way you are.
It's also worth remembering that ad delivery and organic reach run on separate systems. If you've noticed your account behaving strangely in other ways too, like messages not sending or sudden restrictions, it's worth checking whether your account itself is flagged rather than just the ad, since Meta can sometimes restrict advertising privileges on accounts it considers risky even when nothing in Ads Manager explains why.
I have written more around this on the site: Why Are My Instagram Messages Not Sending?, Instagram Money Calculator: What 10K Followers Can Earn, How to Check If an App Promising Free Instagram Followers Is Legit.
Frequently asked questions
Why does my Instagram ad say "learning limited"?
It means your audience or budget is too small for Meta to gather enough data on the action you're optimising for, usually fewer than 50 events a week. Widen the audience, raise the budget, or switch to an earlier-funnel goal like add-to-cart instead of purchase.
How long should I wait before I change an underperforming ad?
Give a new ad set three to four days or until it has spent roughly enough to generate 50 of your target action, whichever comes first. Editing too early resets the learning phase and makes the slow start worse.
Can a declined payment stop all my ads at once?
Yes. If your billing method fails, every active ad in that ad account pauses, not just the newest one. Check Billing under account Settings before you troubleshoot anything else.
Is my ad not delivering because my account is restricted?
It's possible. Accounts with policy violations or unusual activity can have advertising privileges limited separately from normal usage restrictions. Check the Account Quality section in Meta Business Suite to see if there's a flag you haven't noticed.
Run a business, a brand or a blog? I feature tools, products and expert guest posts for an audience of 15,000. See how it works