Your Ads Count Calls. Offline Conversion Tracking Counts Paid Jobs.

Google Ads counts a $95 drain call and a $7,400 repipe as the same win. Here's how to send the real outcome back so your ad account learns which clicks paid.

Your Ads Count Calls. Offline Conversion Tracking Counts Paid Jobs.

Two calls came in from the same Google ad on the same afternoon. One wanted a $95 drain cleaning. The other signed off on a $7,400 repipe. Google Ads counted them as the same thing: one conversion each.

Offline conversion tracking fixes that. It takes what happened after the call (the estimate, the booked job, the paid invoice) and sends it back to Google Ads so the ad account learns which clicks turned into money. This post covers that last leg, from your CRM back to the ad platform. Getting the lead counted in the first place is a separate job: see tracking form leads in GA4 for web forms and setting up call tracking on your Google Business Profile for phones.

If you don't run Google Ads, you can skip this one. It only matters when you're paying for clicks and want to know which ones paid you back.

Why a lead count lies to you

Google Ads can count a form fill or a call on its own. What it can't see is whether the caller wanted a $99 repair, a $9,000 replacement, or directions to your competitor.

So it treats every lead the same. And when you let Google bid for you, it goes hunting for more of whatever you told it counts. Tell it every call is a win and it'll find you cheap calls. Lots of them. Some will be junk.

An offline conversion import sends the later outcome from your records to Google. Google ties that outcome back to the original ad click. The conversion time you upload is when the job closed, not when the click happened, and that's the point: Google finally sees the ending.

Pick outcomes that mean money

Don't send every little status change back. Pick two or three milestones and set each one up as its own conversion action in Google Ads. For most service businesses, that looks like:

  • A qualified lead: someone in your service area who wants work you actually do
  • A booked estimate or appointment
  • A completed job, valued at the final invoice amount

A tire-kicker asking for a price isn't the same as a homeowner who approves a $6,500 HVAC install. Your ad account should know the difference.

Fix the office handoff before you touch Google Ads

Most broken offline tracking isn't Google's fault. It's a front office running on sticky notes, a shared inbox, and three spreadsheets that don't agree with each other.

Get the handoff right first. Then connect the platforms.

Save the click ID when the lead arrives

Every Google Ads click carries a Google click ID, or GCLID. It's the thread that ties a paid job back to the ad. Auto-tagging has to be turned on in Google Ads for it to exist, and even then it won't land in your CRM by itself.

Your web form can catch it in a hidden field, and a call-tracking setup can pass it along with the caller's number. The mechanics of both live in the companion posts linked above. What matters here is the rule: once the GCLID (or its cousins, GBRAID and WBRAID) is on the lead record, nobody touches it.

Don't let staff overwrite it with "Google." That label is useless. You need to know if the lead came from a paid ad, your Google Business Profile, a referral, or somewhere else.

Require five fields on every lead

A basic CRM that everybody updates beats a fancy one nobody opens. Make these fields mandatory:

  • Source and campaign
  • Click ID, when there is one
  • Lead date, and later the close date
  • Status: qualified, booked, closed, or lost
  • Final job value

The simplest rule we've seen work: no job gets marked complete without a source and a dollar amount. Your office manager doesn't need a marketing degree. They need a short process they can follow on a slammed Tuesday.

If your CRM can't tell you where a paid job came from, your ad report is guessing.

Two ways to send outcomes back to Google Ads

Google gives you two routes. Which one fits depends on how leads reach you and how clean your records are.

Standard GCLID import

Save the GCLID when the lead comes in. When the job closes, upload the conversion action name, the conversion time, the GCLID, and the job value. The action name has to match the one in Google Ads exactly, down to the capitalization.

Google gives you 90 days from the ad click to get the upload in. Miss that and the sale won't match.

That's why speed matters. A plumber can upload a finished job within days. A remodeler with a two-month sales cycle should upload the booked estimate as soon as it happens, then the signed contract when it lands, so neither misses the window.

Enhanced conversions for leads

Enhanced conversions for leads matches on customer details instead: an email address or phone number, hashed (scrambled into a code) before it leaves your system. It's the backup when a click ID goes missing somewhere between the call, the estimate, and the CRM. Google's own guidance on enhanced conversions for leads still says to send the GCLID whenever you have it, so this isn't a reason to stop saving it.

Two cautions. The clock is shorter: Google won't import enhanced lead uploads more than 63 days after the last click. And you're handling customer contact data, so collect it with consent and follow Google's data rules. Hashing is not a way around privacy obligations.

One more thing if your CRM vendor or a developer is building a new connection: Google is now pointing new offline conversion integrations to its Data Manager API instead of the older Google Ads API route. Google's developer announcement has the details. If you're uploading a spreadsheet by hand, nothing changes for you.

Phone calls need two conversion actions, not one

Calls are where attribution gets messy. They're also where service businesses make most of their money.

A call from an ad might become a same-day repair. It might be a wrong number, or a homeowner 90 minutes outside your service area. So don't let the call itself be the only thing Google counts.

Set up one conversion action for a qualified call and another for a paid job. The qualified call can carry a small placeholder value. The paid job gets the real invoice amount. Now you can see two things: whether the ads bring in workable leads, and whether those leads turn into revenue.

Keep the call time and the close time as separate fields in your CRM. Offline tracking needs both to connect the first ring to the final invoice.

Running Microsoft Ads too? Different ID, same idea

Microsoft Advertising works the same way with its own names. The click ID is the Microsoft Click ID (MSCLKID), and uploads go to an offline conversion goal you create in the account. Save the MSCLKID on the lead record just like the GCLID.

Microsoft runs two clocks. The conversion window on your goal decides how long after the click a sale can still count. A separate 90-day limit decides how far back an upload can reach. A 30-day goal window means the job has to close within 30 days of the click, no matter when you upload it.

Why uploaded jobs go missing

Missing credit isn't mysterious. When a closed job doesn't show up, check these first:

  • The CRM never saved the GCLID or MSCLKID.
  • Someone changed the conversion time to the date the invoice got paid, and it slid past the window.
  • The conversion action name in the upload doesn't exactly match the one in the ad account.
  • The conversion time is earlier than the click. Google rejects those outright.
  • The lead record has no clean email or phone number for enhanced matching.

Also give it time. Imported conversions take about three hours to show up in Google Ads. Do not re-upload a batch because it isn't there yet.

Trace five jobs every week

Pick five closed jobs. Follow each one from the ad click or call, to the CRM record, to the invoice, to the upload status.

It takes ten minutes. It catches broken forms, staff workarounds, and late updates before they wreck a month of data.

Keep paid data in its own lane

Offline conversion tracking tells you which ad clicks paid. It says nothing about your Google Business Profile, your reviews, or where you show up in the Map Pack. Keep those numbers in a separate column and compare lead quality by source.

How to lay that out on one page is its own post: see the local SEO reporting dashboard. And if you're weighing whether ad spend or organic work pays back better, measuring local SEO ROI walks through the math.

One bidding note. For a low-volume shop, start by feeding Google the qualified-lead action only. Once your CRM data has been steady for a few weeks, add closed jobs and their values. Don't change bid settings every few days. Let clean data pile up first.

Key takeaways

  • Offline conversion tracking tells Google Ads which clicks became paid jobs, not just which ones rang the phone.
  • Save the GCLID on every paid lead and lock it so nobody overwrites it.
  • Use separate conversion actions for qualified leads and closed jobs, and value closed jobs at the invoice amount.
  • Watch the clocks: 90 days for a standard Google import, 63 days for enhanced lead uploads, and a 90-day outer limit on Microsoft.
  • Trace five closed jobs a week before trusting any automated report.

Frequently asked questions

Does offline conversion tracking help my local rankings?

No. It changes how your ads bid, not where your Google Business Profile ranks. Map Pack placement comes from your profile, reviews, and relevance to the search. That's covered in how Google Maps rankings work.

Can I upload offline conversions without a developer?

Yes. Google Ads accepts a spreadsheet upload from the conversions section of the account, and it can pull from a Google Sheet on a schedule. For a one-location shop closing a few dozen jobs a month, a weekly spreadsheet is plenty.

What if the same customer books a second job later?

You can upload more than one conversion for the same click, as long as each has a different conversion time and the action's counting setting is "every." If you upload the exact same record twice, Google keeps one and drops the duplicate.

Better data beats prettier reports

A dashboard full of clicks doesn't cover payroll. Paid jobs do. Offline conversion tracking is how you find out which clicks produced them.

Start small. Save the click ID, keep the CRM honest, and upload the real outcome every week. Curve handles the local SEO side, so the calls that don't come from ads keep coming too.