Most reporting stops at "we got 214 leads". That number is the problem, not the result — it counts wrong numbers, price shoppers, missed calls and people outside the service area exactly the same as a booked job. Here's what we do instead.
Read-only access to the ad accounts, the call tracking, and wherever bookings are recorded. No CRM migration, no new dashboard for your team to log into, no code deployed to the client's site.
Each call, chat and form fill is reviewed and labelled: genuine enquiry, spam or duplicate, price shopper, wrong service, outside the service area, or a missed and never-returned call. Calls are assessed from the recordings, not guessed from duration.
Every classified lead is traced back to campaign, ad group, keyword, location, device and time of day. This is where the pattern usually appears — waste is rarely spread evenly, it clusters in two or three specific places.
Leads are matched against what was actually booked and invoiced. A campaign producing plenty of leads at a good cost-per-lead but almost no booked work is the single most common finding, and it is invisible in the ad platform.
The qualified-job outcome is fed back to Google and Meta as a conversion signal. The bidding algorithms then optimise toward the leads that became real jobs, instead of toward whatever generates the most form fills.
Every report is read by a person before it reaches you or your client. AI does the classification at volume; judgement about what it means, and what to actually do about it, is not automated.
One report per client location, delivered within seven days of access being granted.
The audit is designed to take as little of your team's time as possible. In practice we need:
If there is no call tracking in place at all, say so on the call. It changes what the first audit can measure, and it is worth knowing before you pay rather than after.
The instant preview gives an illustrative breakdown in about ten seconds. No access, no commitment, no call required.