Google Ads conversion tracking for local service businesses
A local business gets found in a map pack, and the customer taps call or directions without ever loading the website — which means the majority of conversions happen somewhere your tags cannot reach. 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 local service businesses, and what Google Ads specifically needs to accept it.
Free30 minutesNo obligation
Specific to Google Ads × Local services
Google Ads for local services: call conversions, then completed jobs
Track a local service business on Google Ads with call conversions from call assets and a website forwarding number, a call-duration threshold that filters spam, and gclid, gbraid and wbraid stored on the job. Then import booked and completed jobs as offline conversions with invoice value, counted once per click.
Google is where most local service demand starts, and on mobile it starts with a call. Calls from call assets and calls from the website's Google forwarding number are separate conversion actions with their own duration threshold, and the threshold is where accounts go wrong. Leave it too low and wrong numbers, spam and solicitors count as leads; check what yours is set to and raise it to the length of a real booking call.
The value step is a job import. When a call or form becomes a booked job in your field service software, write the gclid, gbraid or wbraid to that job and upload it as an offline conversion. Upload the completed job again later with the invoice amount as a separate action. Most local jobs close well within 90 days, so unlike longer-cycle businesses, completed revenue can genuinely drive bidding here.
Keep Local Services Ads and Performance Max in mind when reading results. LSA leads are reported in their own dashboard and are not the same as search-ad conversions, and PMax can serve to Maps placements where the customer taps call from a location asset. Confirm which conversion actions each campaign type is counting before comparing cost per job across them.
Google Ads · Local services · what breaks
Why Google Ads under-reports for local service businesses
- 01
Most conversions never touch the website
Map pack calls and direction requests.
- 02
Organic and paid local traffic blended
Two channels, one number.
- 03
Website forms treated as the whole picture
The smallest slice of demand.
- 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 · Local services · the fix
What working looks like — Google Ads · Local services
Profile actions measured alongside site conversions
Calls, directions, messages.
Calls attributed to campaigns
The dominant conversion path.
Completed jobs as the source of truth
Not enquiry count.
Google Ads · Local services · architecture
How Google Ads and local service businesses actually connect
- 1
The conversion in local service businesses
Discovery, call or direction request, job booked, job completed. Most of the funnel happens off your site, which is the defining constraint.
- 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
your scheduling system's completed jobs and invoices.
- 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 · Local services · events
The conversion map for local service businesses
Four stages, most of them outside your website entirely.
| Event | What it means here |
|---|---|
| Profile action | Call, directions or message from the map pack. Off-site, measurable through the profile. |
| Website enquiry | Browser-side. The minority path for most local businesses. |
| Call connected | Call tracking with campaign attribution. |
| Job booked | Server-side from your scheduling system. |
| Job completed | Server-side with invoice value. The conversion that counts. |
Google Ads · Local services · diagnose
Diagnostic order — Google Ads · Local services
- 01
Count records carrying gclid, gbraid and wbraid
- 02
Profile actions unmeasured
The largest conversion source for many local businesses, entirely absent from reporting.
- 03
Organic and paid calls sharing a number
So neither can be evaluated.
- 04
tel: links with no event
Mobile is most of the traffic and the tap goes unrecorded.
- 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 · Local services · prove
How it gets proven — Google Ads · Local services
Source of truth
your scheduling system's completed jobs and invoices
- Profile actions confirmed appearing in reporting.
- Separate numbers or pools confirmed for organic and paid.
- Click-to-call events confirmed on a real mobile device.
- Completed jobs reconciled against your own records for a closed month.
- The match rate on the upload, not the success message read directly, not inferred from an upload succeeding.
Google Ads · Local services · free audit
What we check in the free audit
- Count records carrying gclid, gbraid and wbraid
- Profile actions unmeasured
- Organic and paid calls sharing a number
- tel: links with no event
- Read the match rate on the upload, not the success message
Checked against
your scheduling system's completed jobs and invoices
Free30 minutesNo obligation
Google Ads · Local services · when not to buy
When you don't need this — Google Ads · Local services
- If Google Ads already reports conversions that reconcile against your scheduling system's completed jobs and invoices 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 · Local services · what we deliver
What gets built — Google Ads · Local services
Google Business Profile actions tracked
Calls, direction requests, website clicks.
Separate tracked numbers for organic and paid
Or separate pools.
Click-to-call events on every template
Including the sticky mobile bar.
Completed jobs reconciled from your own records
The number that matters.
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 your scheduling system's completed jobs and invoices. Miss it and we keep working at no cost.
From $400 · See packages
FAQ
Google Ads · Local services questions, answered
Long enough to exclude wrong numbers and spam, typically the length of a short booking conversation. Check your account's threshold and compare it with call logs before trusting the conversion count.
Yes, if the job record carries the gclid, gbraid or wbraid from the original click. Upload it as an offline conversion with the invoice value within the 90-day window.
Profile actions — calls, direction requests, website clicks — are available and almost nobody reports them. They're often the largest conversion source a local business has.
Separate tracked numbers or pools. Sharing one number makes both channels unevaluable, which is the most common state we find.
Not if the canonical number stays in your profile and citations, with insertion swapping only the on-page display.
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 your scheduling system's completed jobs and invoices. An upload that succeeds is not an upload that matched.
More on Google Ads · Local services
- Local servicesConversion tracking for local businesses, where most conversions bypass the webs…
- Google Merchant Center local inventoryLocal inventory ads get clicks. Which store actually made the sale?
- Google Ads · CannabisGoogle Ads conversion tracking for cannabis businesses
RELATED GUIDES
More for local service businesses: other angles on the same outcome
- Local servicesConversion tracking for local businesses, where most conversions bypass the website
- Google Ads · Auto detailingGoogle Ads conversion tracking for auto detailing businesses
- Google Ads · Pet careGoogle Ads conversion tracking for pet grooming and boarding businesses
- Google Ads · Online → in-storeHow to track online research to in-store purchase for Google Ads
- Google Ads × POS SystemHow to reconcile Google Ads against your point-of-sale system
- Sanity → Google AdsConnecting Sanity to Google Ads
- TimeTapConversion tracking for TimeTap's embedded scheduler
- Google Ads · TowingGoogle Ads conversion tracking for towing companies
Free · 30 min
Get Google Ads reporting what local service businesses actually earn
Free30 minutesNo obligation
