Paid Advertising

Wasted Ad Spend in Google Ads: A One-Hour Audit

Most wasted Google Ads budget is not exotic. It sits in seven places you can check before lunch, plus one nobody looks at: your own conversion tracking.

Paid AdvertisingBurhan Tahir, Founder & CEO at DevfinixBy Burhan TahirPublished 12 min read
A leaking pipe patched with plastic sheeting and still dripping

Most wasted ad spend in Google Ads is not exotic. It sits in a handful of places that stay wrong because nobody has opened them since launch: search terms nobody reviewed, negative lists that were never applied, a Performance Max campaign quietly absorbing the budget, and settings that were defaults on day one and are still defaults now. You can check all of it in under an hour.

Then there is the leak nobody writes about, and it is usually the biggest. Conversion tracking that is wrong makes good campaigns look bad and bad ones look good, and every optimisation you make on top of it moves budget in the wrong direction. That section is at the end, and it is the one to read if you only read one.

Before you start: set the view up once

Set the date range to the last 90 days, or the last 30 if the account spends heavily. Anything shorter is noise.

A water meter in a wall, measurement you only trust once you check it

Then fix the columns. You want Cost, Clicks, Conversions, Cost per conversion and Conversion rate visible in every table you open, and you want to sort by Cost descending everywhere. Most leaks are visible the moment you sort by what you spent rather than by what performed.

Keep a note open. Write down what you find rather than fixing as you go. Changing ten things at once makes the result unreadable, which is its own kind of waste.

1. The search terms report against your keywords

Ten minutes here usually finds more money than the rest of the audit combined.

The search terms report shows the actual queries that triggered your ads, which are not the same thing as your keywords. Sort by cost, filter to zero conversions, and read the list properly.

A cost curve on screen, the report where the largest leak usually shows up

Look for four patterns:

  • Job seekers. "jobs", "salary", "careers", "internship" next to your service terms.
  • DIY and free intent. "how to", "free", "template", "tutorial", "download".
  • Wrong product entirely. The query shares a word with your offer and nothing else.
  • Competitor names you did not intend to bid on, and cheap-alternative phrasing pointed at competitors rather than at you.

Anything expensive in those groups goes on a negative list. While you are there, note the queries that converted and are not in your account as keywords, because those are the cheap wins nobody harvests.

2. Match type drift

Broad match is the default, and it changed years ago from "roughly these words" to a meaning-based match that can serve queries not containing your keyword at all. Google documents the behaviour in keyword matching options.

Two things to check.

First, how much of your spend sits on broad match keywords, and how those keywords perform against phrase and exact equivalents. Broad match with a thin negative list and an unconstrained budget is the single most common way an account bleeds.

Second, whether the same keyword exists across several match types in several ad groups. When it does, your reporting is split across duplicates and you are effectively bidding against your own structure.

Broad match is not automatically wrong. It is wrong when it runs without tight negatives, without a conversion signal worth optimising towards, and without anyone reading the search terms report weekly.

3. Negative keyword lists that were never applied

Open the shared library and look at your negative keyword lists. The failure here is almost never that the list does not exist. It is that the list exists and is applied to two of your five campaigns, or that it was applied and then a new campaign launched without it.

Check three things:

  1. Every list is applied to every campaign that should have it, including campaigns created after the list was built.
  2. Negatives are not blocking terms you now want. Adding "free" as a broad negative also blocks "free consultation", which some accounts very much want.
  3. Negatives sit at the right level. Account-level negatives for things you never want, shared lists for themes, ad-group negatives only for sculpting between your own ad groups.

Then write down the review cadence. A negative list built once and never revisited stops protecting you within a couple of months, because broad match keeps finding new queries.

4. Performance Max absorbing budget with no visibility

Performance Max reaches Search, YouTube, Display, Discover, Gmail and Maps from one campaign. The trade is control and reporting detail for reach.

Three checks worth making:

  • Share of spend. What percentage of account budget sits in Performance Max, and did anyone decide that number, or did the campaign simply grow into it?
  • Brand overlap. If Performance Max is picking up your brand queries, its reported cost per conversion will look excellent because it is harvesting demand that would have converted anyway. Brand exclusions exist for this reason.
  • Asset group and placement reporting. Look at what the campaign will show you rather than assuming it shows nothing, and note what you genuinely cannot see. That gap is the reason to keep a separate Search campaign for the terms you care about most, rather than letting one automated campaign own everything.

Performance Max is not the villain some audits make it. A Performance Max campaign nobody has examined since launch, running alongside brand terms with no exclusions, usually is.

5. Locations, networks and the settings nobody revisits

These take five minutes and are pure default drift.

Location targeting

Google's location targeting can match on where someone actually is, on places they have shown interest in, or both, and the advanced default uses both. For a service that only serves specific markets, the interest-based half of that can buy a lot of irrelevant clicks. Check the setting, then check the location report for regions you cannot serve and exclude them.

Search Partners and display expansion

Segment your Search campaigns by network. Google's own network overview explains what sits behind each label. If the partner network or any display expansion shows real cost and no conversions over a meaningful window, switch it off as a single isolated change and watch what happens to volume. Sometimes it performs fine, and the honest answer is to leave it on.

Devices and ad schedule

Open the device report. A mobile conversion rate far below desktop is often a landing page problem rather than an audience problem, so look at the page on a phone before adjusting bids. Slow, unresponsive pages surface here first, which is the conversion case for Core Web Vitals rather than the ranking one, and fixing it is web design and development work rather than account work. Then open the hour and day report. Accounts that only answer the phone during business hours frequently spend a meaningful share of budget on clicks at times when nobody picks up.

6. Brand and non-brand blended together

If brand terms sit in the same campaign as non-brand, your reporting is telling you a story that is not true. Brand searches convert well because those people already decided. Blend them in and the campaign's average looks healthy while the non-brand half quietly underperforms.

Separate them into different campaigns with different budgets. Then judge non-brand on its own numbers, which is the only way to know whether paid acquisition is actually working or whether you are paying to be shown to people who typed your name.

Brand bidding is often still worth it, particularly when competitors appear above you on your own name. Just decide that on purpose rather than by accident.

7. Duplicate and overlapping ad groups

Look for the same keyword theme living in several ad groups or campaigns. Overlap splits data, so no single ad group accumulates enough conversions for bidding to learn, and your best performer never gets a clean read.

Consolidate towards fewer, better-fed ad groups. Fewer campaigns with enough conversion volume to be optimised beat a sprawl of tidy-looking ones that never exit the learning phase.

The leak nobody writes about: your conversion tracking is lying

Every audit checklist treats wasted spend as a keyword problem. In practice, the most expensive faults are on the website, because Smart Bidding optimises towards the conversions it is told about. Feed it wrong data and it will confidently shift budget towards whatever produces the phantom conversions.

Here is what to check, in the order that finds problems fastest.

The event that fires on page load instead of on success

A form event bound to a button click, or to the page load of a form page, records a conversion for people who never submitted anything. The campaign that attracts the most curious clickers then wins the budget.

The event must fire on the success path only, after the server confirms the submission:

async function onSubmit(values) {
  const res = await fetch("/api/contact", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify(values),
  })

  if (!res.ok) {
    // A failed submit is not a lead. Track it separately so you can see it.
    trackFormError(res.status >= 500 ? "server" : "validation")
    return
  }

  trackLead(values.service, "contact_page")
}

That is the pattern this site uses. The contact form is instrumented as a funnel rather than a single event: form_start on first interaction, select_item when a service is chosen, form_submit on the attempt, generate_lead only on a confirmed success, and form_error when something blocked the submission. The error event is the one most accounts are missing, and it is the difference between "this campaign converts badly" and "this campaign's visitors keep failing validation on a field nobody tested on a phone".

AJAX forms with thank-you-page-only tracking

Plenty of conversion tracking still depends on a visitor landing on /thank-you. Modern forms submit in place and never navigate anywhere, so the conversion never records. The campaign then looks dead while the leads pile up in an inbox. Platform migrations break this constantly, which is why confirming tracking on the new checkout is a launch-day step in the WooCommerce to Shopify migration checklist rather than a follow-up.

Symptom to look for: the account reports far fewer conversions than your CRM or inbox contains. Any gap in that direction is a tracking fault until proven otherwise.

Double counting

The mirror image, and just as damaging. One lead gets recorded two or three times because the Google Ads tag fires natively, the same event is imported from Google Analytics, and a tag manager container fires its own copy on top.

Two rules keep this clean. Use either the native Ads tag or the Google Analytics import for a given action, never both. And set the conversion counting option to "one" for lead forms rather than "every", since one enquiry from one click is one lead no matter how many times the person hits submit.

Inflated conversions are worse than missing ones. Missing conversions make you cautious. Inflated ones make you scale spend into something that is not working.

GA4 import and native tag measuring different things

Even when only one source is active, the two systems do not define a conversion identically. Attribution models differ, conversion windows differ, and a Google Analytics key event is scoped to a session in a way an Ads conversion is not. Numbers that do not match exactly are normal. Numbers that diverge wildly mean something is misconfigured, and the usual culprits are a mismatched window, a key event marked on the wrong event, or auto-tagging turned off so the click never joins up with the session.

If your site shows a consent banner, what happens when someone declines determines what gets measured. Google's consent mode documentation describes how tags behave under each consent state, including that advertising cookies are not set when ad_storage is denied.

Two failure modes are common. A banner blocks tags entirely, so conversions from a whole segment of traffic simply vanish, and campaigns serving privacy-conscious audiences look worse than they are. Or consent signals are implemented incorrectly, so the reported data is incomplete in ways nobody can explain. Either way the bidding algorithm works from a partial picture.

How to verify all of this in ten minutes

  1. Submit your own form as a real visitor would, with the browser network tab open, and watch which requests fire and when.
  2. Check GA4 DebugView and confirm the lead event arrives once, on success, with the parameters you expect.
  3. Use Google Tag Assistant to confirm the Ads conversion fires once, not twice.
  4. Count last month's real enquiries in your CRM or inbox, then compare with the conversions Google Ads reports. Explain the gap in both directions.
  5. Submit a deliberately invalid form and confirm no conversion is recorded.

Step four is the one people skip, and it is the one that settles the argument.

What to fix first

Work in this order, because it puts the highest-leverage change first and stops you optimising on top of bad data:

  1. Fix conversion tracking and verify it end to end.
  2. Add the negative keywords the search terms report just handed you, to shared lists.
  3. Correct the settings that were never reviewed: locations, networks, schedule.
  4. Separate brand from non-brand.
  5. Consolidate duplicate ad groups.
  6. Only then change bids, budgets or bidding strategies.

Give each change a week where you can, and write down the date you made it. An account where nobody can say what changed and when is an account nobody can optimise.

The rule

Wasted ad spend is not usually one dramatic mistake. It is defaults nobody revisited, plus a measurement layer nobody tested, compounding quietly for months.

Check the tracking before you touch a bid. If your conversion data is wrong, every other improvement in this list is pointing in a random direction. When you are choosing where to put the next increment of budget rather than fixing an existing account, Google Ads management and Meta advertising answer different questions, and the difference is covered in Google Ads vs Facebook Ads for lead generation. Longer term, the cheapest click is the one you do not pay for, which is the case for organic search running alongside paid rather than instead of it.

Frequently asked questions

How do I find wasted spend in my Google Ads account?
Start with the search terms report over the last 90 days, sorted by cost with zero conversions. That single view usually exposes the largest leak. Then check match types, applied negative keyword lists, Performance Max spend share, location and network settings, and whether brand and non-brand sit in the same campaign.
Why do I get clicks on Google Ads but no conversions?
There are two families of cause. Either the traffic is wrong, meaning broad match or Search Partners is buying queries unrelated to your offer, or the conversion is never recorded because tracking is broken. Check the tracking first. It is faster to verify, and a broken tag makes a working campaign look like a failing one.
How often should I check the search terms report?
Weekly on an account spending seriously, fortnightly on a smaller one. Broad match and Performance Max keep finding new queries, so a negative keyword list built once and never revisited stops protecting you within a month or two. Add negatives to shared lists rather than to single campaigns so the work carries across the account.
Can broken conversion tracking cause wasted ad spend?
Yes, and it is the leak most audits miss. Smart Bidding optimises towards the conversions it is told about. If a form fires an event on page load rather than on success, or the same lead is counted twice by both the Ads tag and a Google Analytics import, the bidding learns from fiction and shifts budget towards whatever produces the phantom conversions.
Should I turn off Search Partners and Display expansion?
Segment your reporting by network before deciding. If the partner network and any display placements show cost with no conversions over a meaningful period, turning them off is a defensible change. Do it as a single isolated change and watch volume, because on some accounts the partner network performs acceptably and switching it off simply reduces reach.
Share

About the author

Burhan Tahir, Founder & CEO at Devfinix

Burhan Tahir

Founder & CEO

Founder of Devfinix. Writes about where marketing budget actually goes and how to tell growth from noise.

Work with us

Want this done properly?

We build and market the things we write about. Tell us what you're working on and we'll give you a straight answer on how we'd approach it.

Start a Project

Newsletter

One useful email a month

What we learned shipping client work — the fixes that moved numbers and the ones that didn't. No pitches, and we stop the moment you ask.

By subscribing you agree to receive occasional emails from Devfinix. Reply to any email and we will remove you.

Rule the Web!

Request a Web Design and Marketing Proposal.