Bid by county, because Douglas and Adams do not shop for the same pool
One budget spread across the Front Range hides the fact that you are buying two or three different customers at two or three different prices.
Split campaigns geographically before you split them any other way. Denver County, Jefferson, Arapahoe, Adams, Douglas and Boulder produce different lot sizes, different budgets and different drive times from your yard.
Drive time is a cost, not a detail. A crew sitting on I-25 to reach Castle Rock is a real expense that never appears in the ad platform. Bid accordingly rather than pretending a click is a click.
Give each geography its own budget and its own reporting. Averaging Highlands Ranch and Thornton together produces a metro cost per lead that describes nobody.
Then split by job. New construction, renovation and equipment work have different values, different close rates and different seasons. Sharing one budget means the cheapest clicks quietly eat the most valuable campaign.
Pool tables, rec center lap swim and LoDo rooftop bars are already in your search terms report
The word pool is one of the leakiest terms in paid search, and in this metro it leaks in directions a coastal builder never sees.
Pull the search terms report before you touch a bid. You will find furniture shoppers, people looking for lap swim at a rec center, tourists searching rooftop pools downtown, apartment hunters, job seekers and homeowners looking for weekly service.
Build the negative list as a permanent asset, not a one time cleanup. Add to it weekly at first, then monthly. Every term you exclude is budget moved back to a buyer who wants a shell in the ground.
Above ground kits, swim spas and portable spas deserve their own decision. Some builders want that traffic and most do not. Decide deliberately instead of paying for it by accident.
Broad match with an automated bidding strategy will find these terms faster than you can. If you use it, pair it with a disciplined exclusion routine or expect a large share of spend to land somewhere useless.
Location targeting in a city that is also a county, surrounded by five that are not
Denver is a consolidated city and county, which quietly breaks the mental model most account builds are based on.
Set targeting to people regularly in or who have shown interest in your locations, and then decide whether interest traffic is welcome. For a pool builder it usually is not, because a searcher in another state planning nothing is expensive company.
Use city and zip level targeting rather than one ring. A radius drawn from your shop crosses jurisdiction lines that matter to permitting, to lot size and to whether you actually want the job.
Watch for the name collision. Denver as a place name behaves differently than the surrounding municipalities, and reporting that groups them can make an unprofitable area look fine.
Exclude what you will not serve. Saying no to the foothills or to the far edge of Boulder County in the platform is cheaper than saying no on the phone after you have paid for the call.
The bidding year starts near Thanksgiving, not at Memorial Day
Money has to be in the account while the ground is still hard, because that is when next season's digs are decided.
Buyers research pools through the cold months and sign before the season opens. An account that ramps up in May is bidding against every competitor for the leftovers.
Pace against your build calendar, not the platform's month. If your excavation slots for a stretch of summer are gone, spending at full tilt to sell more of them is not ambition, it is waste.
Shift the mix as the year turns. Renovation, equipment, heater and cover terms tend to hold up when new construction inquiries cool, and they keep an account alive through months when the shovels are parked.
Set expectations internally before the season. A quiet January in the inbox does not mean the account is broken if the design agreements are being signed in February.
One signed agreement in Highlands Ranch outweighs a week of form fills
Until real outcomes flow back into the ad platform, you are optimizing toward whichever ad produces the most people who are not going to buy.
Import offline conversions. Get booked site visits, signed design agreements and scheduled excavations back into the account from your CRM so bidding learns from the outcome and not the form.
Value them differently. A booked backyard visit and a signed agreement are not the same event, and treating them the same teaches the algorithm to chase the cheaper one.
Report cost per signed agreement by county and by job type. The metro average is the number that hides the money, because one geography is usually subsidizing another.
Track call handling as part of the account. If calls from paid search go unanswered while crews are in the ground, no amount of bid strategy fixes the result and no report will show you why.
Send a Golden click to a Golden page, or pay for that visitor twice
The ad wins the click and the landing page decides whether you keep it, so a generic homepage arrival is money spent and abandoned.
Match the page to the promise. A renovation ad should land on renovation work with renovation photographs, not on a homepage full of new build renderings.
Geography deserves the same treatment. Naming the county, the suburb and the building department you deal with is a small trust signal that costs nothing and reads as local.
Keep the form short and the phone visible. Ask what you need to route the inquiry and qualify the job, and save everything else for the call.
Speed matters more on paid traffic than anywhere else, because you already bought the visitor. A gallery heavy page that stalls on a phone in a backyard in Arvada is a bill you pay twice.
Questions we actually get
- What should a Denver pool builder actually measure from paid search?
- Cost per booked backyard visit and cost per signed design agreement, reported by county and by job type. Cost per lead flatters an account, because the cheapest leads are usually the ones that never become work. Getting there means importing outcomes from your CRM back into the ad platform rather than counting form fills.
- Do we need separate campaigns for renovation and new construction?
- In most cases, yes. They have different close rates, different values and different seasons. Sharing one budget usually means renovation clicks, which tend to be cheaper, absorb spend that was meant to sell builds. Separate budgets also let you shift weight toward renovation when the digging slows.
- Should we bid on competitor names?
- It is possible and it is sometimes worth testing, but keep the copy clean and make no claims about licensing, credentials or another firm's work that you cannot support. Expect the traffic to be more expensive and less loyal than your own brand terms, and treat it as a small line rather than a strategy.
- How much geography should we target?
- Only what your crews will actually drive to profitably. Excluding areas in the platform is cheaper than declining jobs on the phone. Set targeting to people in your locations rather than including everyone who has shown interest, and use city and zip level targeting instead of one large radius.
- Is Performance Max a good fit for a pool builder here?
- It can work once real outcome data is flowing in, and it tends to disappoint before that. Without offline conversion imports and a serious negative list it will find the metro's cheapest pool clicks, which are frequently the rec center, furniture and service searches you do not want.