A campaign with no impressions is failing at one of eight things, and they are not equally likely. Check them in this order, because the order is roughly how often each one turns out to be the answer, and the cheap checks come first.
One: it is not actually running
Paused campaign, paused ad group, paused ads, an end date that has passed, or a campaign whose schedule excludes the hours you are looking at. This is the single most common answer and the one people skip because it feels too obvious to be it. Check the status column on all three levels, not just the campaign.
Two: the ads are disapproved
A disapproved ad serves nothing, and the notification is easy to miss. Check the policy column at ad level. Under review is different from disapproved and usually resolves inside a day. Separately, an unverified advertiser account can stop serving entirely, and that one has a deadline attached to it, so read the account notifications before assuming the campaign is broken.
Three: the budget is exhausted or the payment failed
A declined card stops the account. So does a spending limit you set two years ago. Look at the billing summary rather than the campaign, because a payment problem shows up as an account level notice and not as a campaign status.
Six of the eight causes are visible in the account without changing a single bid. Start there.
Four: the bid is below the first page floor
Now the bidding one. On a manual bid, a bid under the estimated first page figure buys nothing at all rather than buying a worse position. On an automated strategy, a target that is far too strict does the same thing quietly: a target return of, say, twelve on a category that clears at three tells the system that almost no auction is worth entering, and it obeys.
Five: the targeting is empty
A location no one searches from, a language setting that excludes your actual audience, an audience layer set to targeting rather than observation, or a device exclusion left over from a test. Each of these can reduce the eligible auctions to nearly zero without producing any error at all.
Six: the keywords have no volume, or the match is too tight
Exact match on a phrase nobody types is a campaign with nothing to serve on. Search volume on the terms you are bidding on is worth checking directly rather than assuming, and a negative keyword list inherited from another account can silently block your own best terms. Check whether your negatives overlap your positives before adding more.
Seven: the feed is the blocker, not the campaign
On Shopping and Performance Max, no approved products means no impressions, and approved does not mean shown. Products can be approved and still get no traffic, which has its own causes. A Merchant Center account under suspension stops everything at once, and the fix is rarely the thing the notice names.
Eight: it is new
A brand new campaign, or one whose bid strategy was just changed, spends a few days in a learning state where delivery is deliberately uneven. If everything above is clean and the change was yesterday, the answer is to wait rather than to intervene, and intervening restarts the clock.
What we do with it
We walk this list on every account we take over, because roughly half the accounts we see have at least one of the first three quietly true. It costs an hour and it is the cheapest thing in the engagement. How we run Google is on the Google Ads page.