Your Google Ads account looks fine on paper. Cost per click is reasonable. Impression share is climbing. Your sales team is still chasing quotes that never turn into signed contracts.
That gap comes from what happens after the click: unqualified traffic landing on a generic homepage, forms that sit without a callback, and estimates that never get a second follow-up call. Fixing the campaign structure without addressing what happens downstream just creates a faster way to burn through budget.
This article breaks down how to structure Google Ads for a window and door company so the traffic you buy turns into booked estimates, not just cheap clicks.
Generic Google Ads advice treats every click the same, and window and door replacement doesn't work that way. It's a high-consideration purchase: a homeowner comparing quotes is weighing price, install timeline, financing, and whether the company will still answer a warranty claim in five years.
Three things separate this category from a typical local service ad:
A campaign built like a lead-gen funnel for a low-consideration product, skipping the proof and chasing the click, brings in volume that never turns into signed jobs.
Structure your account around three campaign types, each doing a different job, instead of one broad campaign trying to do everything.
Search campaigns should carry your highest-intent terms: "window replacement cost," "[city] impact windows," "hurricane window installation near me." Structure ad groups by product line (vinyl, impact, and hurricane, patio doors, entry doors) instead of one broad "windows" group. Tighter ad groups let your ad copy speak directly to what the searcher typed.
Local Services Ads (LSA) should run alongside Search, not instead of it. According to Google's Local Services Ads page, LSAs place you at the top of the results with a Google Verified badge and charge per lead rather than per click, which is a different budget conversation with your team than Search spend. LSA ranking also heavily weights review volume and response time, and both are fixes within your business, not within the ad account.
Performance Max works for this category, but only once enough conversion data (calls, form fills, and ideally booked appointments as a distinct conversion action) is flowing back to Google for the algorithm to optimize toward the right outcome. Turning it on before your tracking is clean tends to optimize for cheap form fills rather than booked jobs.
Match your bidding aggressiveness to how close the searcher is to booking, not to search volume. Break your keyword list into three intent tiers.
Negative keywords matter as much as the keyword list itself. Exclude DIY terms, repair-only searches if you don't offer repairs, and job-seeker terms like "window installer jobs," which quietly eat budget every month if left unchecked.
Ad copy that converts leads with proof, not adjectives. Homeowners scanning search results skip generic claims and stop on specifics.
Avoid promising specific savings, rebate amounts that may no longer apply, or language that implies a guaranteed outcome ("Guaranteed lowest price," "#1 rated"). Beyond the reputational risk, Google's advertising policy on unreliable claims disallows unsubstantiated superlative and guarantee claims outright.
Send every click to a page built for the exact search, never to your homepage. A homeowner who clicked "hurricane impact windows [city]" should land on a page about hurricane impact windows in their area, not a homepage juggling six service lines.
Dedicated landing pages by product line, and by city if you serve multiple markets, consistently outperform homepage traffic because the page matches the intent that got the click. Google's Quality Score documentation confirms landing page relevance is one of the core signals it evaluates, alongside expected clickthrough rate.
Track calls, form fills, and booked appointments as three distinct conversion actions, not one blended number. At minimum:
The gap between "form submitted" and "appointment booked" is where most window and door companies lose visibility, and it's exactly where choosing the right CRM for this business, not just any CRM, starts to matter.
Phone tracking alone is only one layer. Every form fill and booked call should carry a UTM (a tagging parameter that labels which campaign, ad, and keyword produced it), fired back through Google Tag Manager as a distinct conversion event. That's what lets you see cost per lead, cost per booked appointment, and cost per closed job by channel, instead of guessing which campaigns are actually producing signed jobs.
Start with manual or enhanced cost-per-click bidding while conversion volume builds, then move to Target CPA (cost per acquisition) or Target ROAS (return on ad spend) once you have enough data for the algorithm to optimize against a real outcome. Google's guidance for evaluating Target CPA recommends measuring performance over 30 days with at least 30 conversions in that window before trusting the results.
Shifting to automated bidding before that signal is clean tends to lock in inefficient spend before anyone notices, because the algorithm optimizes against whatever conversion action you handed it, even if that action is a form fill instead of a booked job. This is also where raw cost per lead stops telling the full story. Net sales per lead is a better read on whether your spend is actually working.
The most common mistakes all trace back to treating every click the same:
Not directly, as covered above. The one number worth watching instead is your landing page experience rating, specifically, since that's the piece you control directly without waiting on Google's algorithm.
Run both, as covered above. The main thing to watch is budget cannibalization if both channels are pulling from the same homeowners in your market without a plan for how to split spending between them.
Budget follows your target cost per booked appointment, not a fixed monthly number, as covered above. Until you hit that conversion volume, resist comparing your spend to a number pulled from a contractor forum. It tells you nothing about someone else's cost per booked job.
Google Ads is one input into a larger system, not the whole system. The campaign structure above gets the right homeowners clicking. What happens after that, how fast your team responds, how the follow-up sequence runs, and whether your CRM shows you cost per booked job, decides whether that click turns into a signed contract.
Rizen builds both sides of that system for window and door companies: the acquisition engine and the CRM and follow-up automation that turns a click into a booked appointment your team can actually work. Schedule a SmartLeadGen strategy call to see what that looks like for your account.