All posts

Your Ads Are Live But Spending Nothing — Here's Why

Zero spend with no error message is one of the most expensive silences in paid ads — here's the exact diagnostic checklist for Meta and Google.

AdControlCenter Team
· 11 min read
Cover image for Your Ads Are Live But Spending Nothing — Here's Why

"Active" is a lie. The campaign status says it's running. The ad says it's approved. Your credit card is charged nothing. And the platform offers exactly zero explanation.

This is the zero-delivery trap, and it hits both Meta and Google advertisers constantly — not just beginners. On May 9, 2025, a thread in r/FacebookAds filled with experienced operators watching their campaigns either freeze completely or burn budget with zero conversions, with no system alert from Meta. A separate thread the same week showed a first-time Google Ads user whose campaigns weren't spending at all and couldn't get a straight answer from the UI. This is not a beginner problem. It's a platform-opacity problem, and the fix is usually one of about eight things.

TL;DR — Ads Live, Spending Nothing
  • "Active" doesn't mean "delivering." Both Meta and Google show campaigns as enabled while they're stuck at zero impressions — often with no error message.
  • The most common causes: learning phase exhaustion, audience overlap, billing soft-limits, low bid/budget relative to auction competition, and ad set-level policy holds that don't surface clearly at the campaign level.
  • Meta-specific: cold accounts and new pixels trigger conservative delivery by default; the platform needs signal before it spends aggressively.
  • Google-specific: keyword match type, low Quality Score, and misconfigured location or ad scheduling can silently kill delivery without disapproval.
  • The fastest diagnostic move: drop to the ad set or ad group level and check delivery status independently — campaign-level "Active" masks individual-level problems.

Why "No Errors" and "No Spend" Can Coexist Indefinitely

Meta's delivery system is probabilistic. It enters an auction, evaluates expected value, and if your bid or estimated action rate is too low, it simply doesn't bid aggressively — or at all. The status column still reads "Active." Google does something similar with Quality Score: an ad can be approved and eligible but sitting in a position where it never actually serves, especially on exact-match keywords with low volume or broad keywords with low relevance scores.

Neither platform has a strong product incentive to surface this clearly. A disapproved ad generates a support ticket. An ad that's technically approved but not competitive enough to win any auctions is invisible to their reporting — and therefore invisible to you. The result is a system where approval status and delivery status are entirely separate, and the gap between them is your problem to find.

You have to go looking.

The Meta-Specific Checklist

Start at the Ad Set Level, Not the Campaign

Campaign-level status is an aggregate. One disapproved ad creative inside an otherwise fine ad set can suppress the whole set's delivery without surfacing clearly at the top. Go to Ads Manager, filter by ad set, and look at the Delivery column specifically — not just the toggle state.

Things to check in order:

  1. Billing threshold hit or payment method flagged. Meta will pause delivery silently if your payment method has a soft decline. Go to Billing, look for a yellow warning, and manually trigger a payment if needed. This is the fastest thing to rule out.

  2. Learning phase with insufficient signal. If you launched recently and changed the ad set more than once — budget, audience, creative, bid — Meta resets the learning phase. Each reset requires the system to re-accumulate optimization events before it bids confidently. If your budget can't support that volume at your target CPA, Meta delivers slowly or not at all.

  3. Audience too small or too overlapping. A thread from r/FacebookAds on cold account behavior highlights how new accounts with no pixel history get restricted delivery because Meta has no prior data to calibrate against. If your account is fresh or your pixel has fewer than a few hundred events, Meta is bidding blind and acts accordingly.

  4. Ad-level policy hold. Even one ad flagged for policy review — which can happen without email notification — will pull down delivery for the whole set. Check each individual ad's status. Look specifically for "In Review" or "Limited" labels, not just the campaign toggle.

  5. Estimated audience too narrow for the bid. If you layered five interest categories plus a custom audience exclusion, you may have an audience of a few thousand people. At CPMs competitive in your vertical, Meta won't find enough eligible impressions to spend your daily budget.

Cold Account Behavior

A new Meta ad account gets conservative delivery regardless of budget. Meta has no historical signal on your pixel, your creative engagement rates, or your audience. The first few days are slow by design. Doubling the budget on day one doesn't fix it — more creative variations and patience do.

  1. The silent auction loss. One r/FacebookAds thread titled "No consume" captures this exactly: campaigns active, no errors, zero impressions. In most of these cases, the ad set is entering auctions but losing every single one. Either the bid cap is too low, or the audience is being outbid by other advertisers targeting the same segment. Try switching from lowest cost with a bid cap to lowest cost without a cap temporarily to test whether you can win an auction at all.

The Google Ads-Specific Checklist

Google gives you slightly more diagnostic data than Meta, but it's buried.

  1. Use the "Ad preview and diagnosis" tool first. In Google Ads, go to the Ads tab, click the status icon next to a specific ad, and run the diagnosis. This is the fastest path to an actual answer — it tells you if the ad is not showing for a specific query and exactly why.

  2. Check keyword status individually. Every keyword has its own status column. Look for: "Low search volume" (the keyword won't trigger until volume picks up), "Below first page bid" (you're eligible but too cheap to show), or "Rarely shown due to low Quality Score." All of these produce zero or near-zero spend with an "Eligible" campaign status at the top level.

  3. Location and scheduling conflicts. A Google Ads thread from r/googleads captures a common mistake: setting a location target that's too narrow, or an ad schedule that doesn't cover the hours when the target audience searches. If your ads run 9am–5pm in one timezone and your audience is in another, you may serve almost nothing.

  4. Billing not fully verified. New Google Ads accounts require billing verification before full delivery starts. A manual payment method that hasn't cleared yet will show campaigns as active with zero spend.

  5. Budget too low relative to CPC estimates. If your daily budget is $5 and the estimated CPC for your keywords is $8–$12, Google will attempt to enter auctions but rarely win. If your daily budget covers fewer than 2–3 clicks at estimated CPC, delivery will be near-zero.

Decision Tree: What to Check First

The fastest path through a zero-delivery debug depends on what the platform is actually showing you. Here's the exact branching logic we use:

If you have zero impressions (not just zero spend):

  • Check billing first on both platforms. A failed payment stops auctions before they start.
  • On Meta: go to ad-level status and look for "In Review" or "Limited." One flagged ad kills the set.
  • On Google: run "Ad preview and diagnosis" on a specific ad, then check each keyword's status column for "Low search volume" or "Below first page bid."

If you have impressions but zero or near-zero clicks:

  • The ad is serving but losing attention. This is a creative or relevance problem, not a delivery problem. Check Google's Ad Strength indicator or Meta's relevance diagnostics (Quality Ranking, Engagement Rate Ranking).
  • On Google, also check match type — broad match on a low-relevance keyword can generate impressions against the wrong queries with no clicks.

If you have clicks but zero spend logged (or spend far below budget):

  • On Meta: budget pacing. Meta smooths spend across the day; if you check at 8am, low spend is normal. Check spend at end of day against your daily budget.
  • On Google: check for invalid click filtering. Google automatically filters clicks it deems invalid — these won't appear in your cost data. If conversions are also missing, check your conversion tag.

If the account was spending yesterday and is at zero today with no changes:

  • Check forums before debugging your own account. Platform anomalies are real. If r/FacebookAds or r/googleads has threads from the last few hours, wait it out.
  • If it's isolated to your account: billing soft-decline is the most likely culprit. Check immediately.

Platform Instability Is Real (But Rare)

The May 9th Meta thread deserves a specific callout. Some zero-delivery events are not your fault. On that day, multiple advertisers with healthy accounts, reasonable bids, and established pixels reported simultaneous freezes and erratic delivery. No official Meta status page update. No explanation.

The diagnostic tell: if your account was spending normally yesterday and is at zero today with no changes on your end, check forums before spending two hours debugging your own account. If it's a platform event, waiting is the correct move. If it's isolated to your account, the checklists above apply.

The One Fix That Helps Both Platforms

Simplify the structure.

Every layer of complexity — additional audience exclusions, dayparting, bid adjustments, creative variants — is a potential failure point the platform won't explain to you. When delivery stops, the fastest diagnostic path is to create a stripped-down duplicate: one ad set, broad audience, no bid cap, single creative, maximum schedule coverage. Run it for 24–48 hours.

If the duplicate spends, your original campaign has a structural problem. Start adding constraints back one at a time.

If the duplicate also doesn't spend, the problem is upstream: billing, account standing, or platform instability.

The Duplicate Test

We've used this approach on accounts with 10 or more ad sets stuck at zero. A bare-minimum duplicate campaign almost always reveals whether the problem is in the structure or in the account itself. It takes 10 minutes to set up and saves hours of blind debugging.

Preventing the Next Zero-Delivery Event

A few structural habits that reduce the frequency of silent non-delivery:

  • Never make more than one significant change per ad set per day. Each change can reset or disrupt the learning phase. Stack changes and you may never exit it.
  • Keep a budget log. Note your daily budget and actual spend each day. A sudden drop to near-zero spend — before you've touched anything — is an early signal of a billing issue or platform anomaly.
  • Watch delivery at the ad level, not the campaign level. Campaign-level metrics aggregate away the problems. Get in the habit of filtering to the ad level weekly.
  • Set up spend alerts. Both Meta and Google support budget alerts. Set one at 50% of expected daily spend — if it doesn't trigger by noon, you know to investigate.

The most expensive silence in paid ads isn't a bad CPM. It's a campaign that's "active" and spending nothing while you assume it's working.


FAQ

Why is my Meta ad approved but getting zero impressions? Approval and delivery are separate states. An approved ad still has to win an auction. If your bid is too low, your audience too small, or your account too new for Meta to have calibration data, the ad will be approved but won't serve. Check delivery status at the ad set level, then drill to each individual ad and look for "In Review" or "Limited" labels.

How long should I wait before a Google Ads campaign starts spending? New campaigns with a verified billing method and eligible keywords typically start within a few hours. If you've waited more than 24 hours with zero impressions, check keyword status individually — look for "Low search volume," "Below first page bid," or Quality Score issues before assuming a platform problem.

What does "learning limited" mean on Meta and does it stop spending? "Learning limited" means Meta's delivery system doesn't have enough optimization signal to allocate budget efficiently. It won't always mean zero spend, but it usually means slow and inefficient spend. The fix is either a higher budget, a broader audience, or consolidating ad sets to concentrate optimization events.

Can a single disapproved ad stop a whole campaign from spending? On Meta, a disapproved ad inside an ad set can suppress that ad set's delivery even if other ads in the set are approved. Campaign-level status won't clearly reflect this. Always check individual ad statuses, especially if you have multiple creatives per ad set.

Why did my ads stop spending overnight with no changes? Three likely causes: a billing soft-decline (check your payment method immediately), a platform-level delivery anomaly (check r/FacebookAds or r/googleads to see if others are affected), or an automated policy review triggered without proactive notification. Start with billing — it's the fastest to rule out.

What's the fastest way to diagnose zero spend on Google Ads? Click the status icon next to an individual ad and run "Ad preview and diagnosis." Then check each keyword's status column for flags like "Low search volume" or "Below first page bid." These two steps resolve the majority of Google Ads zero-spend cases without touching campaign structure.

Is it worth calling platform support when ads stop spending? Rarely fast, occasionally useful. Meta support response times are slow and responses are often generic. Google support is faster on paid accounts but still limited for delivery issues. Forums and the platform's own diagnostic tools — keyword status, delivery insights, billing alerts — will get you to the answer faster in most cases. Reserve support calls for account-level flags or billing disputes you can't resolve yourself.

Ship a campaign in 2 minutes.
No credit card. Deploys paused for your approval.
Generate my ads →
Share
#meta-ads#google-ads#zero-delivery#campaign-troubleshooting#ad-spend#facebook-ads#debugging
AdControlCenter
AdControlCenter Team
AdControlCenter

We build AdControlCenter — AI-powered ad management for anyone running their own ads. We write what we'd want to read: real numbers, no fluff, the things we wish we'd known when we started.

More from the team