Smart Bidding for Contractors: Why Conversion Volume Determines Your Strategy
Most contractors running Google Ads switched to smart bidding because Google pushed it. The campaign suggestions tab recommended it. The setup wizard defaulted to it. So you enabled Target CPA or Maximize Conversions and expected the algorithm to start producing leads more efficiently.
Some accounts got worse. Costs jumped, lead quality dropped, and the same budget that produced 40 leads a month on manual bids now produces 22. The temptation is to blame the strategy. The actual problem is data. Smart bidding is a machine learning system that optimizes based on conversion feedback: what happened after the click. Without enough conversions to learn from, it guesses. And when it guesses with your daily budget, the results look like a failing campaign rather than a working one.
What Smart Bidding Actually Does
Manual CPC bidding sets a flat bid: you pay up to $12 for every click on this keyword, regardless of who is clicking, when, on what device, or from where. Smart bidding replaces that flat rule with per-auction bids based on signals Google can see that you cannot: the searcher's device, time of day, location within your service area, browsing behavior, audience membership, and dozens of other real-time factors.
A homeowner searching "emergency furnace repair" at 11pm on a phone from a specific ZIP code in your service area has different intent than someone searching the same phrase at 10am on a desktop. Smart bidding can bid $18 for the first click and $7 for the second. Manual CPC bids $12 for both. That precision is the actual value proposition.
The catch: the algorithm only knows what to optimize toward if it has conversion data. If it cannot see a consistent pattern between click signals and completed conversions, it cannot adjust bids meaningfully. Below a minimum threshold of conversion volume, smart bidding produces results that are statistically worse than manual bidding in most accounts.
The Conversion Data Problem in Contractor Accounts
Google requires at least 30 conversions per campaign per month for Target CPA to function reliably. Target ROAS requires 50 or more. Below those thresholds, the algorithm extrapolates from insufficient data, and its confidence intervals are wide enough to produce random-looking results: budget spikes on Tuesday, nothing on Wednesday, a $300 day with two leads followed by a $90 day with zero.
Most contractor Google Ads accounts cannot meet this threshold because they have fragmented campaigns. An HVAC contractor running separate campaigns for AC repair, AC installation, furnace repair, furnace installation, and heat pump service might generate 60 total conversions per month across the account. Divided across five campaigns, each campaign averages 12. None of them qualify for stable smart bidding.
| Conversions Per Campaign (30 Days) | Recommended Bidding Strategy |
|---|---|
| Under 15 | Maximize Clicks with a max CPC cap |
| 15 to 30 | Maximize Conversions, no target set |
| 30 to 50 | Target CPA set 20% above current actual CPA |
| 50 or more | Target CPA or Target ROAS with conversion values assigned |
The fix for most contractor accounts is campaign consolidation. Combine emergency service campaigns into one theme and planned work or replacement campaigns into another. Each consolidated campaign can now accumulate 30 or more conversions per month, giving the algorithm the volume it needs to differentiate between click signals and optimize bids accordingly. Fewer campaigns with more data each outperform more campaigns with thin data every time.
Which Bidding Strategy to Use at Each Stage
Smart bidding works best when you match the strategy to your current conversion volume rather than defaulting to whatever Google recommends in the campaign wizard.
New campaigns (under 15 conversions per month): Maximize Clicks with a max CPC cap. No smart bidding until you have conversion history. Set a max CPC that reflects your margin tolerance and let the algorithm gather click data. After 30 days, review which keywords are generating conversions and remove the ones that are not. This stage is about building the conversion record, not optimizing it.
Established campaigns (15 to 30 conversions per month): Maximize Conversions, no target. This tells Google to get as many conversions as possible within your daily budget without a cost-per-conversion constraint. It uses whatever conversion data exists without holding to a target the data cannot yet support. Do not set a Target CPA during this phase. The target adds a constraint the algorithm cannot reliably honor, and it will either underspend or overspend trying to hit a number it does not have the data to reach.
Mature campaigns (30 or more conversions per month): Target CPA. Set your initial target 20 to 30 percent above your current actual CPA. If campaigns are converting leads at $65 each on Maximize Conversions, set your Target CPA at $80. Give the algorithm a realistic target with room to operate. After 30 days with no structural changes, evaluate whether you can reduce the target by 10 percent. The learning phase restarts any time you make a structural change, so patience is required: changing the target every week produces indefinite learning-phase instability and prevents the algorithm from ever stabilizing.
Assigning Conversion Values by Job Type
Target ROAS is more powerful than Target CPA for contractors who serve multiple job categories at different revenue levels, but it requires conversion values. You need to tell Google which conversions are worth more in relative terms.
Emergency repair form fills are worth more than maintenance requests. A homeowner submitting an emergency AC request in July has a higher booking probability and a higher job value than one requesting an annual tune-up. Assign conversion values in Google Ads conversion settings based on relative job revenue multiplied by your booking rate per lead type:
- Emergency service request form: Assign $150 to $200 (reflects higher booking probability and urgent job value)
- Equipment replacement or installation form: Assign $300 to $500 (reflects higher average job revenue)
- Maintenance or inspection form: Assign $50 to $80 (reflects lower average value and higher price sensitivity)
These values do not need to match actual job revenue precisely. They need to reflect the relative value between conversion types accurately enough that the algorithm allocates more budget toward higher-value queries. Even rough values create a directional signal the algorithm can use. No assigned values mean all conversions are treated as equal, and the algorithm has no basis for prioritizing replacement queries over tune-up requests.
Offline Conversion Imports: The Data Advantage Most Contractors Skip
The most powerful improvement available to a contractor running Google Ads is feeding booked job data back to Google. Online conversions tell Google a homeowner submitted a form. Offline conversion imports tell Google which of those form submissions became actual paying customers.
How it works: your CRM tracks which leads booked jobs. You export those records with the Google Click ID (gclid) attached to each lead, then upload them to Google Ads. The algorithm now knows which audience segments, keywords, times of day, and devices produce revenue, not just form fills. Over 60 to 90 days, it routes budget away from click profiles that generate leads but not booked jobs and toward profiles that close at higher rates.
ServiceTitan, Housecall Pro, and Jobber all have native Google Ads integrations that automate this process. If your CRM does not have a native integration, a Zapier workflow connecting your CRM to the Google Ads API handles it without custom development. The prerequisite is auto-tagging enabled in your Google Ads account settings, which automatically appends gclid parameters to every ad click URL. If auto-tagging is off, gclid data is not captured and offline imports cannot be matched to clicks.
Contractors who implement offline conversion imports typically see cost per booked job fall 15 to 25 percent over 90 days because the algorithm stops bidding aggressively on click profiles that historically generate unbooked leads. The improvement compounds over time: each upload cycle gives the algorithm more data, and the optimizations become more precise with each iteration.
Three Actions for This Week
- Check your conversion count per campaign for the last 30 days. In Google Ads, go to Campaigns, set the date range to the last 30 days, and review the Conversions column for each campaign. Any campaign with under 30 conversions should not be running Target CPA or Target ROAS. Switch those campaigns to Maximize Conversions and record the date. Re-evaluate in 45 days before making further changes.
- Assign conversion values by form type. In Google Ads, go to Tools, then Conversions, and edit each conversion action to assign a dollar value. Emergency, replacement, and installation form submissions should have meaningfully higher values than maintenance or inspection requests. Do not leave all conversions at equal default weighting. Even rough relative values give the algorithm the signal it needs to prioritize higher-revenue query types.
- Check whether your CRM has a Google Ads offline conversion integration. ServiceTitan, Housecall Pro, and Jobber all support it. If your CRM does not, search for its name and "Google Ads offline conversion import" to find the current documentation. Enabling this is the single highest-leverage data change available for smart bidding: it closes the loop between ad spend and actual booked revenue, not just lead form submissions.
Smart bidding is not a set-and-forget upgrade. It is an optimization system that requires correct setup, sufficient conversion volume, and consistent data quality to outperform manual bidding. Contractors who enable it with fragmented campaigns and thin conversion data will see worse results and blame the strategy. Consolidate campaigns, match the bidding strategy to your current conversion volume, assign relative values to different job types, and feed booked job data back to Google. The algorithm does the rest, but only once it has the data it needs to do it well.