Google Ads conversion tracking for pool installation and service companies
A pool company sells one very large thing occasionally and one small recurring thing constantly, and the two have nothing in common except the phone number. What Google Ads adds on top of that is a mechanical requirement: gclid, gbraid and wbraid have to reach the record that holds the money, because Google Ads can only credit a conversion it can tie back to a click it recognizes. This page covers both halves — what a conversion is in pool installation and service companies, and what Google Ads specifically needs to accept it.
Free30 minutesNo obligation
Specific to Google Ads × Pools
Google Ads for pool builders: consults now, builds reported later
Pool companies on Google Ads should upload attended design consultations as the primary offline conversion, valued at their own consult-to-contract rate and matched on gclid, gbraid or wbraid, and send service agreements as a separate conversion action. Build contracts signed beyond the 90-day import window are reported from the project system, not uploaded.
Search splits cleanly here: queries like pool builders near me or fiberglass pool cost carry build intent, while pool cleaning service or green pool help carry service intent, and the two belong in separate campaigns. Google lets you set conversion goals at campaign level, so service campaigns can bid on service agreements and build campaigns on attended consultations without either learning from the other's conversions.
Seasonality is the trap Smart Bidding falls into. In most markets build inquiries rise in late winter, service demand peaks with the first hot weeks, and both drop in autumn. Google's seasonality adjustments are designed for short events lasting days, not a season-long shift, so they are the wrong tool here. Expect bidding to lag the turn of the season, and make budget and target changes ahead of it, using last year's same weeks as the comparison.
The design consultation can happen weeks after the click and the signed build months later. Upload the attended consult as soon as it happens, while the click is still inside the 90 days. Check that the consultation form captures gbraid and wbraid as well as gclid, because iPhone Safari traffic often arrives without a gclid, and a form written only for gclid drops those homeowners silently.
Google Ads · Pools · what breaks
Why Google Ads under-reports for pool installation and service companies
- 01
Builds and service in one conversion action
A six-figure build and a monthly service agreement optimized as though they were the same event.
- 02
Design consultations counted as sales
The consultation-to-contract rate on pool builds is low and varies enormously by campaign.
- 03
Extreme seasonality misread as campaign performance
Comparing July against November tells you about the calendar, not about the campaign.
- 04
Gclid, gbraid and wbraid never reaches the record
Three parameters, not one. gclid is the long-standing identifier; gbraid and wbraid arrive on iOS traffic where privacy constraints prevent the usual one. Capture code that names only gclid loses a growing share, silently, and the loss is invisible until you audit how many records carry an identifier.
Google Ads · Pools · the fix
What working looks like — Google Ads · Pools
Signed builds as one money event
With the contract value, from the project system.
Service agreements as a separate money event
Valued at the agreement term.
Seasonality stated in every report
Like periods compared against like periods, always.
Google Ads · Pools · architecture
How Google Ads and pool installation and service companies actually connect
- 1
The conversion in pool installation and service companies
Two money events that must not share a conversion action, plus an honest answer about whether the build cycle fits inside any ad platform's import window at all.
- 2
Google Ads needs a click to match
A click identifier inside the 90-day window, a conversion action name that matches one configured in the account, a conversion timestamp for when the outcome happened, and a value. Read the match rate after uploading — a file can upload perfectly and match nothing.
- 3
The identifier: gclid, gbraid and wbraid
Three parameters, not one. gclid is the long-standing identifier; gbraid and wbraid arrive on iOS traffic where privacy constraints prevent the usual one. Capture code that names only gclid loses a growing share, silently, and the loss is invisible until you audit how many records carry an identifier.
- 4
Where it gets sent from
The project and CRM systems — contracts signed by date, split into builds and service agreements, for the same window.
- 5
Deduplication and window
There's no shared event ID mechanism like Meta's. What matters instead is the counting setting on each conversion action — 'one' for lead-type conversions so a repeat submitter doesn't count three times, 'every' for ecommerce where a second purchase is a second sale. This is the single most common misconfiguration we find in Google Ads accounts. Google's offline import window is 90 days from the click. Anything older can't be matched, and rows outside it fail as unmatched without much explanation. Measure your median click-to-outcome time against that before designing anything.
Google Ads · Pools · events
The conversion map for pool installation and service companies
Five events across two businesses and a very long cycle.
| Event | What it means here |
|---|---|
| Inquiry | Volume signal, phone-heavy. |
| Design consultation booked | A leading indicator worth reporting. |
| Design consultation attended | The realistic optimization target for builds, valued at your own consult-to-contract rate. |
| Build contract signed | The large money event, at contract value. |
| Service agreement signed | The recurring money event, valued at its term. |
Google Ads · Pools · diagnose
Diagnostic order — Google Ads · Pools
- 01
Count records carrying gclid, gbraid and wbraid
- 02
Build cycles exceeding import windows
A contract signed five months after the click cannot be uploaded to Google Ads. Measure the distribution first.
- 03
Consultation no-shows
High on cold paid traffic and they differ sharply by campaign.
- 04
Season-to-season comparison
The most common source of confident wrong conclusions in this category.
- 05
Read the match rate on the upload, not the success message
A conversion action that stops receiving hits is flagged as inactive 30 days later — by which point a month of budget has already run against a missing signal. Check the last-received date on every action monthly; it takes two minutes and it's the cheapest monitoring available.
Google Ads · Pools · prove
How it gets proven — Google Ads · Pools
Source of truth
The project and CRM systems — contracts signed by date, split into builds and service agreements, for the same window
- The click-to-contract distribution measured before anything is built, against every import window.
- Signed contracts reconciled per record against what each platform reports, by type.
- Consult-to-contract rate calculated from your own history and used as the consult value.
- Consultation no-show rate measured by campaign.
- The match rate on the upload, not the success message read directly, not inferred from an upload succeeding.
Google Ads · Pools · free audit
What we check in the free audit
- Count records carrying gclid, gbraid and wbraid
- Build cycles exceeding import windows
- Consultation no-shows
- Season-to-season comparison
- Read the match rate on the upload, not the success message
Checked against
The project and CRM systems — contracts signed by date, split into builds and service agreements, for the same window
Free30 minutesNo obligation
Google Ads · Pools · when not to buy
When you don't need this — Google Ads · Pools
- If Google Ads already reports conversions that reconcile against the project and crm systems within a few percent, this is working and there is nothing to buy.
- Measure identifier coverage yourself first — pull your last hundred records and count how many carry gclid, gbraid and wbraid.
- If you're running Performance Max exclusively and haven't separated your conversion actions, the import will work and the reporting won't tell you much. Worth sorting the account structure first.
Google Ads · Pools · what we deliver
What gets built — Google Ads · Pools
Click identifier captured and persisted for months
The design cycle on a build routinely outruns any browser storage.
Carried into the CRM and the project system
Through the consultation booking and the design phase.
Signed contract fires the conversion
Where the import window allows it; reported separately where it does not.
Service agreement cancellations reversed
Recurring revenue that stops should stop being reported.
Dispatch via Google's offline conversion import
Uploaded against the click identifier, either through the Google Ads API or as a file. The upload is the easy part; what limits it is how many of your records carry an identifier at all. Verify the current column format against Google's own template — it has changed before.
Written guarantee
95%+ tracking accuracy
Measured against The project and CRM systems — contracts signed by date, split into builds and service agreements, for the same window. Miss it and we keep working at no cost.
From $400 · See packages
FAQ
Google Ads · Pools questions, answered
No. Use campaign-level conversion goals so build campaigns bid on attended consultations and service campaigns bid on service agreements, each valued separately.
Generally not. They are designed for short events lasting days; a pool season is a sustained shift better handled with budget and target changes made ahead of it.
Not by uploading contracts against the original click — Google's offline import window is 90 days. The workable structure is optimizing toward attended design consultations valued at your own consult-to-contract rate, with build revenue reported separately over a longer window.
Separate campaigns and separate conversion actions. Service agreements convert far more often at far lower value, and a shared action means they consume the budget that should be finding build customers.
Year-over-year on the same period, and say so explicitly in the report. Month-over-month across a season boundary in this category produces conclusions that are confidently wrong.
Three parameters, not one. gclid is the long-standing identifier; gbraid and wbraid arrive on iOS traffic where privacy constraints prevent the usual one. Capture code that names only gclid loses a growing share, silently, and the loss is invisible until you audit how many records carry an identifier.
Uploaded against the click identifier, either through the Google Ads API or as a file. The upload is the easy part; what limits it is how many of your records carry an identifier at all. Verify the current column format against Google's own template — it has changed before.
By reading the match rate on the upload, not the success message and reconciling against The project and CRM systems — contracts signed by date, split into builds and service agreements, for the same window. An upload that succeeds is not an upload that matched.
More on Google Ads · Pools
- PoolsConversion tracking for pool companies, measured in signed builds
- Google Ads · Home securityGoogle Ads conversion tracking for home security companies
- Google Ads · Pest controlGoogle Ads conversion tracking for pest control companies
RELATED GUIDES
More for pool companies: other angles on the same outcome
- PoolsConversion tracking for pool companies, measured in signed builds
- Google Ads · Deck buildersGoogle Ads conversion tracking for deck builders
- Google Ads · Chimney sweepsGoogle Ads conversion tracking for chimney sweeps
- Google Ads · Quote → closed jobHow to track quote request to closed job for Google Ads
- Google Ads × Job SystemHow to reconcile Google Ads against your job management system
- Pool buildersLocal Services Ads for pool builders: service calls, spring rushes and cost per signed build
- Google Ads · Junk removalGoogle Ads conversion tracking for junk removal companies
- Google Ads · SolarGoogle Ads conversion tracking for solar companies
Free · 30 min
Get Google Ads reporting what pool installation and service companies actually earn
Free30 minutesNo obligation
