If your ad status says “Approved” or “Eligible” but you’re getting little to no impressions, the ad itself usually isn’t the problem. Something else in the account is stopping it from entering or winning auctions: an underfunded budget, a bid that can’t compete, targeting settings that have quietly shrunk your audience, or a billing issue that’s paused delivery without changing the campaign’s visible status. Approval only means Google has checked the ad for policy compliance. It says nothing about whether the ad is actually eligible to serve right now.
Here’s where to look, roughly in order of how often each one turns out to be the cause.
Open the ad and look at the status column closely. “Approved” can sit alongside a separate eligibility note like “Eligible (limited)” at the campaign or ad group level. That “limited” tag is Google telling you the ad is allowed to run but isn’t being shown much because of a constraint elsewhere, usually budget. Hover over the status icon or check the campaign-level status for the real explanation rather than reading “Approved” as “running normally.”
This is the single most common cause. If your daily budget is too small for the auctions you’re competing in, Google will deliberately hold back impressions to spread your spend across the day, and in cheaper traffic it may simply not show your ad at all until the next budget period. You can confirm this by adding the “Search impr. share” and “Search lost IS (budget)” columns to your campaign view. If “Lost IS (budget)” is high, your budget, not your ad quality or bid, is the bottleneck. The fix is raising the daily budget, narrowing the campaign so the existing budget covers fewer, more relevant auctions, or lowering bids so each click costs less and the budget stretches further.
If budget isn’t the constraint, check “Search lost IS (rank)” instead. A high number there means your ad is entering auctions and losing on Ad Rank, which combines your bid, expected click-through rate, ad relevance, and landing page experience. A very low manual bid, or a Target CPA/Target ROAS goal set far below what the auction actually requires, will both suppress delivery even though nothing looks “wrong” on the surface. Automated bid strategies need a reasonable amount of conversion data to calibrate; a campaign switched to Target CPA with only a handful of conversions in the last 30 days will often underdeliver while it’s still trying to learn what a good bid looks like.
Audience, demographic, and location targeting stack together, and each layer narrows the pool of people your ad is even allowed to reach. A campaign targeting a single postal code, a narrow age range, and a small custom audience segment simultaneously can end up with an eligible audience too small for Google to find enough auctions to enter. Check each targeting layer separately rather than assuming the combination is fine just because each one looks reasonable in isolation. Audience exclusions are an easy thing to miss here too: it’s common to find an observation audience accidentally set to “Targeting” instead of “Observation,” which turns a tracking layer into a hard restriction.
A broad negative keyword added months ago for a legitimate reason can silently block searches that are now central to a new campaign. Run the Search Terms report, but also check negative keyword lists at the account, campaign, and ad group level, since a conflict three layers up from where you’re looking is easy to miss. On the match type side, if every keyword in the ad group is exact match, you’re relying on exact query matches only; broadening to phrase match on a few core terms often recovers volume without materially hurting relevance.
Ad scheduling that only allows delivery during business hours, bid adjustments that effectively zero out a device, or a frequency cap set too low can all suppress impressions without any error or warning appearing in the interface. These settings don’t produce a status change, so they’re easy to forget about once they’re set, especially if someone else configured the account originally.
A declined payment method, a monthly invoicing threshold that’s been reached, or an account flagged for a billing review can all stop ads from serving while the campaign and ad statuses still read as active and approved. Check the Billing section directly rather than assuming that because nothing in the campaign view says “paused,” payment isn’t the issue.
Work through this in order: billing status first, since it overrides everything else; then impression share lost to budget; then impression share lost to rank; then targeting layers; then negative keywords and ad scheduling. Add the impression share columns to your campaign table before you do anything else, because they tell you immediately whether you’re looking at a budget problem or a competitiveness problem, and that distinction changes what you should actually fix.
If you’ve gone through all of this and the ad is still barely showing, the account usually has more than one of these issues compounding each other, which is exactly the kind of thing that’s hard to see from inside your own account. That’s the situation where a second pair of eyes on the account structure tends to save far more time than continuing to guess.