You're spending money on Google Ads, maybe some Facebook ads, and you still have your Google Business Profile listing. Leads are coming in — some calls, some form submissions, a few booking requests through your website. But which one actually paid for itself? If you can't answer that with real numbers, you're flying blind, and you're probably about to renew a budget for a channel that isn't working.
This article covers the basics of call and lead attribution for cleaning companies — no marketing degree required. If you haven't set up your Google Ads account yet, start with our complete guide to Google Ads for cleaning businesses. This piece is about what happens after someone clicks the ad.
Why attribution matters more for cleaning businesses than most
Cleaning companies (US LLCs, sole proprietors, and UK limited companies/sole traders alike) usually run several lead sources at once: Google Ads, organic search, Google Business Profile, Facebook/Instagram, referrals, Yelp or Thumbtack (Checkatrade or Bark in the UK), and repeat customers. Each one produces a mix of phone calls, form fills, and text messages.
Without tracking, all of that gets lumped into "word of mouth" or "the website" in your head — and you end up making budget decisions based on gut feeling instead of data. A $1,500/month Google Ads spend that generates 40 calls sounds great until you realize only 3 of those calls turned into recurring clients.
The three things you actually need to track
- Source — where the lead came from (Google Ads, organic, Facebook, referral, GBP)
- Action — call, form submission, text message, or online booking
- Outcome — did it become a paying job, and what was it worth
Most cleaning business owners only track the first two, if that. The outcome step is where you actually learn something useful — and it's the step most software and ad platforms won't do for you automatically.
Call tracking: the part everyone skips
Phone calls are still the #1 conversion action for local cleaning searches — people want to talk to a human before letting someone into their home. But calls are also the hardest thing to attribute correctly.
Dynamic number insertion (DNI)
Services like CallRail, CallTrackingMetrics, or Google Ads' own call tracking swap out the phone number shown on your website depending on where the visitor came from. Someone who clicked your Google ad sees a different tracking number than someone who found you organically — but both numbers forward to your real business line. The tracking platform logs the call, its duration, and (with call recording) what was actually said.
Cost is typically $30–$150/month depending on call volume and number of tracking numbers, which is worth it once you're spending more than a few hundred dollars a month on ads. In the UK, similar tools (Mediahawk, Infinity) run roughly £30–£100/month.
Static tracking numbers (the free version)
If a full platform is overkill, at minimum use separate phone numbers for different channels — one for Google Business Profile, one for your Google Ads campaigns, one printed on flyers or vehicle wraps. Google Voice numbers (or a second line through your VoIP provider) are free or nearly free and let you at least separate paid traffic from everything else in your call logs.
Form and booking attribution
If your website has a quote request form or online booking widget, make sure every submission captures a hidden "source" field. Most form builders (Gravity Forms, HubSpot forms, Jotform) let you auto-populate a hidden field with the UTM parameters from the URL — so when someone clicks a Google Ads link with ?utm_source=google&utm_medium=cpc, that data gets saved right alongside their name and address.
This matters because your booking software needs to know the source too — not just your ad platform. Google Ads will tell you "12 conversions," but only your booking system knows if those 12 leads actually turned into 12 cleans, 3 cleans, or zero.
UTM parameters, explained without the jargon
UTM tags are just extra bits added to the end of a URL that tell Google Analytics (or any analytics tool) where a click came from. You don't need to memorize the syntax — Google's Campaign URL Builder generates them for you. The three you actually need:
| Parameter | What it tracks | Example |
|---|---|---|
| utm_source | Where the click came from | google, facebook, yelp |
| utm_medium | Type of traffic | cpc, organic, referral |
| utm_campaign | Which specific campaign | spring-deep-clean, move-out-promo |
Tag every link you share outside of Google Ads itself (Google Ads auto-tags its own links) — Facebook posts, email newsletters, Yelp profile links, Nextdoor posts — so they all show up correctly in Google Analytics instead of dumping into "direct traffic."
Connecting attribution to actual revenue
Here's the step that separates businesses that grow their ad spend intelligently from ones that guess: tie the lead source to the job value in your booking or CRM system, not just to a "conversion" count in Google Ads.
- Tag the lead with its source at the point of first contact (call, form, or booking)
- Log whether it converted into a paid job and for how much
- Track whether it became a recurring client (recurring cleans are worth far more over time than one-off jobs)
- Calculate cost per acquired customer, not just cost per lead — divide monthly ad spend by number of new paying customers, not number of calls or clicks
A cleaning business owner running this math often finds that Google Business Profile and referrals produce a better cost per customer than paid ads, even though Google Ads generates more raw leads. That's only visible once you connect the dots all the way to revenue.
A simple attribution setup that doesn't require an agency
- Separate phone number (or DNI tool) for Google Ads traffic
- UTM tags on every non-Google-Ads link you share
- Google Analytics 4 connected to your website with conversion goals set up for form submissions and click-to-call buttons
- A "How did you hear about us?" field on every booking form, as a low-tech backup — customers aren't always precise, but it catches gaps in your digital tracking
- A source column in your booking software or spreadsheet so every job is tagged from day one
None of this needs to be perfect. Even a rough version — separate phone number plus a source field on your booking form — gets you 80% of the insight for a few hours of setup.
What to do with the data once you have it
Review it monthly, not daily. Attribution data on a handful of leads is noisy — one bad week doesn't mean a channel is dead. Look at trends over 60–90 days: which source produces leads that book, which produces leads that ghost, and which produces one-off jobs versus recurring clients. Then shift budget accordingly — pause the channel with high lead volume but low actual bookings, and put more into the one quietly producing steady recurring clients even if it looks smaller on the surface.
Keeping the whole pipeline in one place
Attribution is only half the picture — the other half is what happens after the lead comes in. If bookings, scheduling, invoicing, and reminders live in five different tools, sources and outcomes never line up cleanly. CleanWhale keeps online booking, scheduling, invoicing, and automated reminders in one system, so every lead that turns into a job is easy to trace back to where it came from. Check what's included or see plans & pricing to find a fit for your team size.