Skip to main content
Google Ads · PoolsGoogle Ads × Pools

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

  1. 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.

  2. 02

    Design consultations counted as sales

    The consultation-to-contract rate on pool builds is low and varies enormously by campaign.

  3. 03

    Extreme seasonality misread as campaign performance

    Comparing July against November tells you about the calendar, not about the campaign.

  4. 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. 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. 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. 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. 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. 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.

InquiryVolume signal, phone-heavy.
Design consultation bookedA leading indicator worth reporting.
Design consultation attendedThe realistic optimization target for builds, valued at your own consult-to-contract rate.
Build contract signedThe large money event, at contract value.
Service agreement signedThe recurring money event, valued at its term.

Google Ads · Pools · diagnose

Diagnostic order — Google Ads · Pools

  1. 01

    Count records carrying gclid, gbraid and wbraid

  2. 02

    Build cycles exceeding import windows

    A contract signed five months after the click cannot be uploaded to Google Ads. Measure the distribution first.

  3. 03

    Consultation no-shows

    High on cold paid traffic and they differ sharply by campaign.

  4. 04

    Season-to-season comparison

    The most common source of confident wrong conclusions in this category.

  5. 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

Get my free conversion tracking audit

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.

Get my free conversion tracking audit

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.

Free · 30 min

Get Google Ads reporting what pool installation and service companies actually earn

Free30 minutesNo obligation