Google Ads conversion tracking setup for contractors

You open your Google Ads dashboard and see 40 conversions last month. You know for a fact you booked maybe 12 jobs from those ads. The other 28 "conversions" are ghosts. Page views that got counted. Five-second phone calls from people who hung up. Somebody clicking your phone number and immediately backing out. Google counted all of it, and now the algorithm is using that garbage data to decide how to spend your money.

If this sounds familiar, you are not bad at Google Ads. Your tracking is bad at Google Ads. And it is costing you a lot more than you think, because every automated bidding decision Google makes is based on what your tracking tells it. Feed it junk data, and it optimizes for junk.

This guide is the full conversion tracking setup for home service contractors. Not e-commerce store owners. Not SaaS companies. Contractors who get most of their leads by phone, book jobs at the kitchen table, and need to know whether their ad spend actually turned into revenue. We will cover what to track, what to delete, how to set up phone call tracking that actually works, how to assign dollar values so Smart Bidding stops treating a $200 drain call the same as a $12,000 HVAC replacement, and a 15-minute audit you can run right now to find exactly what is broken.

If you have already nailed your tracking and want to connect it to your CRM for full revenue attribution, head over to our CRM attribution guide. That is the next step after what we cover here. And if you are still figuring out whether Google Ads is right for your business at all, start with our Google Ads for Contractors hub.


1. Google Says 40 Leads. You Booked 12 Jobs. Sound Familiar?

This is the most common frustration we hear from contractors running Google Ads. The dashboard says one thing. Reality says something completely different. And the gap between those two numbers is not a rounding error. It is a structural problem with how conversions are being tracked.

Here is what actually happens in most contractor Google Ads accounts we audit:

  • Page views counted as conversions. Someone lands on your contact page and Google says "that is a conversion." They never filled out the form. They never called. They just looked at the page. But your conversion count went up by one, and Smart Bidding now thinks that click was a winner.
  • Wrong counting method. Google Ads has two counting options: "one" and "every." For phone calls, "every" means if the same homeowner calls you three times about the same leaky faucet, Google counts three conversions. Your real conversion count is one.
  • Duplicate conversion tags. You have a Google Ads conversion tag on your thank-you page AND you imported the same conversion from GA4. Now every form submission counts twice. Your 20 real form fills show up as 40 "conversions."
  • Zero-second phone calls. The default call duration threshold in Google Ads is 0 seconds. That means if someone accidentally taps your phone number on mobile, immediately hangs up, and never actually talks to you, Google counts it. Congratulations on your new "lead."
  • Button clicks that are not form submissions. Your tracking fires when someone clicks the "Submit" button, not when the form actually submits successfully. If the form has validation errors and the person gives up, you still got a "conversion."
Why this matters more than you think: Inflated conversion numbers do not just make your reports look wrong. They actively make your campaigns worse. Google's Smart Bidding (tCPA, tROAS, Maximize Conversions) uses your conversion data to decide what to bid, who to show ads to, and where to spend money. If half your "conversions" are fake, the algorithm is learning to find more people just like the ones who bounced off your contact page without calling. You are literally paying Google to get better at wasting your money.

The fix is not complicated. But it requires understanding which conversions matter, which ones are noise, and how to configure your account so Smart Bidding only sees real leads. That is what the rest of this guide walks through.


2. The 4 Conversions Every Contractor Needs to Track (And the 6 You Need to Delete)

If you take nothing else from this entire guide, take this: fewer conversion actions, set up correctly, will always outperform a long list of garbage conversions. Most contractor accounts we audit have between 6 and 12 conversion actions. They need 3 or 4.

Track These (Primary)

  • Phone calls (60+ seconds)
  • Form submissions (thank-you page)
  • Online bookings / scheduling
  • Click-to-call on mobile

Delete These (Now)

  • Page views / "contact page visited"
  • Scroll depth
  • Time on site
  • PDF downloads
  • Button clicks (not form submits)
  • Imported GA4 duplicates

The 4 real conversions, explained

Phone calls (60+ seconds). This is the big one. For most contractors, 70-80% of leads come by phone. A real phone conversation where a homeowner describes their problem and you discuss scheduling or pricing is a legitimate conversion. Anything under 60 seconds is almost never a real lead. We will dig deep into phone call tracking in the next section.

Form submissions (tracked on the thank-you page). The conversion tag fires when someone reaches your "Thank you, we will call you back" page. Not when they click the submit button. Not when they start filling out the form. Only when the form successfully submits and the page changes. This is an important distinction because tracking on button click catches failed submissions, validation errors, and people who hit the button by accident.

Online bookings. If you use a scheduling tool like Housecall Pro's online booking, ServiceTitan's customer portal, or a Calendly embed, track completed bookings as a separate conversion. These are the highest-quality leads you will get because the homeowner already committed to a time slot. Count them as primary.

Click-to-call on mobile. This tracks when a mobile user taps your phone number on the website to initiate a call. It is a separate signal from call duration tracking because it captures the intent. You should still have the 60-second call duration filter on your actual phone call conversion, but click-to-call catches cases where the call drops or the homeowner hangs up and calls back from their recent call list (where it would not show as a Google Ads conversion).

The 6 fake conversions, explained

Page views / "contact page visited." The most destructive fake conversion in contractor accounts. Visiting a page is not a lead. If 500 people visit your contact page and 50 actually fill out the form, you do not have 500 conversions. You have 50. But Smart Bidding sees 500, gets wildly excited, and starts spending more money to send people to your contact page whether they convert or not.

Scroll depth. "User scrolled 90% of the page" sounds meaningful. It is not. People scroll on their phones without reading. Bots scroll pages. Scroll depth tells you nothing about whether someone is going to pick up the phone and call you about their broken AC. Delete it.

Time on site. Same problem. A user spending 3 minutes on your site could be reading your reviews and about to call. Or they could have the tab open in the background while they eat lunch. Time on site as a conversion action is noise that makes Smart Bidding dumber.

PDF downloads. Unless you sell digital products (you don't, you are a contractor), nobody downloading your maintenance checklist PDF is a conversion. It might be a useful secondary engagement metric for reporting, but it should never be a primary conversion that influences bidding.

Button clicks (not form submits). The "Submit" button click is not the same as a successful form submission. We see this constantly. The tracking fires on click, the form throws a validation error ("please enter a valid phone number"), the user gives up and leaves. Your dashboard shows a conversion. Your phone never rings.

Imported GA4 duplicates. This is sneaky. You set up a conversion tag in Google Ads that fires on form submission. Then you also link GA4 and import the "generate_lead" event. Both track the same form fill. Every real lead now counts as two conversions. Your conversion rate looks amazing. Your cost per conversion looks impossibly low. And Smart Bidding is learning on data that is twice as inflated as reality.

Primary vs. secondary: what actually matters

In Google Ads, every conversion action is either "primary" or "secondary." This is the setting that determines whether Smart Bidding pays attention to it.

  • Primary conversions feed Smart Bidding. They influence how Google bids, who sees your ads, and how your budget gets allocated. Your phone calls (60+ seconds) and form submissions should be primary.
  • Secondary conversions are for reporting only. They show up in your data so you can see them, but they do not influence bidding. If you want to keep tracking page views or scroll depth for your own curiosity, set them to secondary. But honestly, just delete them.
Check this right now: Go to Google Ads > Goals > Conversions > Summary. Look at the "Primary/Secondary" column. If anything other than phone calls, form submissions, or bookings is set to "Primary," your Smart Bidding is being trained on bad data. Change it to "Secondary" or remove it.
Conversion Action Type Counting Why
Phone calls (60s+) Primary One Same caller = same lead, count once
Form submissions Primary One Same user resubmitting = same lead
Online bookings Primary One Highest intent signal, count once per user
Click-to-call (mobile) Primary One Intent signal, pairs with call duration tracking
Page views Delete N/A Not a lead, poisons Smart Bidding
Scroll depth Delete N/A No correlation with booking a job
Time on site Delete N/A Tab open in background ≠ interested customer
PDF downloads Secondary One Fine for reporting, never for bidding
Button clicks Delete N/A Fires on failed submissions, inflates data
GA4 imports (duplicate) Delete N/A Double-counts with native Google Ads tag

3. Phone Call Tracking: The One That Makes or Breaks Your Entire Account

This section alone could save you thousands of dollars. Phone calls are where most contractor leads come from, and phone call tracking is where most conversion tracking setups fall apart.

There are three ways to track phone calls from Google Ads: Google forwarding numbers (free), third-party platforms like CallRail or CallTrackingMetrics (paid), and manual tracking using UTM parameters and a call log (caveman method, do not recommend). Let's compare the two that actually work.

Google forwarding numbers vs. third-party call tracking

Google Forwarding Free
  • Included with Google Ads
  • Tracks call duration
  • Tracks caller area code
  • Feeds Smart Bidding directly
  • No call recording
  • No transcription
  • No lead scoring
  • No CRM integration
CallRail $50-$150/mo
  • Call recording + playback
  • AI transcription + keywords
  • Lead quality scoring
  • CRM integrations (ST, HCP)
  • Multi-channel attribution
  • Dynamic Number Insertion
  • Google Ads integration
  • Keyword-level tracking
CallTrackingMetrics $65-$200/mo
  • Call recording + playback
  • AI transcription + scoring
  • Advanced routing (IVR)
  • Form tracking included
  • CRM integrations
  • Dynamic Number Insertion
  • Google Ads integration
  • Conversation intelligence

The recommendation: If you spend under $3,000/month on Google Ads and do not use a CRM, Google forwarding numbers are fine. They are free, reliable, and feed conversion data directly into Smart Bidding without any extra setup.

If you spend more than $3,000/month, use a CRM like ServiceTitan or Housecall Pro, or want to know which specific keywords generate booked jobs (not just calls), invest in CallRail or CallTrackingMetrics. The $50-$150/month cost pays for itself many times over because you can listen to actual calls, score lead quality, and feed real revenue data back to Google.

Dynamic Number Insertion (DNI), explained simply

Dynamic Number Insertion is the feature that swaps your real phone number on your website with a tracking number, but only for visitors who came from Google Ads. Everyone else sees your regular number.

When a Google Ads visitor calls the tracking number, the system knows which campaign, ad group, keyword, and even which ad they clicked before calling. This is how you figure out that "emergency plumber near me" generates $8,000 in booked jobs while "cheap plumber" generates nothing but price shoppers who never book.

Both CallRail and CTM handle DNI with a small JavaScript snippet on your site. Google's forwarding numbers also do this automatically when you enable call reporting in your Google Ads settings.

Call duration thresholds by trade

This is where most contractors get the setup wrong. The default call duration in Google Ads is 0 seconds. That means every accidental dial, every spam call, and every "sorry, wrong number" counts as a conversion. You need to set a minimum duration, and that minimum depends on your trade.

Trade Min Duration Why This Number
HVAC 60 seconds Real calls involve describing the problem, confirming address, discussing availability. Under 60s is almost always a price check or wrong number.
Plumbing 60 seconds Drain calls are quick but a real booking still takes 60s. "My toilet is overflowing, can you come today?" plus scheduling = 60-90 seconds minimum.
Roofing 90 seconds Estimate requests require describing the roof, age, size, visible damage, and scheduling the inspection. Legitimate calls run 90-180 seconds.
Electrical 60 seconds Most electrical calls are service calls (outlet not working, panel upgrade questions). 60s filters out the quick price checks.
General Contractor 120 seconds Project scoping calls for remodels, additions, and renovations take 2-5 minutes minimum. Anything under 2 minutes is usually "how much does a kitchen remodel cost?" with no intent to book.
Pest Control 60 seconds Homeowner describes the pest, you confirm service area and availability. Quick but still takes a minute.
Water Damage 45 seconds Emergency calls are fast. "My basement is flooding, can you come now?" plus dispatch confirmation can happen in 45 seconds. Shorter threshold to avoid filtering out legit emergencies.
Locksmith 45 seconds Lockout calls are urgent and short. Location, lock type, and ETA in under a minute. Use a shorter threshold for emergency trades.
Landscaping 60 seconds Lawn care and landscaping quotes involve property size, services needed, and frequency. 60s filters the "how much do you charge per mow?" calls with no booking intent.
Painting 90 seconds Interior vs exterior, number of rooms, existing paint condition, scheduling the estimate. Real painting leads take 90+ seconds.
How to set this: Go to Google Ads > Goals > Conversions > Summary. Click on your phone call conversion action. Under "Settings," find "Call length" and change it from 0 seconds (the default) to your trade's minimum. This single change will immediately make your conversion data more accurate and your Smart Bidding smarter.

After-hours call tracking for emergency trades

If you run an emergency trade (plumbing, HVAC, water damage, locksmith, electrical), your after-hours calls are some of your highest-value leads. A homeowner calling at 10pm with a burst pipe is not price shopping. They are booking whoever answers first.

The problem: if calls go to voicemail after hours, your tracking records a 10-second call (ring time + voicemail greeting start), which falls under your 60-second threshold, and the conversion never gets counted. You lose visibility on some of your best leads.

The fix: use an answering service or call forwarding setup that actually answers after-hours calls with a live person. This keeps the call duration above your threshold, captures the lead information, and sends it to your dispatcher. Services like Ruby, Smith.ai, or AnswerConnect cost $200-$500/month and more than pay for themselves with the emergency calls they capture.

If you are using CallRail, set up a different call flow for after-hours that routes to your answering service while still tracking the call as a Google Ads conversion.

See What Those Calls Are Actually Worth

Model your Google Ads ROI with clean conversion data feeding your campaigns.

  • ✓ CPL by job type
  • ✓ Revenue per lead estimate
  • ✓ No signup required
Try the Free Google Ads ROI Calculator →

4. Assigning Real Dollar Values to Conversions (The Smart Bidding Secret Nobody Talks About)

Here is something that will make you angry: by default, Google Ads treats every conversion as equally valuable. A 60-second phone call from a homeowner asking about a $200 drain cleaning is worth exactly the same as a 60-second phone call from someone requesting a quote on a $15,000 roof replacement. Smart Bidding does not know the difference, so it optimizes to get you the maximum number of calls, regardless of what those calls are worth.

This is why some contractors spend $5,000/month on Google Ads and feel like they are breaking even, while others spend $5,000/month and feel like they are printing money. The difference is usually not their ads or their keywords. It is that the profitable contractor taught Google what a lead is actually worth.

Average job values by trade and service type

These are typical ranges. Yours will vary by market, but use these as a starting point for calculating your weighted average conversion value.

Trade Service Type Avg Job Value Close Rate
HVAC Repair $350-$800 60-75%
HVAC Replacement $6,000-$12,000 25-35%
HVAC Maintenance plan $150-$300/yr 40-50%
Plumbing Drain cleaning $200-$400 65-80%
Plumbing Water heater $1,200-$2,500 40-55%
Plumbing Repipe $4,000-$10,000 20-30%
Roofing Repair $400-$1,200 55-70%
Roofing Replacement $8,000-$18,000 20-30%
Roofing Inspection $150-$400 70-85%
Electrical Service call $150-$400 60-75%
Electrical Panel upgrade $1,500-$3,000 35-50%
Electrical Rewiring $3,000-$8,000 20-30%
General Contractor Kitchen remodel $15,000-$45,000 15-25%
General Contractor Bathroom remodel $8,000-$20,000 20-30%
Pest Control One-time treatment $150-$300 55-70%
Pest Control Recurring plan $400-$600/yr 30-40%
Water Damage Residential restoration $2,500-$8,000 50-65%
Landscaping Lawn maintenance $1,200-$3,600/yr 40-55%
Landscaping Hardscape project $5,000-$20,000 20-30%

How to calculate your weighted average conversion value

You do not need to assign a different value to every phone call. You need one number: your weighted average conversion value. Here is the formula:

Weighted Average = (% of calls that are Service Type A x Avg Value A x Close Rate A) + (% of calls that are Service Type B x Avg Value B x Close Rate B) + ...

Example for an HVAC company that gets 70% repair calls and 30% replacement calls:

  • Repair: 70% x $575 (midpoint) x 67% close rate = $269
  • Replacement: 30% x $9,000 (midpoint) x 30% close rate = $810
  • Weighted average conversion value: $1,079

That $1,079 is what you enter as your conversion value in Google Ads. Now Smart Bidding knows that a conversion from your HVAC account is worth roughly $1,079 in revenue, and it can make smarter decisions about how much to bid on each click.

Step-by-step: setting conversion values in Google Ads

  1. Go to Goals > Conversions > Summary
  2. Click on a conversion action (e.g., "Phone Calls")
  3. Click "Edit settings"
  4. Under "Value", select "Use the same value for each conversion"
  5. Enter your weighted average conversion value
  6. Click Save
  7. Repeat for form submissions and online bookings

If different conversion types have significantly different values (phone calls vs. form fills), assign different values to each. Phone calls from service trades typically close at higher rates than form fills, so they might get a higher value.

Do not skip this step. Running Smart Bidding (tCPA or tROAS) without conversion values is like telling your dispatcher "send whoever is available to the next call" without telling them whether the call is a $200 service visit or a $15,000 replacement. You would never run your business that way. Do not run your Google Ads that way either.

For the full guide on pushing actual closed-job revenue from your CRM back into Google Ads (which is even better than weighted averages), read our CRM attribution guide.


5. The 15-Minute Conversion Tracking Audit (Find What's Broken Right Now)

Stop reading and do this right now. It takes 15 minutes and will tell you exactly whether your tracking is working or broken. Open Google Ads in another tab and follow along.

1

Check Your Conversion Actions List

Go to Goals > Conversions > Summary. Count how many conversion actions you have. If you have more than 4-5, you probably have duplicates or junk actions. For each one, check whether it says "Primary" or "Secondary" in the optimization column. Every "Primary" action should be a real lead signal (phone call, form submit, booking). If page views, scroll depth, or time-on-site are set to Primary, that is your first problem.

2

Look at Conversion Sources

Click into each conversion action and check the source. You should see either "Website" (for on-site actions), "Phone calls" (for Google forwarding), or "Import" (for GA4 or CRM imports). The red flag: if you see both a "Website" conversion and an "Import" conversion tracking the same thing (e.g., "Website Form Submit" AND "GA4 generate_lead"), you have duplicate tracking. One of them needs to go.

3

Check Counting Methods

For each conversion action, check whether it is set to "One" or "Every." For contractors, almost everything should be "One." The same homeowner calling you three times about the same broken furnace is one lead, not three. The only exception is if you run an e-commerce side business selling parts or supplies (you probably don't). Set phone calls, forms, and bookings to "One."

4

Verify Tag Firing with Tag Assistant

Go to tagassistant.google.com. Enter your website URL. Navigate to your contact page and submit a test form (or have a friend call your tracking number). Watch the Tag Assistant panel. You should see exactly one conversion tag fire per action. If you see two tags fire for the same form submission, you have a duplicate. If you see zero tags fire, your tag is not installed correctly.

5

Compare Google Ads Conversions vs. Reality

This is the sanity check. Pull your Google Ads conversion count for the last 30 days. Now count your actual calls and form submissions from the same period using your CRM, call log, or even your phone's recent calls list. If Google says 40 and you count 15 real leads, your tracking is inflated by 2.6x. If Google says 10 and you count 25, your tracking is missing leads. Either way, something is misconfigured.

Red flag checklist

If any of these are true, your tracking is broken and actively making your campaigns worse:

Red Flags (Check Each One)

If you checked 3 or more of those boxes, your conversion tracking needs a full rebuild. The good news: everything in this guide tells you exactly how to fix it. If you want someone to do it for you, request a free audit and we will walk through your account together.


6. Enhanced Conversions: What It Actually Means When You Are Not Selling Shoes

Every guide you read about Enhanced Conversions is written for e-commerce. They talk about purchase events, transaction IDs, cart values, and Shopify integrations. None of that applies to you. You sell phone calls and booked jobs. So let's translate Enhanced Conversions into contractor language.

What Enhanced Conversions actually does

When a homeowner fills out your contact form, Enhanced Conversions takes the data they entered (email address, phone number, name) and sends a hashed (encrypted) version of it to Google. Google matches that hashed data against signed-in Google users. This closes the gap between "someone clicked your ad" and "someone became a lead," even when cookies are blocked, the user switches devices, or third-party tracking fails.

Without Enhanced Conversions, Google relies entirely on cookies and browser-based tracking to connect a click to a conversion. As privacy changes kill third-party cookies and more users browse in private mode, that connection breaks more often. Enhanced Conversions fills those gaps using first-party data you already have.

Enhanced Conversions for Leads (the one you need)

There are two types of Enhanced Conversions. "Enhanced Conversions for Web" is for e-commerce (tracks purchases). "Enhanced Conversions for Leads" is for service businesses (tracks leads through the funnel). You want the second one.

Here is how it works for a contractor:

  1. Homeowner clicks your Google Ad and lands on your site
  2. They fill out a contact form with their name, email, and phone number
  3. Enhanced Conversions hashes that data and sends it to Google
  4. Google matches the hashed data to the user who clicked the ad
  5. Later, when you import offline conversions from your CRM (booked job, closed revenue), Google can match that conversion back to the original click

The result: instead of Google knowing "someone clicked an ad and filled out a form," Google knows "someone clicked an ad, filled out a form, and then became a $4,200 water heater replacement job." That is drastically better data for Smart Bidding.

Step-by-step setup for service businesses

  1. In Google Ads, go to Goals > Conversions > Settings (the gear icon)
  2. Find "Enhanced conversions" and turn it on
  3. Choose "Google tag" as your implementation method (easiest)
  4. Select the conversion action you want to enhance (your form submission)
  5. Map the form fields: tell Google which field is "email," which is "phone number," and which is "name"
  6. Test it by submitting a test form and checking Tag Assistant
  7. Wait 48-72 hours for Google to start matching data
When to use it vs. when it doesn't matter: Enhanced Conversions is most valuable if (a) you import offline conversions from your CRM, (b) a significant portion of your traffic comes from mobile, or (c) you run campaigns targeting homeowners who research on one device and call on another. If you do none of those things and only track phone calls via Google forwarding numbers, Enhanced Conversions will have minimal impact. Focus on call tracking first.

For the full CRM integration that makes Enhanced Conversions for Leads truly powerful, see our CRM attribution guide. That is where GCLID capture, offline conversion imports, and revenue matching are covered in detail.


7. "Why Do GA4 and Google Ads Show Different Numbers?"

You open GA4 and see 22 conversions. You open Google Ads and see 31 conversions. Same date range. Same business. Different numbers. This drives contractors crazy, and it happens to literally everyone.

The numbers are different because GA4 and Google Ads measure conversions using different rules. They are both "right" according to their own logic, but they answer different questions.

The 4 reasons the numbers never match

1. Attribution models are different. Google Ads uses "last-click" attribution by default (the last ad click gets credit). GA4 uses "data-driven" attribution (credit is distributed across multiple touchpoints). If a homeowner clicks your ad on Monday, visits your site organically on Wednesday, and calls on Friday, Google Ads gives the ad credit (last ad click). GA4 might split credit between the ad and the organic visit. Same conversion, different credit assignment.

2. Conversion windows are different. Google Ads default conversion window is 30 days. GA4's is 90 days. If someone clicks your ad on day 1 and converts on day 45, GA4 counts it. Google Ads does not (unless you extended the window). This is especially common in high-ticket trades like roofing and general contracting where homeowners take weeks to decide.

3. Cross-device behavior. A homeowner searches "HVAC repair near me" on their phone during lunch, clicks your ad, reads your reviews, and then calls you from their home phone that evening. Google Ads can sometimes connect the dots using signed-in Google accounts. GA4 usually cannot. Different platforms catch different cross-device paths.

4. Conversion counting. Google Ads counts conversions based on the ad click date, not the conversion date. If someone clicks your ad on March 1 and converts on March 15, Google Ads attributes that conversion to March 1. GA4 attributes it to March 15. If you are comparing month-over-month data, conversions can shift between months depending on which platform you are looking at.

Difference Google Ads GA4
Attribution model Last Google Ads click Data-driven (multi-touch)
Conversion window 30 days (default) 90 days (default)
Date assignment Click date Conversion date
Cross-device Strong (Google sign-in) Weaker (cookie-based)
Scope Google Ads clicks only All traffic sources

Which number should you trust?

Use Google Ads data for Google Ads decisions. When you are adjusting bids, changing budgets, pausing keywords, or evaluating campaigns, use the numbers inside Google Ads. That is what Smart Bidding uses, and you want to see the same data the algorithm sees.

Use GA4 for big-picture channel mix decisions. When you are deciding how to split budget between Google Ads, LSA, SEO, and social media, GA4 gives you the multi-channel view. It shows you how all your traffic sources work together, not just the Google Ads silo.

Trust your CRM for actual revenue. Neither Google Ads nor GA4 knows how much money you actually deposited in the bank. Your CRM (ServiceTitan, Housecall Pro, Jobber) is the source of truth for revenue. If you want to know your true Google Ads ROI, you need to connect your CRM to Google Ads and track closed-job revenue, not just conversions.

Common scenario: Google Ads shows 31 conversions. GA4 shows 22. Your CRM shows 18 actual booked jobs. The 18 is your real number. The gap between 31 (Google Ads) and 18 (CRM) includes unconverted leads, duplicate counts, and attribution overlap. This is normal. What is NOT normal is a 3x or 4x gap. If Google Ads says 60 and your CRM says 15, your tracking has a structural problem.

8. The 8 Conversion Tracking Mistakes That Cost Contractors Thousands

We have audited hundreds of contractor Google Ads accounts. These are the 8 tracking mistakes that show up repeatedly, ranked by how much damage they cause. Every mistake includes how to diagnose it, why it happens, and the exact fix.

Critical Tracking Page Views as Primary Conversions

Diagnosis Signs
  • Conversion rate is suspiciously high (15-40%+)
  • Cost per conversion looks impossibly low ($5-$15)
  • Conversion count is way higher than actual calls or form submissions
  • A conversion action named "Contact Page View" or "Thank You Page" is set to Primary
Why It Happens

Someone set up a "destination page" conversion triggered by visiting the contact page, not by submitting the form. Or the thank-you page URL fires for everyone who visits it directly (it is not gated behind a form submission). Google counts every visit as a conversion.

Fix
  • Go to Goals > Conversions > Summary
  • Find the page view conversion and either delete it or change it to Secondary
  • Set up a proper form submission conversion using either the Google Ads tag (fires on thank-you page only after form submit) or Google Tag Manager with a form submission trigger
  • Make sure the thank-you page is not accessible directly (add a redirect that sends direct visitors back to the form)

Critical Duplicate Conversion Tags (GA4 Import + Native Tag)

Diagnosis Signs
  • Your conversion count suddenly doubled without any campaign changes
  • You see two conversion actions tracking "form submissions" or "phone calls" with similar names
  • One is sourced from "Website" and the other from "Import (GA4)"
  • Tag Assistant shows two conversion tags firing on the same event
Why It Happens

You (or your agency) set up a Google Ads conversion tag. Then someone linked GA4 and imported the same event. Or you set up conversion tracking, then enabled auto-tagging, and GA4 started sending the same events that Google Ads was already tracking. Both count the same lead as separate conversions.

Fix
  • Go to Goals > Conversions > Summary
  • Look for pairs: a "Website" source and an "Import" source tracking the same event
  • Keep the Google Ads native tag (it integrates directly with Smart Bidding)
  • Remove the GA4 import for that specific conversion action
  • After removing, monitor for 7 days to confirm conversion count normalizes

Critical Wrong Counting Method (Every vs. One for Phone Calls)

Diagnosis Signs
  • Phone call conversion count is higher than your actual unique callers
  • You see the same phone number multiple times in your call log for the same job
  • Cost per conversion looks low but cost per actual job is high
Why It Happens

The counting method is set to "Every" instead of "One." This means if Mrs. Johnson calls you three times about her leaking water heater (once to ask, once to confirm, once to reschedule), Google counts three conversions. You have one lead.

Fix
  • Go to Goals > Conversions > Summary
  • Click on your phone call conversion action
  • Under Settings, change "Count" from "Every" to "One"
  • Do the same for form submissions and online bookings
  • "Every" is only appropriate for e-commerce (every purchase is a new transaction)

Moderate No Conversion Value Assigned

Diagnosis Signs
  • The "Conv. value" column in Google Ads shows $0.00 or is empty
  • You cannot use Target ROAS bidding (it requires conversion values)
  • Smart Bidding treats a $200 drain call the same as a $12,000 system replacement
Why It Happens

Conversion values are not set by default. You have to manually calculate and enter them. Most contractors either do not know this is an option or assume Google figures it out automatically (it does not).

Fix
  • Calculate your weighted average conversion value using the formula in Section 4 of this guide
  • Go to Goals > Conversions > Summary > click conversion action > Edit settings > Value
  • Select "Use the same value for each conversion" and enter your weighted average
  • For even better data, connect your CRM and import actual revenue (see our CRM attribution guide)

Moderate Conversion Window Too Short

Diagnosis Signs
  • You are in a high-ticket trade (roofing, GC, remodeling) and your conversion count seems low
  • Homeowners tell you they "found you on Google" but Google Ads does not show a conversion
  • Your conversion window is set to the default 7 days or 14 days
Why It Happens

The default conversion window in some setups is 7 days. Homeowners researching roofing replacements or kitchen remodels often take 2-6 weeks to decide. If they click your ad on day 1 and call on day 21, Google's 7-day window misses the conversion entirely. Your data shows fewer conversions than reality, which makes Smart Bidding think your campaigns are performing worse than they are.

Fix
  • Emergency trades (plumbing, locksmith, water damage): 14 days
  • Standard service trades (HVAC, electrical, pest control): 30 days
  • High-ticket trades (roofing, GC, remodeling, landscaping projects): 60-90 days
  • Go to your conversion action settings and adjust the "Conversion window" to match your trade's buying cycle

Moderate Not Filtering Call Duration (Counting 5-Second Hangups)

Diagnosis Signs
  • High phone call conversion count, but your team says they barely talk to anyone
  • Average call duration in your reports is under 30 seconds
  • The call duration threshold is set to 0 seconds (default)
Why It Happens

Google's default call duration is 0 seconds. Every ring, voicemail, wrong number, and accidental tap counts as a conversion. Nobody changes the default because it is buried in the conversion action settings.

Fix
  • Set the call duration threshold using the trade-specific table in Section 3 of this guide
  • 60 seconds is the safe minimum for most trades
  • 45 seconds for emergency trades (water damage, locksmith)
  • 90-120 seconds for high-ticket trades (roofing, GC)

Minor Missing Conversion Linker Tag

Diagnosis Signs
  • Conversion tracking works intermittently (some conversions get counted, others don't)
  • Cross-domain tracking fails (if your form is on a subdomain or third-party page)
  • You use Google Tag Manager but do not have a "Conversion Linker" tag set to fire on all pages
Why It Happens

The Conversion Linker tag passes click information across pages and domains using first-party cookies. Without it, the connection between a Google Ads click and a conversion on a different page or domain can break. If you use GTM and forgot to add this tag, some conversions silently fail to record.

Fix
  • In Google Tag Manager, create a new tag of type "Conversion Linker"
  • Set the trigger to "All Pages"
  • If you use a scheduling tool on a subdomain or third-party domain, enable "Link across all domains" in the tag settings and add the domain
  • Publish the GTM container

Minor Not Using Enhanced Conversions

Diagnosis Signs
  • Your "Enhanced conversions" setting shows "Off" in conversion settings
  • You import offline conversions from your CRM but match rates are low
  • You see a noticeable gap between Google Ads reported conversions and actual leads
Why It Happens

Enhanced Conversions requires deliberate setup, including mapping form fields to Google's user data variables. Most accounts either do not know it exists or assume it is only for e-commerce (it is not). The impact grows as privacy changes reduce cookie-based tracking accuracy.

Fix
  • Follow the Enhanced Conversions setup in Section 6 of this guide
  • Prioritize this if you already import offline conversions from your CRM
  • If you only use Google forwarding numbers for call tracking, this is lower priority. Fix the issues above first.

If you want a full breakdown of every Google Ads mistake contractors make (not just tracking), read our 12 costly Google Ads mistakes guide. Tracking is mistake #1, but there are 11 more that cost real money.


9. Frequently Asked Questions

How do I know if my conversion tracking is working?

Go to Google Ads > Goals > Conversions > Summary. Every conversion action should show "Recording conversions" with recent data. If any action shows "No recent conversions" or "Inactive," the tag is not firing correctly. Use Tag Assistant (tagassistant.google.com) to verify tags fire on your conversion pages. Then compare Google Ads conversion count for the last 30 days against your actual call log or CRM. If the numbers differ by more than 20%, something is misconfigured.

What is the difference between primary and secondary conversions?

Primary conversions are the actions Smart Bidding optimizes toward. Google uses these to make bidding decisions and allocate your budget. Secondary conversions are tracked for reporting only and do not influence bidding. For contractors, phone calls (60+ seconds) and form submissions should be primary. Page views, scroll depth, and time on site should be secondary at most, or deleted entirely. Having the wrong actions set as primary is the #1 reason contractor accounts waste money on Smart Bidding.

Should I use Google forwarding numbers or third-party call tracking?

If you spend under $3,000/month on Google Ads and do not use a CRM, Google forwarding numbers are fine. Free, reliable, and they feed Smart Bidding directly. If you spend more than $3,000/month or use ServiceTitan, Housecall Pro, or Jobber, invest in CallRail or CallTrackingMetrics ($50-$200/month). Third-party platforms record calls, transcribe them, score lead quality, and integrate with your CRM for full revenue attribution.

How long should my conversion window be?

Emergency trades (plumbing, water damage, locksmith): 14 days. Standard service trades (HVAC, electrical, pest control): 30 days. High-ticket trades (roofing, general contracting, remodeling, large landscaping projects): 60-90 days. Setting the window too short means you lose credit for homeowners who take time to decide, which starves Smart Bidding of data. The Google Ads default is 30 days, which works for most trades.

Why did my conversions suddenly double overnight?

Almost always a duplicate conversion tag. The most common cause: importing a GA4 conversion into Google Ads while also having a native Google Ads conversion tag on the same page. Both fire on the same event, and Google counts it twice. Check Goals > Conversions > Summary and look for two actions tracking the same thing. Quick sanity check: if your conversions doubled but your cost per conversion dropped by half, that is a data problem, not a performance miracle.

Can I track conversions if I do not have a website form?

Yes. If phone calls are your only conversion, track them using Google forwarding numbers on your ads (call extensions, call-only ads) and on your website using Dynamic Number Insertion. You do not need a form to have functional conversion tracking. That said, even a simple name-phone-message form takes 20 minutes to set up and gives Google a second conversion signal, plus it captures leads when your phone lines are busy or after hours.

What is the minimum call duration I should track?

60 seconds for most trades. Emergency trades (locksmith, water damage): 45 seconds. High-ticket trades (roofing, GC): 90-120 seconds. Never use 0 seconds (the default), which counts every spam call and accidental dial as a conversion. See the full duration-by-trade table in Section 3 of this guide for specific recommendations.

How do I connect conversion tracking to my CRM?

CRM integration is the next level after basic tracking. It requires capturing the GCLID (Google Click ID) when a lead comes in, storing it in your CRM, and importing closed-job revenue back into Google Ads as offline conversions. ServiceTitan has a native integration. Housecall Pro and Jobber need middleware (Zapier or CallRail). For the full step-by-step walkthrough, read our CRM attribution guide.


The Conversion Tracking Setup Checklist

Use this interactive checklist to work through your conversion tracking setup. Your progress saves automatically.

Conversion Actions

Phone Call Tracking

Conversion Values & Settings

Verification


What to Do Next

If you followed this guide and fixed your conversion tracking, your Google Ads data just got dramatically more accurate. Smart Bidding is now learning from real leads instead of garbage signals, and every optimization decision you make from here forward will be based on numbers you can actually trust.

Here is the logical next step for each situation:

  • Your tracking is now clean and you want to push revenue data back to Google: Read our CRM attribution guide to connect ServiceTitan, Housecall Pro, or Jobber to Google Ads for full revenue attribution.
  • Your tracking is clean and you want to launch Performance Max: Clean conversion data is the #1 prerequisite for PMax. Read our Performance Max guide to set it up correctly.
  • You are still making other Google Ads mistakes: Read our 12 costly Google Ads mistakes for contractors to catch the other issues costing you money.
  • You want to see the ROI potential with clean tracking: Run the numbers in our Google Ads ROI calculator.
  • Your landing pages are not converting the traffic your ads send: Read our landing page guide for the conversion framework that works for contractors.
  • You want someone to do all of this for you: Request a free Google Ads audit and we will walk through your account together.

See What Your Google Ads Should Actually Be Producing

Run your numbers with the ROI calculator and find out where tracking gaps are costing you money.

  • ✓ Budget vs. expected leads
  • ✓ CPL benchmarks by trade
  • ✓ No signup required
Try the Free Google Ads ROI Calculator →