I fix the tracking that quietly
burns Google Ads budget.

Your conversion tracking put back on solid ground.

Where the money leaks
Conversion triggers• Consent Mode v2• Offline conversions• Duplicate counting• Geo targeting defaults• Budget pacing
Real accounts, real numbers
Three repairs, pulled from the API.

Every figure below comes from a query against the live account. Where something is not established, it says so.

Case 01 · Offline revenue
The account was blind to the money it was actually making.

An auto-glass workshop: ads generate calls, calls become quotes, quotes become paid jobs days later. None of that revenue existed in Google Ads. The offline import that was supposed to carry it had been silently rejected on every run, because it was pushing the wrong conversion type against a call-based action. No error surfaced anywhere.

Before
$0
Real revenue visible in the account. Zero rows returned for that conversion action across 17 months.
After
$7,450
Paid jobs back-dated into the account across June, July and August 2026, tied to the clicks that produced them.

What was honest to say and what wasn't: the bidding on this account still runs on a flat assigned value per call, while the real revenue stays outside the account. Assigned value is not revenue, and I don't present it as one. A further $2,400 was pushed and is not yet confirmed in reporting, so it isn't counted above.

Case 02 · A form that fired nothing
Same budget. One conversion became nineteen.

An events company was receiving real enquiries by email and recording almost none of them in Google Ads. The form submitted over AJAX with no thank-you page to land on, and the container that was supposed to hold the conversion tag had been emptied. Nothing errored. The account simply looked like it did not work, and bidding was optimising against that.

May · before
AU$624
Cost per conversion. AU$624 spent, 1 conversion recorded, while 18 real enquiries arrived by email.
June · after
AU$34.84
Cost per conversion. AU$662 spent, 19 conversions recorded. July held: 16 conversions at AU$45.

The point for an agency: spend moved by 6% and measured performance moved by 94%. Nothing was optimised. The account was simply told the truth about what was happening on the site. The fix was deployed on 1 June, listening for the form's own success event.

Case 03 · A Performance Max launched on defaults
Five days, 10,443 clicks, none of them in the market.

A Melbourne services account launched a new Performance Max campaign with no positive location targeting set. Google's default took over and served it worldwide. It ran for five days across more than 150 countries before anyone looked, and it was producing "conversions" the whole time, which is exactly why nobody noticed.

5 June to 9 June
98.7%
Of that campaign's budget spent outside the target market. 10,443 clicks from India, Pakistan, Egypt, Algeria and Bangladesh. 25.7% of the entire account's spend for those days.
Since 10 June
0.00%
Out-of-market spend, held across two full calendar months. 91 suburbs targeted positively, 30 countries excluded outright.

Why this one matters to an agency: nobody made a mistake in the interface. A campaign was created and a default was inherited. That is the failure mode worth automating a check against, and it is the same check that runs every morning across an entire MCC in the monitoring build.

Fixed scope, quoted per project
Three things I do, and nothing else.

No retainer, no discovery call, no proposal deck. A number and a date.

48 hours
Fix Tracking Express
Quoted
  • Full path traced: click, gclid, GTM, GA4, Ads import
  • Trigger re-wired to the real success event
  • Deduplication and unique counting
  • Live tests, hit captures before and after
  • One page stating what was broken
72 hours
Consent Mode v2 audit & upgrade
Quoted
  • CMP and all four consent signals checked
  • Advanced versus basic mode, modelling restored
  • Load order and pre-choice defaults corrected
  • Tested at three states: refuse, accept, no interaction
  • One-page compliance record you can forward
5 days
Python MCC monitoring
Quoted
  • Every account swept each morning via the Ads API
  • Budget overruns, zero-conversion accounts, CPA drift
  • Campaigns limited by budget, strategies back in learning
  • One Slack or email message, readable in ten seconds
  • Installed on your infrastructure, code handed over

Each one continues as monthly monitoring if you want it. The fix holds as long as nobody touches the site, and someone always touches the site. That is the whole argument, and it is offered at delivery, never before.

Start with the audit.

Send read-only access to one account. Six hours of work on it, and you get what I find in writing within 48 hours. No call to schedule, and if it is clean I say that too.

Send an account

Broken conversions, Consent Mode v2, offline revenue that never reaches the account, and Python monitoring across a whole MCC. Fixed fees, 48 to 72 hours, under your brand. Your clients never see me.