July 14, 2026

Offline conversion tracking, in plain English for the trades.

Office manager reviewing data at a desktop computer

Why jobs that close days after the click break normal ad tracking, the three ways booked-job data gets back to Google, and what happens when it does.


A homeowner clicks your Google ad on Tuesday, calls, and books a $6,400 furnace replacement that closes on Friday. Inside Google Ads, that entire story shows up as one click and — if your tracking is typical — one "lead," worth exactly as much as the tire-kicker who filled out the same form and never answered the phone. Google has no idea which clicks became jobs, so it can't bid toward the ones that did.

Offline conversion tracking is how you fix that, and it's less complicated than the name makes it sound. Here's what it is in plain English, why home services is the textbook case for it, the three ways the data actually gets back to Google, and what changes in your account once it does.

What is offline conversion tracking?

An offline conversion is any valuable action that happens somewhere Google can't see — off your website, after the click. Google's own docs describe it as an ad that starts a customer down a path ending in a sale in the offline world — at your office, or over the phone. For a contractor it's simpler than that: an offline conversion is a booked job, ideally with the invoice amount attached.

The mechanics run on a breadcrumb. When someone clicks your ad, Google appends a unique click ID — the GCLID — to your landing page URL. Store that ID with the lead, and when the job books days later, send it back to Google along with the job's value. Google matches the ID to the original click, and suddenly the platform knows that "furnace replacement near me" produced $6,400 while "free furnace inspection" produced voicemails. We unpacked the ID itself in our GCLID explainer; this post is about what you do with it.

Why is home services the textbook case for offline conversions?

E-commerce doesn't need any of this. The purchase happens on the website, in the same session as the click, and Google watches it happen. A service business is the opposite on every axis.

  • The sale closes offline, days later. The click produces a call or a form fill; a CSR books the job; a tech shows up Thursday; the invoice gets signed in a kitchen. The website witnessed exactly one step of that.
  • Ticket sizes can vary by 100x. An $89 tune-up and a $15,000 system replacement look identical to Google if all you report is "lead." Without revenue attached, the platform optimizes for whichever is easier to generate — and cheap leads are always easier.
  • Most of it happens by phone. Call-tracking analyses consistently find that the majority of high-intent home services contacts come in by phone, and a phone call doesn't carry a click ID unless you make it (more on that below).

Put those together and the default state of a contractor's ad account is Google optimizing enthusiastically toward the wrong thing, with no way to know better. That's not a Google failure — it's a data gap only you can close, because only you know which leads became jobs.

How does booked-job data actually get back to Google?

Three paths, in ascending order of how much of the work someone else does.

  1. Manual click ID import. Export booked jobs from your CRM with their stored GCLIDs, put them in Google's template with a conversion name, time, and value, and upload on a schedule — Google's setup guide walks through the template and the process. This genuinely works. It also means someone owns a spreadsheet forever, and the data lands days late — which slows down everything the data is supposed to improve.
  2. Enhanced conversions for leads. For leads where no click ID got captured — most phone calls, some form setups — Google can match on a hashed email or phone number the customer already gave you instead. "Hashed" means scrambled before upload, so you're not handing Google a readable customer list. Think of it as the fallback matcher that rescues conversions the GCLID path drops.
  3. A native CRM integration. Software that watches your CRM for booked jobs and pushes each one to Google automatically, matched to its click ID, with revenue attached. No spreadsheet, no lag, nobody babysitting it. If you run ServiceTitan, we've written up exactly how the ServiceTitan-to-Google-Ads loop works.

What actually changes when Google bids on booked jobs?

Smart Bidding — Google's automated bidding — trains on whatever conversions you feed it. Feed it form fills and it buys you form fills. Feed it booked jobs with dollar values and the same algorithm starts shifting budget toward the keywords, audiences, times of day, and zip codes that produce revenue. Nothing else about your account has to change; you changed the definition of success.

  • Keywords get exposed. Every account has terms that generate cheap leads that never book. They look great at cost per lead and terrible at cost per booked job — offline data is the only thing that shows you which is which.
  • Revenue starts outbidding volume. With values attached, Google can prefer one $12,000 install over thirty $0 voicemails. Value-based bidding is impossible in a business where the value shows up offline — unless you send it.
  • Your reporting matches your P&L. Cost per booked job is a number an owner can act on. Cost per lead is a number an agency can hide behind.

Set expectations honestly: the improvement is not instant. Automated bidding needs a steady stream of conversions to learn from, and the common experience among practitioners is that re-optimization plays out over weeks, not days. Low-volume accounts should upload every booked job they can — thin data slows learning more than anything else.

This closed loop is what Peach automates: every booked job is matched to its click ID (gclid for Google, fbclid for Meta, msclkid for Bing) and its revenue is pushed back to the platform within about a minute of the booking. The full architecture — including how phone-booked jobs get matched — is on the lead attribution page.

What goes wrong in practice?

  • Phone calls with no click ID. The biggest leak in the trades. The fix is call tracking with dynamic number insertion: each ad visitor sees a unique tracking number, so the call inherits the session — and its click ID.
  • Uploading counts instead of revenue. Reporting "job booked" with no value beats nothing, but it still hides the tune-up-versus-install gap. You've upgraded from bidding blind to bidding one-eyed.
  • Stale uploads. A weekly or monthly spreadsheet run means Google is always learning from old data. The tighter the loop, the faster bidding adjusts to what's working this month, not last quarter.
  • Double counting. If the form fill fires an online conversion and the booked job uploads later as a second one, you're inflating your own numbers. Demote the online action to observation-only and bid on the booked job.

If you take one action from this post: pull last month's booked jobs, match whatever click IDs you captured, and do a single manual upload. It costs an afternoon, and it turns the argument above into your own account's numbers. Automate it once you've seen what it shows you.

FAQ

What counts as an offline conversion for a home services company?

Any revenue event that happens after the ad click, away from your website: a booked job, a sold estimate, a completed and invoiced job. Pick the stage closest to real money that you can report reliably, and report it consistently. Most contractors start with the booked job, then add invoice value once the pipe is working.

What's the difference between offline conversion import and enhanced conversions for leads?

Offline conversion import matches on the click ID (GCLID) you captured and stored when the lead came in. Enhanced conversions for leads matches on a hashed email address or phone number instead, which rescues conversions where no click ID was captured — common in phone-first businesses. Google positions the second as a supplement to the first, not a replacement.

Does offline conversion tracking work for phone calls?

Yes, but only if the call can be tied back to a click. Call tracking with dynamic number insertion shows each ad visitor a unique phone number, so the inbound call inherits the click ID and the eventual job uploads like any other conversion. Without it, phone-booked jobs stay invisible to the ad platform no matter how good your uploads are.

Do I need special software, or can I upload a spreadsheet?

A spreadsheet works — Google supports both one-off and scheduled file imports. The trade-offs are labor, lag, and match errors, and all three grow with volume. Manual uploads are a fine way to prove the value; automation is how you keep it once the account depends on the data.

Want to skip the setup?

We do the CRM integration, ad-platform conversion sync, and booking-form setup for you. Most operators are live in 5–10 business days.

All articles