Skip to main content
Google Ads · RestorationGoogle Ads × Restoration

Google Ads conversion tracking for water damage and restoration companies

Restoration is the most urgent category in home services and the one with the widest job value spread: a small water extraction and a full fire rebuild are both one phone call. 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 water damage and restoration companies, and what Google Ads specifically needs to accept it.

Free30 minutesNo obligation

Specific to Google Ads × Restoration

Google Ads for restoration: import invoiced jobs, restate on approval

A restoration company on Google Ads should import the completed, invoiced job from its job management system as an offline conversion keyed on gclid, gbraid or wbraid, and treat qualified calls of a minimum duration as a separate, secondary action. Send the actual invoiced value by loss type, never an average.

Google is where emergency restoration demand shows up, and most of it arrives as a phone call placed seconds after a search. A call from a call asset or call-only ad never loads your site, so there's no gclid to store. If you use Google forwarding numbers, check that call conversions with a minimum duration are configured, and treat those as the volume signal for every dispatch that began without a landing page.

Insurance approval is a timing question Google can actually handle. The conversion adjustments feature lets you restate an uploaded conversion's value, so one workable design is to upload the dispatched job with a modeled value by loss type, then restate it to the invoiced amount or retract it when the carrier denies the claim. Confirm that adjustments are available for your conversion action type before you build. Approvals that take weeks still land well inside the 90-day window.

The common failure is a qualified-call action set as primary next to the job import, so Smart Bidding chases call volume from adjusters, vendors and out-of-area flooding. Make the completed job primary once you have enough of them, and check your Local Services Ads leads separately if you run them, since they're billed and reported outside these actions.

Google Ads · Restoration · what breaks

Why Google Ads under-reports for water damage and restoration companies

  1. 01

    Every call counted regardless of outcome

    Emergency inbound includes a great many calls that never become jobs.

  2. 02

    Job values spanning two orders of magnitude

    Averaging a small extraction with a fire rebuild destroys the signal.

  3. 03

    Insurance approval sitting between the call and the revenue

    A dispatched job is not an approved job.

  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 · Restoration · the fix

What working looks like — Google Ads · Restoration

  • Completed jobs as the conversion

    From the job management system, at the invoiced value.

  • Loss type carried on the conversion

    Water, fire, mould — different values and different competition.

  • Calls filtered before they count

    By duration and by whether a crew was actually dispatched.

Google Ads · Restoration · architecture

How Google Ads and water damage and restoration companies actually connect

  1. 1

    The conversion in water damage and restoration companies

    The money event is a completed and invoiced job. The insurance approval step means the value is not known at dispatch, which is the timing question to settle before building.

  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 job management system — jobs completed and invoiced by date, by loss type, 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 · Restoration · events

The conversion map for water damage and restoration companies

Five steps with an insurer in the middle.

Tracked phone callThe dominant channel. Filter hard.
Crew dispatchedA real commitment of resources, and a cost whether or not it bills.
Insurance approvedWhere the job becomes revenue.
Job completed and invoicedThe money event, at the invoiced value.
Loss typeCarried on the conversion.

Google Ads · Restoration · diagnose

Diagnostic order — Google Ads · Restoration

  1. 01

    Count records carrying gclid, gbraid and wbraid

  2. 02

    Number-swap script running too late

    Emergency callers dial fast, so the highest-intent traffic is the least attributed.

  3. 03

    Unfiltered call conversions

    Inbound includes insurers, adjusters, competitors and wrong numbers.

  4. 04

    Service area boundaries

    Out-of-area emergency calls are pure cost.

  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 · Restoration · prove

How it gets proven — Google Ads · Restoration

Source of truth

The job management system — jobs completed and invoiced by date, by loss type, for the same window

  • Completed jobs reconciled per job against what each platform reports.
  • The share of calls carrying a session measured, since phone is the funnel.
  • Number-swap timing verified on a real page load.
  • Invoiced values confirmed on the conversion rather than an average.
  • The match rate on the upload, not the success message read directly, not inferred from an upload succeeding.

Google Ads · Restoration · free audit

What we check in the free audit

  • Count records carrying gclid, gbraid and wbraid
  • Number-swap script running too late
  • Unfiltered call conversions
  • Service area boundaries
  • Read the match rate on the upload, not the success message

Checked against

The job management system — jobs completed and invoiced by date, by loss type, for the same window

Get my free conversion tracking audit

Free30 minutesNo obligation

Google Ads · Restoration · when not to buy

When you don't need this — Google Ads · Restoration

  • If Google Ads already reports conversions that reconcile against the job management system 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 · Restoration · what we deliver

What gets built — Google Ads · Restoration

  • Click identifier captured with the number swap running immediately

    Callers dial within seconds of landing; a deferred script loses them.

  • Carried into the job management system

    Onto the job record.

  • Completed job fires the conversion

    At the invoiced value, after insurance approval.

  • Cancelled and unapproved jobs excluded

    A truck rolled that did not bill is a cost.

  • 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 job management system — jobs completed and invoiced by date, by loss type, 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 · Restoration questions, answered

Completed jobs, once you have enough of them each month. Until then, bid on filtered qualified calls and import completed jobs as a secondary action so the value data builds up.

Free · 30 min

Get Google Ads reporting what water damage and restoration companies actually earn

Free30 minutesNo obligation