inparlor.
Pillar guide#meta-ads#hvac#lead-generation

The complete guide to Meta Ads for HVAC companies in 2026

How HVAC operators run Meta Ads in 2026: measurement, creative, audiences, seasonal modeling, and the decisions that separate $5M from $30M shops.

13 min read·March 1, 2026·Updated May 15, 2026

Inparlor

Digital agency

Most HVAC operators have been running Meta Ads for the past three to five years with mixed results. Some have built six- and seven-figure monthly revenue lines from the channel. Others have spent six figures over the same period and would struggle to tell you what they got for it. The difference is almost never about creative talent or budget size. It is about a handful of operating decisions that compound, and a few measurement assumptions that quietly mislead the entire program.

This is the longest piece we have written on the channel because the channel itself has gotten quietly harder over the last 18 months. iOS attribution decay forced server-side measurement from "nice to have" to table stakes. LSA caps tightened. Creative fatigue cycles compressed from 8-10 weeks to 5-6. The CPL ranges we used to quote in 2023 are 20-30% higher in 2026 across most US metros. The playbook that won in 2022 will lose money today if you run it unchanged.

What follows is the playbook we run for HVAC operators between $2M and $40M in annual revenue. It is not an introduction to Meta Ads, there are plenty of those. It is the working manual we hand new operators on day one of an engagement.

The state of HVAC Meta Ads in 2026

The category has matured. Three years ago, an HVAC shop running Meta Ads with even moderate competence was unusual. Today the median multi-truck operator in any US metro has been on the platform for at least 18 months, has been through at least one agency, and has a measurement layer that is at minimum 30% inaccurate without anyone realizing.

That last point matters because most operators are not really comparing strategies, they are comparing measurement systems. Two agencies running identical campaigns will report wildly different results depending on which conversions they fire, where they fire them, and how they reconcile them against the operator's actual job database. The first job in every new engagement we take on is to find out which version of the truth we are looking at.

  • $90-$280

    Cost per lead, US 2026

  • 30-45%

    Lead-to-job close rate (median)

  • $4,500-$15K

    Average install ticket

  • 55-72%

    12-month customer retention

The numbers in the table above are real medians across the accounts we have audited in the last 12 months. The CPL range alone is wide enough that "we're running Meta Ads and CPL is $200" tells you almost nothing about whether the program is healthy.

Why most HVAC Meta accounts plateau

Three patterns explain almost every plateau we have seen:

  1. Measurement was wrong from month one. The Pixel was firing on form starts instead of booked jobs. CAPI was never installed or pointed at a stale endpoint. The agency reported conversions the operations system never saw. By the time anyone noticed, optimization had been running against fake data for 9-18 months.
  2. Campaign sprawl absorbed the budget. Most accounts we inherit have 25-50 active campaigns. Three to five are doing the work. The rest are burning $200-$800 per day each on audiences and offers nobody can defend.
  3. Creative fatigue went unaddressed. Top-spending ads are 12-18 months old, running against a saturated audience at frequency 8+, with CPMs creeping up while CTR slides down. The creative team is "in the queue" to refresh them. The queue is permanent.

We will go deep on all three. The order matters: measurement first, consolidation second, creative third. Reversing the order produces results that look good and aren't.

How HVAC differs from other home services

HVAC operators sometimes get advice from agencies that have run plumbing or roofing accounts and assume the playbooks port over. They do not, and the differences are not academic.

Demand seasonality is brutal and concentrated

HVAC peaks twice a year, late June through August (cooling) and mid-December through February (heating). In Sun Belt metros like Phoenix and Houston, cooling season can drive 60% of annual revenue in those eight to ten weeks. In northern metros, heating season is the bigger spike. In transition months (March-May, September-November), demand can drop 50-70% from peak.

This forces a specific operating discipline on Meta Ads: the budget plan has to flex with demand, not run linearly across the calendar. The shops that flatten their budget burn money in shoulder months and run out of headroom in peak.

The replacement vs. service split is everything

There are two HVAC products from a marketing perspective: replacement installs ($7,500-$22,000) and service calls ($200-$1,500). They convert through different funnels, attract different buyer profiles, and live on completely different timelines.

Replacement buyers are usually in a forced-purchase moment (their system died in a heatwave) or a planned-purchase moment (they've decided this is the year). Service-call buyers are dealing with something that needs to be fixed now. The same ad creative will not convert both, the same landing page will not, and the same lead-routing logic will absolutely fail one or the other.

We run them as two distinct campaigns from day one. Most agencies don't, which is why we are usually fixing exactly this in month one.

Local context matters more than category context

A landscaping ad in Phoenix and Boston can use the same creative with a city swap and convert. HVAC cannot. The pain points are different, the seasonality is different, the licensing rules are different, the typical install scope is different. We tune creative by region, not by ZIP, but by climate band.

Measurement: server-side CAPI is table stakes

Before we make a single campaign change in a new account, we rebuild measurement. Without exception.

The minimum measurement stack we install in week one:

  • Meta CAPI routed through Stape or a server-side GTM, deduplicated against the Pixel
  • Google Ads Enhanced Conversions for accounts that also run Google
  • ServiceTitan or FieldEdge integration that fires "booked job" as a conversion event when an actual job is scheduled, not when a form is submitted
  • Offline-conversion uploads that backfill won jobs with the original Meta click ID
  • Looker Studio dashboard that pulls platform data, GA4 data, and CRM data into a single source of truth

The thing that fixes is the gap between "Meta says we got 140 leads this month" and "ServiceTitan shows we booked 87 jobs from those leads." Most accounts we inherit have this gap running at 20-40%. Some are worse.

Why this is the highest-ROI two weeks in the engagement

Once measurement is honest, three things happen:

  1. The campaigns that looked profitable but were lying get killed.
  2. The campaigns that looked unprofitable but were under-reporting get scaled.
  3. Every subsequent decision is grounded in something the operations team agrees is real.

We have not seen an engagement where this hasn't moved cost per booked job by 20-40% in the first 60 days, before any creative or audience changes.

The measurement rebuild was the boring two weeks that paid for every quarter since. We can finally make the next call without flying blind.

, Owner, multi-state HVAC operator after 90 days

Audience strategy: who actually books a service call

The default Meta Ads playbook for HVAC is broad targeting in a geo-radius. It works because Meta's algorithm has gotten good enough at finding the right buyer inside a wide audience. But "good enough" is not "optimal," and there is real efficiency on the table in three audience patterns.

Tier 1: Replacement-intent retargeting

Anyone who visited a replacement page on your site or interacted with a replacement ad in the last 60 days. This is your highest-converting audience by a wide margin. The trick is keeping it fresh, the typical brand pool refreshes too slowly to stay below frequency 3-4.

Tier 2: Home-equity proxy audiences

Meta's "homeowner" interest is too broad to be useful, but you can build a Custom Audience based on home value (>$400K typically) and time-since-purchase (3-15 years, the band where systems start to fail). This audience converts 1.5-2x the broad pool.

Tier 3: Life-event triggers

"Recently moved" and "new mortgage" both correlate with HVAC purchases at higher rates than the broad pool. We never bank a program on them, but they make a useful 10-15% slice of the budget.

What not to do

Lookalike audiences off your customer list. They sound smart and consistently underperform in HVAC compared to broad + interest layering. The reason is that your customer list is biased toward whatever channel drove them, modeling on it amplifies the same bias. We have stopped using LALs for HVAC entirely.

Creative angles that book service calls

We covered specific creative patterns in the HVAC Meta Ads creative guide, but the meta-pattern is worth surfacing here: HVAC creative converts when it ladders to a problem the viewer is actively having, not a feature the brand is proud of.

The brands stuck on creative that talks about their truck fleet or their five-star rating are losing share to the brands shipping creative that talks about an AC blowing warm air in July or a furnace clicking but not igniting on the coldest week of January. The first set of creative is brand-led. The second is problem-led. The math favors problem-led by a wide margin.

The five creative angles we run by default

  1. Seasonal-pain hooks, "Your AC is working harder than it should this week" timed to heatwave days
  2. Cost-of-delay, "Why a $400 tune-up is the cheapest move you'll make this month"
  3. Service-area trust, local truck, local family, local license number, counter to private-equity-backed national consolidators
  4. Maintenance-plan economics, "$22/month covers 80% of what kills a system"
  5. Replacement decision, "How to tell whether to repair or replace a 14-year-old system"

Each of these is a creative pattern, not a single ad. We typically ship 2-3 variants per pattern per month.

The seasonal demand model

The single biggest mistake we see in HVAC Meta accounts is running a flat monthly budget. Demand is not flat, and your competitors' bids are not flat, running a flat budget means under-spending in peak and over-spending in shoulders.

The model we run is roughly:

  • Peak months (Jun-Aug or Dec-Feb depending on climate band): 130-150% of average budget
  • Shoulder months: 60-80% of average budget
  • True off-season: 40-60%, focused on maintenance plan acquisition and brand awareness

We pre-commit the operator to this curve before the season starts. Without that commitment, what happens in practice is the budget stays flat in June because the bookkeeper hasn't approved the increase, then peak passes, then we are scaling spend into July as competitor bid intensity declines.

LSA + Meta + Google Search: the bid stack

Meta Ads alone is rarely the right answer for HVAC. Google Local Services Ads catches the highest-intent inbound (someone Googled "HVAC repair near me" and is ready to book). Google Search captures the planning shoppers. Meta does the demand-creation and re-engagement work. Each channel has a job; running one without the others is leaving margin on the table.

The bid stack we run for a $20K/month media program in a single metro is approximately:

  • LSA: $4-6K, capped by Google verification + service area, but cheapest CPL
  • Google Search: $7-9K, branded + non-branded, with separate ad groups by service type
  • Meta: $7-9K, replacement + service split campaigns, retargeting, brand defense

Below $10K total monthly spend, we usually recommend starting with LSA + Google Search only. The Meta layer earns its budget when the operator is already getting high-intent volume from the other two and needs to expand the funnel.

Maintenance plan as the LTV lever

If there is one operating insight that distinguishes the HVAC operators who scale from the ones who plateau, it is this: the maintenance plan is not a footnote, it is the entire business model.

A maintenance plan member at $22-$35/month is worth roughly 4-6× a one-off replacement customer over 24 months, they renew, they generate predictable service revenue, they upsell into replacements when their system ages out, and they refer family.

But most Meta Ads programs we audit treat the maintenance plan as a secondary offer. The replacement is what gets pitched in creative; the maintenance plan is what the front desk mentions if there's time. That ordering is backward.

How we structure the maintenance-plan campaign

  • A standalone campaign budget of 25-35% of total Meta spend
  • Creative that leads with the math (annual cost vs. average covered repair) rather than the feature list
  • A landing page that explains the plan in 60 seconds, with a same-week signup option
  • Lead-routing that gives maintenance-plan inquiries to a dedicated phone queue separate from emergency calls

Operators we have shipped this with see maintenance-plan member growth of 30-50% in the first 6 months without expanding total spend. That growth compounds.

Common mistakes that compress ROAS

Five mistakes we see in nearly every HVAC Meta audit:

  1. The booking form is on a generic landing page. One page handles every service type. Mobile load time over 4 seconds. Forms that require 8+ fields including service type, address, and preferred date/time. Each of these alone shaves 10-20% off conversion rate.
  2. The retargeting pool never refreshes. 90-day lookback window with the same audience for the entire year means frequency climbs while engagement collapses. We rotate retargeting pools monthly.
  3. CTR is treated as a quality signal. It isn't, by itself. Some of the highest-ROAS ads we run have moderate CTR but exceptional conversion-to-booked-job rate. CTR is a clickbait signal. The metric that matters is cost per booked job.
  4. The ad copy mentions financing without context. "0% APR available!" drives clicks from price shoppers who never qualify. We mention financing only when the offer requires it, and we qualify financing at the form.
  5. Brand search is unprotected. Competitors bid on the operator's brand name and steal high-intent traffic for $0.50-$2/click. Defending brand on Google + Meta search is the cheapest insurance in the program.

The first 90 days: a phased approach

For new HVAC engagements, the 90-day plan is roughly:

The 90-day HVAC Meta engagement

Dimension
What runs
Why now
Week 1-2
Measurement rebuild (CAPI, ServiceTitan, offline conversions)
Every later decision depends on truthful data.
Week 3-4
Campaign consolidation (kill 60-80% of legacy campaigns)
Sprawl is the silent margin killer.
Week 5-6
Creative refresh, ship 4-6 new concepts
Existing creative is usually fatigued by month one.
Week 7-9
Maintenance-plan campaign launch
LTV math improves before peak demand hits.
Week 10-12
Scale + QBR + roadmap quarter two
Account is stable enough to plan the next 90 days.

Anyone promising material lift inside 30 days is either lying or running the campaign at the cost of measurement integrity. We have seen agencies do both, the second is more common and harder to detect.

What to measure (and what to ignore)

The dashboard we hand HVAC clients tracks five numbers, in priority order:

  1. Cost per booked job (not cost per lead), pulled from CRM, not from Meta
  2. Booked-job to closed-job ratio, measures intake quality, not media quality
  3. Maintenance plan attach rate, measures the LTV side of the equation
  4. Cohort revenue at 90 days, measures whether the lead source converts at scale
  5. Spend efficiency by climate band + season, measures bid-stack health

Things we explicitly do not track on the main dashboard:

  • Click-through rate
  • Cost per click
  • Ad relevance score
  • Frequency
  • Reach

Those are diagnostic metrics. They tell you why something is happening when something is wrong. They are not metrics worth optimizing.

Where to go from here

We have linked the three cluster pieces below for the operating details on creative patterns, geo-radius targeting, and the lead-form-vs-landing-page question. If you want to talk about your specific account, send us a 1-page brief with current monthly spend, climate band, and the constraint you are hitting. We respond inside 48 hours with a written audit, no expectation that you hire us to implement it.

In this series:

Related services:

Get the next one

One operating note a month. No drip sequences.

Subscribe for one substantive piece a month plus the occasional working playbook we don't publish elsewhere.

Monthly notes on digital growth. No fluff, unsubscribe any time.

Want to talk?

Get a proposal

Send a 1-page brief; we respond in 48 hours with scope, pricing, and the team that would actually run the engagement.