Tracking · Brand defense · Local pack

Tracking-blind on ~$72k/year of spend. What 60 days of fixes would recover.

HVAC contractor · Peabody, MA · audit run 2026-03

Spending $5-7k/month on Google Ads with zero conversion data. Smart Bidding is optimizing on a coin flip across roughly $72k/year. Lighting up tracking is the difference between an algorithm with signal and an algorithm guessing.

A multi-service HVAC contractor on the North Shore. Active Google Ads spend, real ad impressions across local-pack-style placements. Strong website with promos and service-area pages, GBP claimed. The kind of operation that should be a known quantity in their market. What the account looked like from outside: ads running, calls coming in, leads happening. What the audit found inside: the spend was real but the data telling Google what worked was missing. Smart Bidding optimizing on a coin flip.

What the audit found

P1 tracking

No conversion tracking installed

No Google Ads conversion tag, no GA4, no Tag Manager container, no call tracking vendor on the site. Every paid click is being charged for unmeasured.

How this gets detected →

P2 position

Missing from the local 3-pack on every captured search

Across the captured service searches in their primary town, the contractor's GBP did not appear in a single local-pack render.

How this gets detected →

P2 competition

No brand defense against competitor encroachment

Competitors were observed bidding on the contractor's own business name. No defensive ad runs on their own brand searches.

How this gets detected →

P3 targeting

AI Overview cites competitors on every captured service search

Every search where Google rendered an AI Overview pulled from competitor domains, not from this contractor's site. Visibility issue layered on top of the tracking issue.

How this gets detected →

P3 messaging

Compelling on-site offers, none echoed in ads

A double-digit number of specific promos captured on the site. Zero of those promos appear in any active ad copy.

How this gets detected →

P4 reputation

Sparse GBP review base relative to local competitors

Single-digit review count compared to local competitors averaging 100+. Review velocity is slow enough that paid clicks land on a profile that converts well below local benchmarks.

What I would do, in order

  1. Wire conversion tracking first. Google Ads conversion tag, GA4, GTM, call tracking. Until this is installed, every other recommendation is a guess. Foundation work; usually an afternoon. The capability →
  2. Run a brand-defense campaign. Tiny budget, tight match-type discipline. Defends against competitor brand-bid encroachment and reclaims own-brand search volume that should never have left. The capability →
  3. Sync the on-site promos to ad copy. Twelve unused signals on the site. Cheapest CTR work in the playbook. Each promo becomes an ad-copy variant with built-in differentiation. The capability →
  4. Review-velocity work on the GBP. Slower payoff but compounds. Until the rating moves, the ad account is capped from above on conversion rate.

What good would look like. Tracking lands first. Within 30 days, conversion data starts pricing every campaign and Smart Bidding has real signal to optimize against. The brand-defense and on-site-promo work close inside 60 days. The local-pack and AEO work are longer-arc but visible from day one. The honest version: most of the cost here is on the table because the measurement gap was masking what to fix.

This finding type appears in roughly 60% of HVAC audits I run.

Tracking conflict · Form friction · Call tracking

Tracking installed, tracking lying. The silent killer that makes mature accounts plateau.

HVAC contractor · Peabody, MA · audit run 2026-04

Mature account, real ad spend, tracking visibly installed. Two different conversion accounts firing on the same pages, phone calls invisible, contact form bleeding clicks at the last step. The bidder is making decisions on data that contradicts itself; every dollar after the conflict resolves performs better with no other change.

A residential HVAC contractor with mature ad spend. Tracking IS installed: Google Ads conversion tag, GA4, Tag Manager. Active campaigns, real volume. The kind of account that looks healthy from the outside. The audit found the trap that hides inside this profile. Tracking exists, but it is not what the ad account thinks it is. Two different conversion accounts firing on the same pages. A contact form built like a long-form questionnaire. Phone-call CTAs everywhere with nothing recording the calls.

What the audit found

P1 tracking

Two different Google Ads conversion accounts firing on the same site

Two separate AW IDs loading on every page. Conversions counted in both, neither is the source of truth. Bidder optimizing against blended (and probably double-counted) signal.

How this gets detected →

P1 tracking

Phone calls invisible despite active phone-call CTAs

No call tracking vendor detected on the site. Every paid click that becomes a phone call is unmeasured. CTAs everywhere, signal nowhere.

How this gets detected →

P2 position

Missing from the local 3-pack on every captured search

Multiple service searches captured; none rendered the contractor's GBP in the local pack.

How this gets detected →

P2 competition

Competitors bidding on every captured brand search

Every search for the contractor's own name showed competitor ads. No defense.

How this gets detected →

P2 creative

Contact form has 9 input fields

Service-area lead-capture benchmark is 4 to 5 fields. Friction this heavy on a converting click is leaks happening at the last moment.

How this gets detected →

P3 targeting

AI Overview cites competitors on most captured service searches

Same pattern as the cleanest accounts on the North Shore. Visibility issue layered on top of the tracking issue.

How this gets detected →

What I would do, in order

  1. Resolve the dual conversion-tracking conflict. Pick the canonical account. Retire the second tag. Until done, every bidding decision is running on bad signal. This is the silent killer here. The capability →
  2. Install call tracking immediately. Whichever vendor (CallRail, CallTrackingMetrics, Google forwarding numbers; pick one). Every paid click that becomes a phone call has been invisible. Fix this before anything else creative-side. The capability →
  3. Trim the contact form. 4 to 5 fields max. Name, phone, service, town. Optional message. The other fields can come later in the conversation. The capability →
  4. Brand-defense campaign. Same playbook as the first case study. Tiny budget, tight match-type discipline. The capability →
  5. AEO content discipline. Clean Q&A on the services pages. Structured data marked up to match what's on the page. Local content that's actually local. The capability →

What good would look like. Conversion-data conflict is the silent killer here. Bidding decisions are running on bad signal. Once that resolves, the existing campaigns probably perform better with no other change. The form trim is a one-day win. Call tracking pays back the first week. Everything else is incremental on top of those three.

Roughly 1 in 4 mature HVAC accounts I audit has a tracking-on-paper-but-broken pattern.

Strong site · Weak ad layer · Recoverable in 60 days

Site is doing the work. Ads aren't picking up the slack. The highest-leverage case in this set.

HVAC contractor · Peabody, MA · audit run 2026-04

An operator who's already done the harder work: real services, real promos, real local presence on the site. The ad layer is the bottleneck, not the substrate. Every fix here is connecting layers that already exist independently. Site to ads. On-page content to schema. Service-area claim to campaign coverage.

An established HVAC and plumbing contractor with a real digital footprint. Strong content on the site: a double-digit number of specific service promos captured. A service-area page that names dozens of towns. A real local presence in the trade. The site is doing operator work. The ad layer is not picking up the slack. The audit found a clean visibility gap on top of a missing measurement layer. Different problem flavor from the first two case studies, same audit substrate, different priority order on the fix list.

What the audit found

P1 tracking

No conversion tracking despite running ads

Same gap as the first case study, but more visible here because the prospect already invested in the site substrate.

How this gets detected →

P2 targeting

AI Overview cites competitors on most captured service searches

Strong site content, real services covered, but the substrate is not earning answer-engine citations. The capability page on AEO covers the structural gap.

How this gets detected →

P2 position

Missing from the local 3-pack on every captured service search

A real local presence by every other measure, invisible in the placement that decides most local-services clicks.

How this gets detected →

P2 targeting

Absent from paid slots across every service-area town the site claims

The site says "we serve these towns." The ads were not running in any of them at the captured times.

How this gets detected →

P3 messaging

Twelve on-site promos, none echoed in any active ad

Site is screaming about real, specific offers. Ad copy is generic.

How this gets detected →

P3 competition

No brand defense

Same competitor encroachment pattern as the other case studies.

How this gets detected →

What I would do, in order

  1. Wire tracking. Same first move as the first two case studies. No bidding decision is honest until the data lands. The capability →
  2. Mirror the on-site promos into ad copy. Lowest-cost-highest-yield CTR work in the playbook. Each promo on the site becomes an ad-copy variant with built-in differentiation. The capability →
  3. Schema and on-page Q&A for AEO. This contractor has the substrate to earn AI Overview citations. What's missing is the structural markup and the on-page Q&A pattern that the cited competitors are using. The capability →
  4. Geographic ad coverage matching the site claim. If the site claims a service area of dozens of towns, the ads should be set up so every one is reachable. Locations, bid modifiers, town-level landing pages where it's worth the build. The capability →
  5. Brand-defense campaign. Same as the first two case studies. The capability →

What good would look like. This is the highest-leverage case in this set. The substrate is there. Most of the work is connecting layers that already exist independently. Site to ads. On-page content to schema. Service-area claim to campaign coverage. Each piece of work is small. Together they close a gap that has been costing the contractor leads they have already done the harder work to deserve.

Roughly 1 in 3 HVAC audits I run shows this strong-substrate / weak-ad-layer pattern.

Want this run on your account?

Send the domain. The audit will surface findings specific to your account in the same shape and same priority order as these case studies. Free.

Get the audit on your account
Focus
Specialist paid search
Pricing
$500/month flat
Reply time
Within 48 hours
Direct line