Google Ads conversion tracking for HVAC companies
An HVAC business has two conversions with wildly different economics — a service call worth a couple of hundred dollars and a system installation worth thousands — and almost every account counts them as one. What Google Ads adds on top of that is a mechanical requirement: gclid, gbraid and wbraid have to reach the record that holds the money, because Google Ads can only credit a conversion it can tie back to a click it recognizes. This page covers both halves — what a conversion is in HVAC companies, and what Google Ads specifically needs to accept it.
Free30 minutesNo obligation
Specific to Google Ads × HVAC
Google Ads for HVAC: separate actions for service, install, contract
For an HVAC company on Google Ads, upload completed jobs from dispatch software through offline conversion import, matched on the gclid, gbraid or wbraid stored at enquiry, with service calls, installs and maintenance agreements as separate conversion actions carrying invoice value. Calls from call assets need Google's call reporting, because they never reach the site.
Google search is where both HVAC conversions start, which is exactly why they get blended. 'AC not cooling' and 'new furnace cost' arrive through the same campaigns, and if both land in one Lead action, Smart Bidding finds the repair searches cheaper and drifts toward them. Build three conversion actions: service call completed, install sold, maintenance agreement signed. Make the install the primary goal for value-based bidding and keep the others visible but secondary until there is enough install volume to bid on.
Replacement jobs have a real gap between the click and the money: an in-home estimate, a proposal, sometimes a financing approval or a utility rebate application. That usually lands inside the 90-day import window, but upload the sold-install conversion with the date the proposal was accepted, not the date the dispatch record was created, or the timing Smart Bidding learns from is wrong.
The most common break is the call asset. In July a large share of no-cool enquiries tap the number straight from the results page and never load your site, so no gclid ever reaches dispatch. Those calls are only measurable through Google's forwarding number and call reporting, with a minimum duration long enough to exclude a customer phoning about an existing ticket. Smart Bidding's seasonality adjustments are meant for short events of a few days; don't use one to cover the whole cooling season.
Google Ads · HVAC · what breaks
Why Google Ads under-reports for HVAC companies
- 01
Service calls and installs counted the same
So bidding buys the cheap one.
- 02
Seasonality read as performance
A July spike isn't a better campaign.
- 03
Emergency calls untracked
The highest-intent traffic, invisible.
- 04
Gclid, gbraid and wbraid never reaches the record
Three parameters, not one. gclid is the long-standing identifier; gbraid and wbraid arrive on iOS traffic where privacy constraints prevent the usual one. Capture code that names only gclid loses a growing share, silently, and the loss is invisible until you audit how many records carry an identifier.
Google Ads · HVAC · the fix
What working looks like — Google Ads · HVAC
Job types separated
Service, maintenance, install — three different values.
Revenue-based bidding
On the actual invoice, not a placeholder.
Emergency calls attributed
Where the margin usually is.
Google Ads · HVAC · architecture
How Google Ads and HVAC companies actually connect
- 1
The conversion in HVAC companies
Enquiry, job booked, job completed, invoice value. Job type runs across all four and is the distinction that changes bidding behaviour most.
- 2
Google Ads needs a click to match
A click identifier inside the 90-day window, a conversion action name that matches one configured in the account, a conversion timestamp for when the outcome happened, and a value. Read the match rate after uploading — a file can upload perfectly and match nothing.
- 3
The identifier: gclid, gbraid and wbraid
Three parameters, not one. gclid is the long-standing identifier; gbraid and wbraid arrive on iOS traffic where privacy constraints prevent the usual one. Capture code that names only gclid loses a growing share, silently, and the loss is invisible until you audit how many records carry an identifier.
- 4
Where it gets sent from
your dispatch or field service software's completed job records.
- 5
Deduplication and window
There's no shared event ID mechanism like Meta's. What matters instead is the counting setting on each conversion action — 'one' for lead-type conversions so a repeat submitter doesn't count three times, 'every' for ecommerce where a second purchase is a second sale. This is the single most common misconfiguration we find in Google Ads accounts. Google's offline import window is 90 days from the click. Anything older can't be matched, and rows outside it fail as unmatched without much explanation. Measure your median click-to-outcome time against that before designing anything.
Google Ads · HVAC · events
The conversion map for HVAC companies
Four stages, split by job type. Without the split, the numbers are an average of two unrelated businesses.
| Event | What it means here |
|---|---|
| Enquiry (call or form) | Call tracking plus browser-side. Mobile click-to-call needs its own event. |
| Job booked | Server-side from dispatch software. |
| Job completed | Server-side. The conversion that should carry value. |
| Invoice value | Real revenue per job, not a flat figure. |
| Job type | Service, maintenance contract or install. Three very different economics. |
Google Ads · HVAC · diagnose
Diagnostic order — Google Ads · HVAC
- 01
Count records carrying gclid, gbraid and wbraid
- 02
Click-to-call untracked on mobile
Emergency HVAC traffic is overwhelmingly mobile and overwhelmingly phone. A tel: link with no event is a large blind spot.
- 03
One flat conversion value
A $180 service call and a $9,000 install counted identically.
- 04
Seasonal swings mistaken for campaign quality
A heatwave is not a better ad.
- 05
Read the match rate on the upload, not the success message
A conversion action that stops receiving hits is flagged as inactive 30 days later — by which point a month of budget has already run against a missing signal. Check the last-received date on every action monthly; it takes two minutes and it's the cheapest monitoring available.
Google Ads · HVAC · prove
How it gets proven — Google Ads · HVAC
Source of truth
your dispatch or field service software's completed job records
- Click-to-call events firing on mobile, verified on a real device.
- Number insertion confirmed on every template.
- Job type and invoice value present on uploaded conversions.
- Completed jobs reconciled against dispatch records for a closed month.
- The match rate on the upload, not the success message read directly, not inferred from an upload succeeding.
Google Ads · HVAC · free audit
What we check in the free audit
- Count records carrying gclid, gbraid and wbraid
- Click-to-call untracked on mobile
- One flat conversion value
- Seasonal swings mistaken for campaign quality
- Read the match rate on the upload, not the success message
Checked against
your dispatch or field service software's completed job records
Free30 minutesNo obligation
Google Ads · HVAC · when not to buy
When you don't need this — Google Ads · HVAC
- If Google Ads already reports conversions that reconcile against your dispatch or field service software's completed job records within a few percent, this is working and there is nothing to buy.
- Measure identifier coverage yourself first — pull your last hundred records and count how many carry gclid, gbraid and wbraid.
- If you're running Performance Max exclusively and haven't separated your conversion actions, the import will work and the reporting won't tell you much. Worth sorting the account structure first.
Google Ads · HVAC · what we deliver
What gets built — Google Ads · HVAC
Call tracking with number insertion
Including click-to-call on mobile, which dominates emergency traffic.
Click ID written to the job record
At the enquiry.
Dispatch software as the source of truth
Completed jobs and invoiced value.
Job type and value uploaded per conversion
So the platforms can tell the difference.
Dispatch via Google's offline conversion import
Uploaded against the click identifier, either through the Google Ads API or as a file. The upload is the easy part; what limits it is how many of your records carry an identifier at all. Verify the current column format against Google's own template — it has changed before.
Written guarantee
95%+ tracking accuracy
Measured against your dispatch or field service software's completed job records. Miss it and we keep working at no cost.
From $400 · See packages
FAQ
Google Ads · HVAC questions, answered
Yes, as long as it falls inside the 90-day window and the gclid, gbraid or wbraid was saved on the job record at enquiry. Send the proposal acceptance date as the conversion time.
Only if call reporting is on with a Google forwarding number and a call conversion with a minimum duration. Without it, the highest-intent summer calls never appear.
Yes. Their economics differ by an order of magnitude, and a single blended action guarantees bidding chases the cheaper one.
A dedicated event on the tel: link, plus a tracked number so the call itself carries a source. Most HVAC accounts are missing both.
It doesn't break it, but it does mean month-on-month comparison misleads. Compare against the same period last year and flag weather events.
Three parameters, not one. gclid is the long-standing identifier; gbraid and wbraid arrive on iOS traffic where privacy constraints prevent the usual one. Capture code that names only gclid loses a growing share, silently, and the loss is invisible until you audit how many records carry an identifier.
Uploaded against the click identifier, either through the Google Ads API or as a file. The upload is the easy part; what limits it is how many of your records carry an identifier at all. Verify the current column format against Google's own template — it has changed before.
By reading the match rate on the upload, not the success message and reconciling against your dispatch or field service software's completed job records. An upload that succeeds is not an upload that matched.
More on Google Ads · HVAC
- HVACConversion tracking for HVAC, with service calls and installs counted separately
- Google Ads · Home securityGoogle Ads conversion tracking for home security companies
- Google Ads · Pest controlGoogle Ads conversion tracking for pest control companies
RELATED GUIDES
More for hvac companies: other angles on the same outcome
- HVACConversion tracking for HVAC, with service calls and installs counted separately
- Google Ads · PaintingGoogle Ads conversion tracking for painting contractors
- Google Ads · Windows and doorsGoogle Ads conversion tracking for window and door companies
- Google Ads · Quote → closed jobHow to track quote request to closed job for Google Ads
- Google Ads × Job SystemHow to reconcile Google Ads against your job management system
- HVACGoogle Ads for HVAC companies: the build order
- HVAC companiesLocal Services Ads for HVAC companies: no-cool calls, warranty callers and cost per sold job
- Invoca → Google AdsConnecting Invoca to Google Ads
Free · 30 min
Get Google Ads reporting what HVAC companies actually earn
Free30 minutesNo obligation
