You are paying to advertise products nobody can buy
Somewhere in your ad account, right now, there is a campaign spending real money to send people to a product that is out of stock, disapproved in your feed, or priced wrong. The ad platform does not know the product is unbuyable. It just keeps spending. And it will keep spending until a human happens to notice, which is usually long after the damage is done.
This one stings because it is so stupid. Nobody decided to waste the money. The ad kept running because that is what ads do. The product went out of stock because that is what bestsellers do. The two facts lived in two different systems that never spoke, and the gap between them quietly billed your card every day.
On my own brand I found a variant we had paused on the store but never paused in the ad set. We were paying for clicks to a page that, the second it loaded, said sold out. Weeks of it. The click-through rate even looked fine. The product page just could not do anything with the traffic except disappoint it.
Meta: alt="Diagram of ad spend flowing to an out-of-stock product page, with the feed status and the live campaign side by side and disconnected" · 1600x900 · PNG · loading="lazy"
Content: Left: a live ad campaign with daily spend ticking up. Right: the product feed showing that same SKU as out of stock or disapproved. A broken connection line between them, with the spend continuing anyway. The visual point is that the two systems never compare notes. Warm-white, hairline borders, coral on the wasted-spend number.
The four ways the money leaks
It is almost always one of these, and they all hide in the same blind spot:
- Out of stock, still advertised. The bestseller sells out, the campaign keeps pushing it, the traffic bounces off a sold-out page.
- Disapproved in the feed. A product gets rejected over a policy or data issue, so it stops serving organically but the paid campaign limps on around it.
- Price or availability mismatch. The feed says one price, the store says another. The platform throttles or disapproves, and you lose the placement you paid to win.
- Spending behind a winner that already turned. A product whose margin or return rate quietly went bad, still getting full budget because the dashboard only shows revenue, not what it cost you.
Every day you do not cross your live ad spend against your real stock and feed status, you are betting that none of your advertised products went unbuyable overnight. On a catalog of any size, that is a bet you lose a little every week. The only question is how many weeks pass before you notice.
Why no single tool saves you here
Your ad platform optimizes for clicks and conversions inside its own walls. It does not read your inventory. Your product feed tool knows a SKU is disapproved but has no idea you are paying to advertise it. Your store knows the stock count but is not watching the ad account. Each is doing its job. The waste lives in the space between them, which is exactly the space no tool owns.
And this is not a Google Merchant Center quirk. Whether your feed is Merchant Center or a Meta catalog, and whether you buy through Google Ads, Microsoft Ads, or Meta Ads, the mismatch is the same shape: availability lives in one system, spend lives in another, and nothing reads them together every morning. Reading by category instead of by vendor is the only way to catch it no matter your particular stack.
Meta: alt="A morning brief row flagging advertised SKUs that are out of stock or disapproved, with the recommended pause action" · 1600x1000 · PNG · loading="lazy"
Content: A single brief row in the calm-light style: "3 advertised SKUs are unbuyable today" with the SKU names, the daily spend each is burning, the feed/stock reason, and a recommended "pause" action ready to approve. This is the cross-system catch a single tool cannot produce. Warm-white card, one coral accent on the spend-at-risk figure.
Catch it before the month closes
You do not need a new dashboard for this. You need one read each morning that already crossed your live campaigns with your current stock and feed status and put the answer in front of you: here are the products you are paying to advertise that nobody can actually buy, here is what they are costing you today, here is the pause. You approve it. Done before your coffee.
That cross-the-seam read is the thing I am building, and it reads by category so it works on whatever feed and ad tools you run. But you do not have to wait for it to do the manual version this afternoon. Export your active advertised SKUs. Cross them against your current stock and your feed approval status. Anything advertised but unbuyable is money you can stop burning today. I would be surprised if there is nothing on the list. There almost never is.