Track HVAC ad spend through to booked jobs

Before an HVAC owner increases an ad budget, the marketing manager and dispatch lead should be able to follow an inquiry from its source to its final job status. Start by auditing one service, one location and one lead path. Fix missing records before drawing conclusions about which campaign deserves more money.

A homeowner who taps a phone number, a caller who requests furnace repair and a customer who completes an installation represent different outcomes. Combining them into one conversion total can hide where the business is losing opportunities.

Trace HVAC ad spend to completed jobs by auditing one service, location and lead path before moving budget.
An editorial audit process. Equal stages do not show measured conversion rates or drop-off.

Define the outcome before comparing campaigns

Write a shared definition for every stage. Use the same definitions in your ad reports, call tracking and customer relationship management system, or CRM.

  • Inquiry: A unique request for help. Deduplicate a form submission and a follow-up call about the same problem.
  • Qualified inquiry: A request for a service you provide, within your service area. Separate repair, maintenance and replacement interest.
  • Booked job: An appointment confirmed in the dispatch system. Keep requested times separate from confirmed appointments.
  • Completed job: Work marked complete. Track cancellations and reschedules separately, and use collected revenue when reporting cash received.

Dispatch should own booking status. Marketing should own campaign labels and spend. Finance should define revenue and contribution consistently. For replacement campaigns, track estimate appointments and sold installations separately so an estimate request never becomes an installation sale in a report.

Follow one inquiry to completion: Campaign source, Unique inquiry, Qualified inquiry, Confirmed booking, Completed job.

Keep phone clicks separate from actual calls

Google distinguishes phone-number clicks from measured calls. Its mobile website click tracking can record the tap without verifying the call itself. Other call-conversion methods use call duration or imported outcomes. A duration threshold is a measurement rule, not proof that a job was booked. [1]

Label the report accordingly: phone clicks, connected calls, qualified inquiries and confirmed bookings. Review unanswered and after-hours calls with dispatch before blaming an ad for poor results.

Carry the campaign source into the lead record

Google Analytics supports campaign parameters such as source, medium and campaign. Google recommends consistent naming and treats capitalization differences as different values. [2] Give one person ownership of a short naming sheet before more campaign links go live.

  • Use a readable convention: For an illustrative maintenance email, use source = newsletter, medium = email and campaign = fall_maintenance_2026. Keep spelling and capitalization consistent.
  • Check the destination: Follow the tagged link through redirects and onto the actual service page. Submit a test request from a second page, not only the landing page.
  • Verify the handoff: Check the record received by staff. A field visible in a browser is not proof that its value reached the CRM, notification email or dispatch queue.
  • Keep the observations distinct: Where your approved system supports it, store the first observed source and the source observed near inquiry separately. Label both with timestamps and the rules used to populate them.

A first observed source describes what your system captured. It does not prove how a homeowner first heard of the company. Return visits, browser restrictions, consent choices and device changes can leave gaps. Keep unknown sources visible rather than assigning them to a favored channel.

Run a small test before trusting the report

Have the web specialist and dispatch lead test the same path together. Use synthetic customer details in a test environment or a clearly marked test record. Remove test records from performance reporting.

  • New inquiry: Open a tagged campaign link, browse to another page and submit the form. Confirm one successful submission creates one lead with the expected campaign fields.
  • Failed submission: Trigger a validation error. Check that the system does not count a successful lead before the submission succeeds.
  • Return visit: Return through a different channel and check the result against your documented first-source and latest-source rules.
  • Phone path: Tap the number on mobile, verify the correct destination, then check connected-call and booking records separately.
  • Privacy and devices: Test the configured consent choices, mobile Safari, Android and an ordinary desktop browser. A declined choice must not break the inquiry route.

Retest after a form, theme, consent tool or booking integration changes. If tracking breaks a phone link or submission, restore the previous working setup and investigate before expanding it.

Compare channels using the same job cohort

Start with a defined inquiry period and an agreed outcome cutoff. For example, select inquiries created during a completed calendar month, then review their job outcomes after a stated follow-up interval. Replacement estimates may need longer to mature than repair calls. Keep pending estimates visible.

Use the same service category, location, new-versus-existing-customer definition and attribution rule when comparing channels. Record major changes in weather, staffing, available appointments and offers. These can change booking results even when the ads stay the same.

  • Cost per qualified inquiry: Ad spend divided by unique qualified inquiries assigned to that channel under the stated rule.
  • Booking rate: Confirmed bookings divided by those qualified inquiries. Report the numerator and denominator alongside the percentage.
  • Cost per completed job: Ad spend divided by completed jobs from that same inquiry cohort. State the cutoff and exclude cancellations from completed jobs.
  • Source completeness: Inquiries with an observed usable source divided by all unique inquiries. Report the unknown count as well.

What a cheaper lead can hide

Illustrative example only. Assume two campaigns each spend $3,000 in the same month on the same service and market. After the same follow-up window, Campaign A has 100 qualified inquiries and 20 completed jobs. Campaign B has 60 qualified inquiries and 24 completed jobs. All outcomes are deduplicated and assigned under one consistent rule.

Campaign A costs $30 per qualified inquiry ($3,000 ÷ 100) and $150 per completed job ($3,000 ÷ 20). Campaign B costs $50 per qualified inquiry ($3,000 ÷ 60) and $125 per completed job ($3,000 ÷ 24).

B has the lower cost per completed job in this scenario. Before moving money, compare job value, contribution, cancellations, capacity and the reasons inquiries did not book. These invented figures demonstrate the calculation only. They are not an HVAC benchmark, client result or forecast.

Use offline outcomes when the connection is ready

Google Ads supports importing outcomes that happen after an ad interaction, including offline sales. Its current guidance recommends enhanced conversions for leads for new implementations. Availability, matching and implementation requirements depend on the setup. [3]

Have the specialist confirm the current supported connection, approved data fields, duplicate handling and diagnostics. Start with one clearly defined outcome and reconcile imported counts to the CRM before using that signal to guide bidding. Do not add clicks, inquiries, bookings and sales together and call the sum customers.

Protect the customer information behind the numbers

Keep names, email addresses, phone numbers and service addresses out of campaign URLs and ordinary analytics event labels. Google warns that URLs, page titles and user-entered fields can expose personally identifiable information to Analytics. [4] An HVAC inquiry form should not put a homeowner’s contact details into a thank-you-page URL.

An approved advertising conversion integration is a separate data-sharing configuration. Review its specific consent, notice, retention and platform requirements with your privacy owner before sending customer data. Hashing alone is not permission to share it. Call recording needs its own review; it is not required for every measurement audit.

HVAC attribution FAQs

Does a phone-number click count as a booked HVAC job?

No. Keep phone clicks, connected calls, qualified inquiries, confirmed bookings and completed jobs separate. Dispatch confirmation establishes booking status; a tap or call-duration threshold does not.

How should we calculate cost per completed job?

Divide the channel’s ad spend by completed jobs from the same defined inquiry cohort, using a stated attribution rule and outcome cutoff. Exclude cancellations from completed jobs and keep pending estimates visible.

What should happen to leads with an unknown source?

Keep the source unknown and report the gap. Check campaign tags and the handoff to the CRM, but do not assign missing sources to a favored channel or treat the first observed source as proof of first awareness.

Make the next budget meeting more useful

Bring one service-and-location report to a weekly meeting with marketing and dispatch. Resolve the largest verified gap first.

  • Missing sources: Repair tagging or the form-to-CRM handoff, then retest. Keep the historical unknowns labeled.
  • Many qualified inquiries but few bookings: Check appointment capacity, response delays and customer objections with dispatch before changing targeting.
  • Bookings that do not become jobs: Separate cancellations, reschedules, estimate follow-ups and lost sales. Assign an owner to each unresolved category.
  • Reliable outcomes but high acquisition cost: Review the service offer, geography, search intent and landing page. Test a bounded change and measure a comparable cohort.

The first useful deliverable is a reconciled set of records that the people buying ads and booking work both trust. Expand from there. A full dashboard built on inconsistent definitions will make the disagreement more colorful.

KARMA jack’s advertising work includes conversion tracking, campaign testing and ongoing reporting. Those services can support a clearer connection between marketing activity and business outcomes. Start the conversation with one question: can we trace this campaign’s inquiries to confirmed bookings and completed jobs? [5]

Explore KARMA jack advertising services

Sources and evidence notes

Checked November 10, 2026 | America/Detroit research date

The sources below support platform behavior and the stated service scope. The audit sequence, role assignments and reporting recommendations are editorial guidance. No national or local demand forecast, conversion benchmark or promised performance gain is claimed.

[1] Google Ads Help | Phone call conversion tracking

Supports the distinction between phone clicks, measured calls and imported call outcomes. Product documentation, not an HVAC industry study.

[2] Google Analytics Help | Campaign URL parameters

Supports source, medium and campaign tagging, naming consistency and case sensitivity. Does not prove end-to-end CRM persistence.

[3] Google Ads Help | Offline conversion imports

Supports importing later outcomes and the current enhanced-conversions recommendation. Connection and API details can change; verify the specific implementation before rollout. No Google performance percentage was reused.

[4] Google Analytics Help | Avoiding personally identifiable information

Supports the risk of personal data in URLs, titles, campaign fields and ordinary analytics inputs. This article is not legal advice.

[5] KARMA jack | Advertising services

Current public service page supports conversion tracking, testing and reporting. No case-study claims or promised results from the page were reproduced.

Trace HVAC ad spend to completed jobs. Campaign source, Unique inquiry, Qualified inquiry, Confirmed booking, Completed job.
Table of Contents
Emblem Karma Jack Logo White

Let's grow your brand together.

We’re ready to talk about your goals and help you grow.