Blog · Diagnostic

Why your Google Ads campaign isn’t spending its full budget

Most “underspending” campaigns are not broken. Google spreads your average daily budget across the month, so a light day means nothing on its own. This guide separates the false alarms from the real faults: the maths behind daily and monthly spend limits, the one pair of columns that tells you whether a campaign is constrained or starved, and eight named causes with the exact screen to check for each.

A Google Ads campaign that is not spending its full budget is doing one of two things. It is constrained — Google wants to spend more than you allow — or it is starved, unable to find enough eligible auctions to spend in. The two states look identical on a cost report and have opposite fixes. Raise the budget on a starved campaign and nothing happens at all. Raise bids on a constrained one and you buy the same traffic faster, not more of it.

Before either, there is a third possibility that accounts for most of the panic in this category: the campaign is not underspending. It is pacing.

The short answer

Your average daily budget is a monthly target, not a daily quota. Google can spend up to twice it on a busy day and a fraction of it on a quiet one, aiming to land near 30.4 times it over the month. Judge a budget on a calendar month, never on a day. If the month is genuinely short, one column tells you which half of this guide to read: Search lost IS (budget).

The rest of this post is a diagnostic tree, not a listicle. Three questions narrow the problem to a class of cause, then eight named causes each tell you the exact screen to open, what you will see there, and how long the fix takes to show up in the data. Work it top to bottom — the order exists because early causes make later ones unreadable.

The maths that makes most of this a false alarm

Almost every “my budget is not spending” question comes from reading a daily number as if it were a daily promise. It never was. Google’s own documentation on average daily budgets sets two ceilings and nothing in between:

  • Your daily spending limit is two times your average daily budget, for most campaigns. A £50 budget can legitimately spend £100 on a Tuesday.
  • Your monthly spending limit is 30.4 times your average daily budget — 365 days divided by 12 months. A £50 budget is really a £1,520 monthly instruction.

Between those two ceilings Google paces however it likes, spending into demand when demand is there and holding back when it is not. If served costs push you past the monthly limit, Google applies an overdelivery credit — you are not charged above the monthly figure. So the honest test is not “did today hit £50?” It is “did the month land near £1,520?”

Reality checkAre you actually underspending?Works in any currency — the ratios are what matter. Nothing is sent anywhere; this runs in your browser.
Daily spending limit100budget × 2
Monthly spending limit1,520budget × 30.4
Left on the table420vs. the monthly limit

72% of pace — Mild underspend. Worth one diagnostic pass. Usually targeting, negatives, or a bid target set slightly too tight.

A month landing inside roughly 85% of the monthly limit is normal pacing, not a fault. Below about 60%, something is actively holding delivery back and the rest of this guide applies. The band in between is worth one diagnostic pass — it is usually targeting, negatives, or a bid target set slightly too tight.

One caveat that trips people up mid-month: if you change the budget partway through, the monthly limit is recalculated from the day of the change, so the month-to-date comparison you were running no longer means what you think it does. Compare complete months, or complete weeks, and change one thing at a time.

Constrained or starved? The 60-second fork

Open the Campaigns table, click Columns → Modify columns → Competitive metrics, and add Search lost IS (budget) and Search lost IS (rank). That single pair of numbers splits every underspending campaign into two populations with nothing useful in common.

SignalConstrainedStarved
Search lost IS (budget)Above 0% — often 10–40%At or near 0%
Campaign statusFrequently “Limited by budget”“Eligible”, or “Eligible (limited)”
Daily cost patternClimbs, hits a ceiling, stopsTrails along well under the cap all day
Impression curveFlat-topped — cut off mid-dayThin from open to close
What raising the budget doesBuys more of the same trafficNothing whatsoever
The actual questionIs the marginal traffic worth buying?Why is there no supply to buy?

Two Google statuses sit on the constrained side and are worth telling apart. “Limited by budget” means your average daily budget is below what would be needed to capture the impressions available at your current settings — a present-tense constraint. “Limited by budget soon” is a forecast: the budget simulator has spotted an expected traffic increase — usually seasonal — that would cost you 5% or more of weekly traffic at your current budget. The first is a decision. The second is a diary entry.

Neither status is automatically bad. Constrained is a good problem when the campaign is profitable at the margin and a bad one when it is not. That judgement needs cost per conversion by campaign, not a status label — which is exactly the ranking our optimisation queue does automatically, scoring each opportunity by what it is costing you rather than by how loudly Google flags it.

The decision tree

Three questions. Each one eliminates a whole class of cause, so answer them in order rather than jumping to the cause that sounds most like your situation.

Start hereThree questions, in this orderEach one rules out a whole class of cause. Do not skip ahead — most accounts stop at question one.
01

Is the campaign actually underspending?

Campaigns → Cost, over one full calendar month

Within ~15% of budget × 30.4

Normal pacing. Google spends unevenly by design. Nothing to fix — close the tab.

Genuinely short

Real underspend. Go to question two.

02

Is it constrained, or starved?

Campaigns → Columns → Competitive metrics → “Search lost IS (budget)”

Above 0% — constrained

Google wants to spend more than you allow. Go to cause 1, then read what changes on 17 August 2026.

At ~0% — starved

Google cannot find auctions to spend in. Go to question three.

03

Are your ads serving at all?

Campaigns and Ads → the Status column, plus account notifications

“Eligible (limited)”, disapproved, or nothing serving

Something is blocking delivery outright. Go to cause 7 and cause 8 first — they stop everything else from mattering.

Serving normally, just quietly

The auction supply is the problem. Work causes 2 to 6 in order.

The eight causes, in diagnostic order

Ordered by how often they are the real answer and how cheaply you can rule them out — not by how interesting they are. Each card names the screen to open, because “check your targeting” is not advice.

Cause 01

Your bid strategy target is throttling delivery

Looks like
Spend collapsed shortly after a target CPA or target ROAS was set or tightened. Conversions look efficient; volume does not.
Check
Campaign → Settings → Bidding, then the bid strategy report
Shows up in
3–7 days after a target change

Target CPA and target ROAS are efficiency instructions, not spend instructions. If the target sits below what the auction can realistically deliver, Google will leave your budget unspent rather than buy conversions above the number you gave it. This is the single most common cause of a campaign that used to spend and suddenly does not, and it is almost always self-inflicted.

Compare your target against the campaign’s actual CPA over the last 90 days. If the target is materially below the historic average, it is not attainable at volume. Google’s guidance on low traffic with Target CPA bidding is to raise the target; the practical version is to move in 10–20% steps and let each step gather 20–30 conversions before you judge it. Portfolio strategies add a second trap: a maximum CPC bid limit set on the portfolio silently caps every campaign inside it, and nothing in the campaign view tells you.

Cause 02

There are not enough eligible auctions to spend in

Looks like
Impressions are thin all day. Search impression share is low but almost none of the loss is attributed to budget.
Check
Keywords → Status column; then the Search terms report over 30 days
Shows up in
Immediately visible; 7 days to confirm a fix

Filter your keywords by status and look for Low search volume. Google assigns it to keywords with very little search history worldwide over the previous twelve months and stops them entering the auction entirely. It is unrelated to your bid, your Quality Score, and your creative, so editing those changes nothing. The status reverses on its own if volume returns.

The structural version of this problem is a keyword list that is simply too small or too tightly matched for the budget attached to it. A tidy exact-match account with forty keywords and a £200 daily budget is not a budget problem, it is an inventory problem. Broaden match types deliberately, one ad group at a time, and watch the search terms report closely for the first fortnight — the traffic you add this way needs policing, which is the subject of the search terms section of our audit checklist.

Performance Max has its own version of this. Where a product feed is involved, PMax leans heavily on Shopping inventory, so disapproved products, an expired feed, or listing groups that leave every asset group fighting over the same handful of SKUs will cap what the campaign can spend regardless of the number in the budget field. Thin asset groups do the same thing from the creative side. Check the Listing groups tab against campaign-level spend before assuming the budget is the problem — a pattern we see constantly in ecommerce accounts.

Cause 03

Your targeting is narrower than you think

Looks like
The campaign looks healthy in every respect except reach. Nothing is flagged anywhere.
Check
Campaign → Settings → Locations and Languages; then Audiences, and the Devices table
Shows up in
24–48 hours

Targeting constraints compound quietly. A tight radius around a single postcode, a language setting that does not match how your customers’ browsers are configured, an observation audience accidentally set to Targeting rather than Observation, a device bid adjustment left at −100% from a test two years ago: each is defensible on its own, and stacked they can remove most of your available auctions.

Work through them as a list rather than by intuition. Check the Devices table specifically — a −100% mobile adjustment removes most search volume in consumer categories and appears nowhere as a warning — and re-read the location setting, where presence versus presence or interest swings eligible volume hard in either direction.

Cause 04

Your ad schedule is capping the hours

Looks like
Spend stops at the same time every day, or weekends flatline. The daily total is short by a consistent proportion.
Check
Campaign → Ad schedule, cross-checked against the Hour of day report
Shows up in
24 hours

A campaign restricted to office hours has roughly a third of the day in which to spend a budget that Google prices as if it had all of it. If the schedule is deliberate — a phone-based sales team, a delivery cut-off — then the budget should be sized to the hours available, not to the notional day. Halving the schedule and keeping the budget produces an underspend that is arithmetic, not a fault.

Pull the Hour of day and Day of week reports and compare the shape of your impressions to the shape of your schedule. Where they match at the edges, the schedule is the ceiling. This one is worth setting an alert on rather than rediscovering quarterly — our anomaly detection baselines each account’s own rhythm, so a pacing shift against a known schedule surfaces as a message rather than as a month-end surprise.

Cause 05

Your own negatives are blocking you

Looks like
Keywords show as Active and eligible, but never trigger. Search terms volume dropped without a matching drop in demand.
Check
Keywords → Negative keywords, plus every shared list applied to the campaign
Shows up in
24–48 hours

Negative keywords take precedence over positive ones. If a negative matches a query that one of your keywords would also match, the negative wins and the ad does not show — and the keyword still displays as Active, with no conflict warning anywhere in the interface. A broad-match negative added to solve a problem in one campaign, then rolled into a shared list applied account-wide, is one of the most expensive silent failures in Google Ads.

Audit it properly: export the negative lists, export 90 days of search terms, and map which terms each negative would block. The over-blocking negatives tend to be single generic words — a lone free or cheap or a product category added as a phrase match — that made sense in their original context and stopped making sense the moment the account grew. If you would rather not do this by hand, it is one of the checks the Adszy MCP server exposes read-only to Claude and Codex, alongside budget pacing and search-term data. Teams running high-intent lead campaigns hit this hardest, which is why it shows up in our lead-gen workflows.

Cause 06

Ad Rank is too low to enter the auction

Looks like
Search lost IS (rank) is high. Impressions exist but are rare, and average position feels invisible.
Check
Keywords → Quality Score columns; Ads & assets → Ad strength and Status
Shows up in
1–2 weeks — Quality Score is historical

If most of your lost impression share is attributed to rank rather than budget, the budget is not the binding constraint and adding to it will change nothing. You are not losing auctions you entered; you are failing to enter them. Add the three Quality Score component columns — expected CTR, ad relevance, and landing page experience — and treat anything scoring “Below average” as the actual work item.

Check disapprovals in the same pass: a campaign whose only enabled responsive search ad is disapproved serves nothing while reporting a perfectly healthy budget. This is the diagnostic half of a proper Google Ads audit.

Cause 07

Serving is throttled by policy, not by you

Looks like
Status reads “Eligible (limited)”. Nothing in the campaign explains it. An account-level notification may be sitting unread.
Check
Account notifications; Policy manager; the Status column on Campaigns and Ads
Shows up in
Days to weeks — resolution is not instant

Google’s Limited ad serving policy restricts impressions for advertisers it considers unqualified in certain contexts — the stated aim is to limit ads “more likely to result in negative ads experiences”. Individual ads are not disapproved, so nothing looks broken; the volume simply is not there. Google says affected advertisers with a meaningful proportion of impressions in scope receive an in-account notification, which is the notification everyone scrolls past.

The remedies are account-level rather than campaign-level: complete advertiser verification, keep branding consistent between your ads and your site, resolve outstanding policy issues, and use the appeals form where you believe the restriction is wrong. Separately, accounts without a properly installed Google tag have been flagged as limited, so confirm your tag is firing before you go looking for exotic explanations — broken measurement is also what starves Smart Bidding of the conversion signal it needs, as covered in the conversion tracking section of our checklist.

Cause 08

Billing has quietly stopped you

Looks like
Spend went to zero, or fell off a cliff on a specific date, across every campaign at once.
Check
Billing → Summary, Payment methods, and Documents
Shows up in
Immediate once resolved

Check this whenever the drop is account-wide and dated rather than gradual. A declined payment stops ads running until it clears — some accounts get a short grace period, which is exactly long enough to make the eventual stop look mysterious. On monthly invoicing, exceeding your payment terms or credit line slows or stops delivery until overdue invoices are paid or the credit limit is raised.

While you are in there, check for an account-level budget or spend cap. A cap set during a quiet quarter and never removed will hold every campaign below its own budget indefinitely, and it is invisible from the campaign view. Adding a backup payment method costs nothing and removes the most common version of this failure permanently.

What changes on 17 August 2026

Dated section. From 17 August 2026, Google enforces target-based bid strategies more strictly for campaigns that are limited by budget. If you manage budget-limited campaigns on Target CPA or Target ROAS, this changes what “constrained” costs you.

Until now, a budget-limited campaign on a target-based strategy would often overperform its target: given less budget than the auction could absorb, Google concentrated spend on the cheapest available conversions and the actual CPA landed below the number you set. Plenty of accounts have quietly depended on that without ever naming it.

Google’s documentation on changes to target-based bid strategies states that from that date, budget-limited campaigns using a target-based strategy will “more consistently perform toward your bid target, including when you make budget adjustments”. Google’s own example is blunt: a campaign with a $10 Target CPA currently delivering a $5 actual CPA will deliver closer to $10.

The change covers Search, Shopping, Performance Max, Demand Gen, Display, Hotel and Travel campaigns; App, Video reach and Video view campaigns keep their previous behaviour. Google made a Bid Target Adjustment Tool available from 6 July 2026, surfaced through account-level notifications to advertisers whose campaigns carried a “Limited by budget” status over the previous twelve months while running an affected strategy.

What to do before the date, in order of importance:

  • List every budget-limited campaign on Target CPA or Target ROAS. Filter by the “Limited by budget” status and cross-reference the bid strategy column. That is the affected population, and it is usually smaller than people fear.
  • Compare each target against 90 days of actual performance. Campaigns comfortably beating their target are the ones that will move; campaigns already delivering at target will not notice.
  • Decide deliberately rather than by default. Lower the target to match recent performance and you keep today’s efficiency. Leave it and you trade efficiency for volume. Both are legitimate — drifting into one because you did not look is not.
  • Make the change once. Target and budget changes both disturb the bid strategy’s learning period, so batch them into a single edit.

If you would rather not audit this by hand across a portfolio of accounts, this is precisely the shape of work an AI Google Ads agent is good at: read every account, find the campaigns that match both conditions, rank them by how far actual performance sits from target, and draft the change for a human to approve. Adszy is read-only until you approve — nothing reaches the account without a yes.

Fix them in this order

Thirty minutes, once, beats a fortnight of ad-hoc changes — because sequencing keeps each result readable.

  • Rule out the false alarm (2 min). Last complete month against average daily budget × 30.4. Within roughly 15%, stop here.
  • Check billing and policy (3 min). Causes 7 and 8 first — if either is live, every other measurement you take is contaminated.
  • Split constrained from starved (5 min). Add the two impression share columns.
  • If constrained: price the marginal traffic (10 min). Check cause 1, then look at cost per conversion in the campaigns losing impression share to budget. Fund the profitable ones from campaigns that are not converting rather than from new money.
  • If starved: work causes 2 to 6 in order (15 min). Targeting and negatives first — they reverse in a click. Ad Rank last, because it is the slowest to move.
  • Then wait 7 to 14 days. Significant budget changes — roughly 20–30% or more — can restart the learning period. Judging after three days tells you about volatility, not about the change.

Then make it a habit rather than an incident. Pacing drifts continuously and silently, which is why it belongs in weekly reporting rather than quarterly firefighting.

Four things not to do

  • Do not raise the budget when the loss is attributed to rank. You will pay more for the same number of auctions you were already failing to enter. Fix rank first — it lowers effective CPC, which often makes the budget sufficient without adding a penny.
  • Do not raise bids when the loss is attributed to budget. The budget empties earlier in the day and you buy the same traffic at a worse price. This is the single most expensive mistake in this whole diagnostic.
  • Do not change five things at once. Budget, target, match types, negatives and schedule all move delivery. Change them together and you will never learn which one worked — and you will have restarted the learning period into the bargain.
  • Do not treat month-end catch-up spending as a bug. A campaign that has underspent often pushes harder in the final days as Google works toward the monthly limit. That is the system doing what it says it does. If those last-day conversions are poor, the problem is the pacing that preceded them.

Most underspend turns out to be one of three things: pacing that was never broken, a target set below what the auction can deliver, or a negative keyword doing far more damage than anyone intended. All three are cheap to find once you know which column to look at — and all three should surface on their own rather than wait for someone to go looking. That is the job we built Adszy to do: read the account, rank what it is costing you, draft the fix, and apply only what you approve. Ask it why a campaign underspent and it answers with the evidence attached. The free plan covers one account with no card, or watch it work end to end in the interactive demo first.

Frequently asked questions

Why is Google Ads not spending my full daily budget?

Because your average daily budget is a monthly target, not a daily quota. Google can spend up to twice your average daily budget on a high-traffic day and less on a quiet one, aiming to land near 30.4 times that figure over the month. If the monthly total is close to target, nothing is wrong. If it is genuinely short, the cause is either that your campaign cannot find enough eligible auctions — narrow targeting, thin keywords, over-broad negatives, low Ad Rank — or that something is actively holding it back, such as a bid strategy target set below what the auction can deliver, a policy restriction, or a billing failure.

Is it bad if my Google Ads campaign is “limited by budget”?

Not inherently — it means Google believes it could spend more at your current settings. That is a good problem if the campaign is profitable and a bad one if it is not. The decision hinges on efficiency at the margin: if your cost per conversion is comfortably inside target and you are losing impression share to budget, raising the budget buys more of something that already works. If efficiency is marginal, fix targeting and Ad Rank first, because extra budget will simply buy more of the same mediocre traffic.

Can Google Ads spend more than my daily budget?

Yes, on any individual day. Google states your daily spending limit is two times your average daily budget, and your monthly spending limit is 30.4 times it. If served costs push you past the monthly limit, Google applies an overdelivery credit — you are never charged above the monthly figure. This is why judging a budget on a single day’s spend is misleading in both directions.

Why did my campaign stop spending after I lowered my target CPA?

Target CPA and target ROAS are efficiency instructions, not spend instructions. If the target sits below what the auction can realistically deliver, Google would rather leave budget unspent than buy conversions above your stated target. Raise the target in 10–20% steps and let each step gather 20–30 conversions before judging it. Note that from 17 August 2026, Google enforces these targets more strictly for budget-limited campaigns, so a campaign that used to beat its target will drift toward it.

How long should I wait before changing a Google Ads budget again?

Give any change 7–14 days before you judge it. Significant budget moves — roughly 20–30% or more — can restart the bid strategy’s learning period, and stacking changes on top of each other means you never see a clean result from any of them. If you need to adjust budget, target, and conversion settings, make all of them at once so you trigger one learning period rather than three.

More from the blog

Put it to work

See what your account is wasting

Adszy reads your Google Ads account, ranks every fix by what it is costing you, and applies the changes you approve. Read-only by default — nothing changes until you say so.