← Blog
· Updated ·

Seven signs an ad account is quietly wasting money

Seven checks I run on every account I inherit, with the real numbers they turned up: 92% of spend on queries with zero requests, 652 fake conversions out of 697, 27 ads out of 27 missing a headline.

The money is almost never leaking where the dashboard says it is. Seven checks find most of it, and the first one usually finds the biggest hole. In a client account we took apart recently (anonymised, numbers real), 92% of the spend was going to search queries that had produced zero requests. That same account scored 79.82 out of 100 on a fixed checklist. A respectable grade. And most of the budget was still going nowhere.

None of the seven needs an expert eye. They need someone to open the reports and actually read them.

Sign one: the conversion count is inflated by goals you never picked

Yandex Direct will happily treat every Metrica goal it can see as a conversion, technical ones included. That is the default behaviour, not a misconfiguration by some junior.

One report I looked at showed 697 conversions for the month. The client was pleased with that. 652 of them were a technical anti-spam goal firing on the form, the kind of thing a developer wires up once and never mentions to anyone. Real requests: 45.

So the cost per request was not the 2 BYN the account was reporting. It was around 8. Four times off. And the campaign that looked like the winner was simply the one triggering the anti-spam goal most often, which meant the automatic optimisation had been steering budget towards it for weeks.

Open the goal list in your campaign settings and count. If there are more goals selected than you can name out loud, your cost per lead is fiction. A report caps at 10 goals anyway, so nobody needs the full list.

Signs two and three: the spend sits where nobody opens the report

Sign two is the search terms report. Sort it by cost, descending, over a 30-day window, and look only at rows with zero conversions. In the account above that column added up to 92% of everything spent. Not exotic queries either. Broad, plausible-looking phrases that a human would have killed in five minutes if a human had ever looked.

Sign three is subtler and I miss it myself when I rush. You think you control the daily budget. Check whether the campaign actually has one. In that account, 2 campaigns out of 52 had an explicit daily budget set. The other 50 were running on a weekly limit inside the bidding strategy. If you cap the daily budget on a campaign that has none, nothing happens, and you go away believing the account is under control.

Signs four to six: small, boring, compounding

  1. Archived campaigns polluting the picture. Pull the campaign list with an empty filter and Direct returns archived campaigns by default: 32 of 52 in this case. Every average you calculate from that pull is wrong. If you or your dashboard read entities through the API, trust the State field over Status, they disagree and State wins.
  2. Ads without a second headline. 27 of 27 active ads in that account had one headline only. That is free space on the results page, already paid for, left blank. It takes an afternoon to fix and it is the closest thing to found money in this list.
  3. Automation rules you assume exist. Direct has no native if-then rules. None. Whatever the market calls "auto-rules" for Direct is a third-party service built on top of the API. In Meta Ads Manager the same feature is native and free, which is where the assumption comes from. So if you believe something switches your campaigns off at 3am when the cost per lead doubles, go find out who exactly is running that rule. Often the answer is nobody.

Sign seven: nothing about last month is comparable

Ask your contractor for last month's audit and watch what happens. Usually you get a fresh opinion written by a different person in a different mood, and there is no way to tell whether the account got better or worse.

An audit is only useful if it runs the same checks in the same order and produces a number you can put next to last month's number. That is why we froze the list: 131 checks in the catalogue across Meta and Google Ads. The score moves up or down, and the movement is the report.

Where to start on Monday

Three reports, in this order. First the goal list in campaign settings: strike out everything that is not a real request and recalculate your cost per lead by hand, because that single number decides whether the rest of the account is a problem at all. Second the search terms report for the last 30 days, sorted by cost, zero-conversion rows only. Third the ad list, filtered to ads with one headline. Half a day of work, and you will know more about the account than the monthly report has told you all year. We automated a fixed checklist like this for Meta and Google Ads, including read access to the numbers straight from Claude or ChatGPT over MCP. Read only: the agent finds the problem, a person makes the change. But the three reports work fine by hand, and doing them once by hand is how you learn what the automation is even looking at.