Google Ads reports clicks, calls, and form fills — not booked jobs. You track real ROI from Google Ads for home service companies by connecting every dollar of spend to closed revenue through call tracking, CRM lead tagging, and conversion value imports, then comparing cost per booked job against your average job value.
- Track ROI from Google Ads for home services by tying spend to booked jobs, not clicks or form fills.
- Cost per booked job matters more than cost per lead — a cheap lead that never closes costs more.
- Google Ads conversion windows go up to 90 days; short lookback settings undercount home service sales cycles.
- Call tracking plus CRM closed-loop reporting shows which keywords actually produce revenue.
- Roxfire ties ad spend to CRM outcomes for HVAC, roofing, and plumbing clients instead of reporting lead volume alone.
Why this matters
Most home service owners look at Google Ads' own dashboard and stop there — cost per click, cost per conversion, conversion rate. None of those numbers tell you whether the $3,000 you spent this month turned into booked jobs.
A "conversion" in Google Ads can be a form submission, a click-to-call, or someone who abandoned the page after asking a question. It is not revenue. If you're running Google Ads campaigns for HVAC contractors or any other trade, the platform has no idea whether that call turned into a $180 tune-up or a $12,000 install.
In 2026, with Google pushing more automated bidding and AI-driven campaign types, the businesses that win are the ones feeding the platform real outcome data — not the ones staring at a conversions count and hoping it correlates with revenue.
How do you track ROI from Google Ads for home service companies?
ROI tracking for home services comes down to five steps, in order:
- Install call tracking with dynamic number insertion so every Google Ads visitor sees a unique tracking number, and every inbound call is tied back to the exact campaign, ad group, and keyword that generated it.
- Tag every lead in your CRM — booked, no-show, quoted-not-closed, closed-won — so lead volume stops being the only metric you can report on.
- Import conversion values back into Google Ads through offline conversion import, so the platform learns which clicks turned into real jobs, not just which ones filled out a form.
- Calculate cost per booked job, not cost per lead, by dividing total ad spend by the number of leads that actually became paying jobs.
- Feed that closed-loop data into value-based bidding so Google's automated bidding optimizes toward revenue instead of raw conversion count.
A worked example
Say you spend $3,000 on Google Ads in a month and your CRM shows 15 of those leads converted into booked jobs. Your cost per booked job is $200. If your average job value is $900, that spend returned roughly 4.5x before accounting for labor and materials — a number Google Ads itself will never show you, because it doesn't know what happened after the call ended.
| Tracking method | What it measures | Setup effort | Best for | |---|---|---| | Call tracking (dynamic number insertion) | Which keyword/ad drove the call | Low-medium | Phone-heavy trades (HVAC, plumbing, garage doors) | | Form/lead tracking | Which page/ad drove a form fill | Low | Quote requests, estimate forms | | Offline conversion import | Which leads became real revenue | Medium | Businesses with a CRM and defined sales stages | | CRM closed-loop reporting | Full spend-to-revenue attribution | Medium-high | Any home service business scaling past a few thousand a month in spend |
Call tracking: the missing layer for phone-driven leads
Most home service categories — HVAC, plumbing, garage doors, locksmiths — still close a majority of jobs over the phone, not through a form. If you're only tracking form conversions, you're blind to the channel that produces most of your revenue.
Dynamic number insertion swaps the phone number on your site based on traffic source, so a call from a Google Ads visitor shows up differently in your call log than a call from organic search or a Google Business Profile listing. Without it, every call gets lumped into one bucket and you lose the ability to say which campaign paid for itself.
CRM closed-loop tracking: matching spend to booked revenue
Call tracking tells you a lead came from Google Ads. It doesn't tell you whether that lead became a $150 diagnostic fee or a $9,000 system replacement. That gap only closes when your CRM tags outcomes and someone pushes that data back to the ad platform.
This is where most home service businesses stall — not because the tools don't exist, but because nobody owns the handoff between the CRM and the ad account. Roxfire builds that handoff as part of ongoing account management for HVAC, roofing, and plumbing clients, so cost-per-booked-job reporting exists from month one instead of getting bolted on after a year of guessing.
Offline conversion imports: teaching Google Ads what a "good" lead looks like
Offline conversion import lets you upload closed-job data — with a dollar value — back into Google Ads, tied to the original click ID. Once enough of that data flows in, Smart Bidding strategies start optimizing toward the keywords and audiences that produce booked jobs, not just cheap conversions.
Google Ads supports conversion windows up to 90 days, which matters for trades like roofing, solar, or remodeling where a lead can sit in the pipeline for weeks before becoming a signed job. If your conversion window is set to the default and your sales cycle runs longer than that, you're underreporting conversions and starving Smart Bidding of the data it needs.
Why cost per booked job varies
Two businesses spending the same $3,000 a month on Google Ads can land in very different places. The gap usually comes down to a handful of factors:
- Average job value — a plumbing repair and a full HVAC replacement have wildly different revenue per booked job, which changes what "good" ROI even looks like.
- Close rate — a business closing 40% of qualified leads gets more out of the same ad spend than one closing 15%.
- Speed to lead — how fast someone calls back after a form fill or missed call directly affects whether that lead ever becomes a booked job.
- Sales cycle length — short-cycle trades like appliance repair see ROI within days; longer-cycle categories like solar or full re-roofs can take weeks to show up in the data.
- Seasonality — South Florida HVAC demand spikes in summer, storm restoration spikes after named storms, and cost per booked job shifts with it.
- Tracking completeness — if half your leads aren't tagged with an outcome in the CRM, your cost-per-booked-job math is built on incomplete data no matter how good your campaigns are.
Get closed-loop ROI reporting set up
See cost per booked job, not just cost per lead, across your Google Ads spend.
Related questions
What's a good ROI for Google Ads in home services?
There's no single benchmark that applies across trades — a good ROI depends on your average job value, close rate, and margin per job, which is exactly why cost per booked job matters more than any industry-wide ROAS number. A business with a $150 average ticket needs a much lower cost per booked job to hit the same margin as one averaging $8,000 installs.
How do I set up conversion tracking in Google Ads for a home service business?
Set up conversion tracking by connecting call tracking, form tracking, and CRM-based offline conversion imports before you scale spend, not after. Running ads without this stack means you're optimizing toward clicks and calls that may never turn into revenue, which is the single most common reason home service Google Ads accounts plateau. Businesses running Google Ads management for plumbing companies typically layer this in during the first month of account setup.
Should I use Google Ads or Local Services Ads to track ROI?
Google Ads and Local Services Ads both need outcome tracking to show true ROI, but they report differently — Local Services Ads charges per lead and has its own dispute and lead-quality tools, while standard Google Ads relies entirely on the conversion tracking you build. Running both without a CRM tying leads to booked jobs makes it impossible to tell which channel is actually paying for itself.
FAQ
How do you track ROI from Google Ads for home service companies?
Track ROI by connecting ad spend to booked jobs through call tracking, CRM lead tagging, and offline conversion imports, then dividing total spend by the number of booked jobs to get cost per booked job. Comparing that figure against average job value shows true return, not just cost per click or cost per lead.
What is cost per booked job and why does it matter more than cost per lead?
Cost per booked job is total ad spend divided by the number of leads that actually became paying jobs, and it matters more than cost per lead because a cheap lead that never closes still costs money without producing revenue. A $45 lead that books nothing is worse than a $120 lead that closes.
Does Google Ads track revenue automatically?
No, Google Ads only tracks conversions you define, like form fills or calls, and has no visibility into what happens after the call or form submission. Revenue tracking requires connecting your CRM's closed-job data back to the ad account through offline conversion import.
What is offline conversion import in Google Ads?
Offline conversion import is a Google Ads feature that lets you upload closed-job outcomes and dollar values tied to the original click, so the platform can optimize bidding toward leads that actually became revenue. It requires a CRM or spreadsheet workflow that captures the click ID or a matching identifier.
How long should my Google Ads conversion window be for home services?
Set your conversion window to match your actual sales cycle, up to the platform maximum of 90 days, especially for trades like roofing or solar where leads can take weeks to close. A default 30-day window will undercount conversions for any business with a longer sales cycle.
Is call tracking necessary if most of my leads come from forms?
Call tracking is still worth setting up for most home service categories because phone calls often convert at a higher rate than forms, and without it those calls get attributed to the wrong source or no source at all. Even form-heavy businesses usually see a portion of high-intent traffic call directly instead of filling out a form.
Can a marketing agency track ROI for me instead of doing it in-house?
Yes, a performance marketing agency can build and manage the call tracking, CRM tagging, and offline conversion import stack so cost-per-booked-job reporting exists without the business owner managing the technical setup. Roxfire sets this up as part of ongoing Google Ads management for HVAC, roofing, and plumbing clients.
One last thing
Most home service businesses can tell you their cost per lead down to the dollar and have no idea what their cost per booked job is. That single blind spot is why campaigns get judged as "working" or "not working" based on lead volume alone, when the real answer is sitting untouched in the CRM. Pull that data once, even manually for one month, and the ROI conversation changes completely.



