Jobber does not send conversions to Google Ads on its own, so a Jobber shop gets booked jobs and revenue into Google Ads by capturing the GCLID when the lead arrives, storing it on the Jobber record, and importing the later outcome as an offline conversion. Jobber's native tracking stops at Google Analytics 4 events on its request and booking forms, UTM lead sources, a Local Services Ads booking integration and a CallRail call sync. The bridge to Google Ads bidding is something you build, usually with Zapier or the Jobber API.
This is the opposite of ServiceTitan, which ships a Google Ads integration that posts calls and booked jobs for you (we cover that setup in ServiceTitan Google Ads conversion tracking). With Jobber, every link is yours to wire. Names below follow Jobber's and Google's help centers at the time of writing.
What Jobber tracks natively.
Four things matter for paid search. None of them, as documented, writes a GCLID into Jobber or sends a conversion to Google Ads.
- GA4 on request and booking forms. Under the Gear icon, Settings, Requests and bookings, each form in the Forms section has an Add tracking option for your GA4 tracking code. A submitted request sends generate_lead, which you must mark as a key event in GA4. An online booking sends purchase.
- UTM lead sources. Add utm_source (plus utm_medium, utm_campaign, utm_term or utm_content) to a request or online booking link and Jobber fills the client's lead source automatically. Results show in the clients report under Insights, Reports, Clients.
- Local Services Ads booking. The Jobber LSA integration lets a searcher book an open slot from your Local Services Ad and sends you a booking notification in Jobber. It is a booking tool, not a conversion feed into your Google Ads search campaigns.
- CallRail. The App Marketplace integration sends call data only. CallRail matches the caller to a Jobber client by phone number or creates one, adds source, medium, campaign and keywords, and creates or updates a request with the call details and recording link. Form submissions and texts do not sync.
Two details from Jobber's GA4 article cause most gaps. Hosted forms live on clienthub.getjobber.com, so add that domain to GA4 cross-domain measurement. Forms embedded with the HTML embed code run in an iframe that depends on third-party cookies, which most browsers block, so their tracking may not be reliable.
What Google Ads needs to count a booked job.
Google Ads credits a job to an ad only if the job carries an identifier it can match to the click. Google's rules:
- Auto-tagging on. In Admin, Account settings, Auto-tagging, check Tag the URL that people click through from my ad. Without it there is no GCLID in the landing page URL.
- The GCLID stored with the lead. Google's offline import guide uses a hidden form field filled by a script that saves the GCLID in a cookie or local storage on every page, then stores it with the prospect in your lead system. The GCLID is case sensitive.
- An import conversion action. In Goals, Conversions, Summary, select + Create conversion action, then Import, then CRMs, files, or other data sources. Under Goal and action optimization choose Qualified lead or Converted lead. Google says to wait 4 to 6 hours after creating the action before the first upload.
- The 90 day window. A GCLID conversion must land within 90 days of the click or it is not imported.
- Enhanced conversions for leads where you can. Google now recommends starting there for new setups. It matches hashed email or phone from your site's form to the conversions you upload, and Google still recommends sending the GCLID when you have it. It is required if you do not use the tag to collect user data.
Google also states that from June 15, 2026, offline conversion and enhanced conversions for leads uploads move to the Data Manager API and are blocked in the Google Ads API. Our working notes on offline conversions from your CRM cover file, connector and API uploads in more depth.
Which Jobber events to send back.
Jobber's workflow gives you natural stages: request, quote, job, invoice. Google gives you two lead goals. We map them like this.
- Qualified lead: a request that becomes a quote, or a quote that is approved. In Zapier terms that is New Quote Created or Quote Approved.
- Converted lead: a job that is booked or closed. New Job Created or Job Closed.
- Value: the job or invoice total, sent with the converted lead so value based bidding has real dollars to work with. New Invoice Created or Invoice Updated carry the invoice record.
- Raw lead: the request itself. Keep it secondary once downstream actions have volume.
Pick one primary action per stage you want bidding to chase. If a site form tag, a GA4 generate_lead import and a Zapier request upload are all primary, one lead counts two or three times.
Practical routes to close the loop.
- Your own site form, then Jobber. A form on your domain with a hidden gclid field creates the client and request in Jobber through Zapier (Create Client, Create Request, Add Note to Request) or the Jobber API, with the GCLID written onto the record. The most reliable path, because the form and the click ID share a domain.
- Hosted Jobber form with tagged links. UTMs set the lead source and GA4 generate_lead counts the form, but no GCLID reaches the Jobber record. Enhanced conversions for leads, which matches on email or phone, is the realistic upgrade.
- CallRail for phone leads. CallRail holds the click data for tracked calls and syncs the caller into Jobber. Qualified calls go to Google Ads from CallRail, covered in the CallRail Google Ads integration.
- Zapier sync from Jobber stages. One Zap per stage: a Jobber trigger, a lookup of the stored GCLID or the client's email and phone, then Google Ads Send Offline Conversion with the conversion action, timestamp, identifier and value. Zapier publishes a template pairing New Request Created with Send Offline Conversion; later stages follow the same pattern.
Where to store the GCLID in Jobber.
Jobber's custom fields help article lists Clients, Properties, Quotes, Jobs, Invoices and Team members as places for custom fields. Requests are not on that list, so we do not count on a request level field. Field types include Text, which holds a GCLID cleanly. Custom fields are available on select plans.
Our default is a Text custom field on the client, filled when the lead is created. A transferable field on a quote carries forward to the job and the invoice, but Jobber notes transferable fields only move information forward, never back, and cannot be switched on after creation. Set them up before the first paid lead, not after. Without custom fields, a request note holding the GCLID works but is harder to read back in a Zap.
Where the loop breaks.
- No GCLID at the start: auto-tagging off, or a redirect or form builder that drops the gclid parameter before the script saves it.
- Embedded Jobber form: the iframe cannot read your site's cookie and its GA4 events depend on third-party cookies, so both click ID capture and form tracking fail quietly.
- GCLID never written to Jobber: the Zap that creates the client or request maps name and phone but not the hidden field.
- Wrong record: the GCLID sits on the request or a note, while the downstream Zap reads the job or invoice and finds nothing.
- Late uploads: jobs closed more than 90 days after the click are not imported, which hits long sales cycles like remodels hardest.
- Double counting: several primary actions measuring the same lead.
Diagnose it top to bottom.
Symptom, cause and fix.
| Symptom | Likely cause | Fix |
|---|---|---|
| Requests show in Jobber, zero imported conversions | No GCLID on the Jobber record | Capture gclid in a hidden field on your own form and map it into a client custom field |
| GA4 shows no generate_lead from the website form | Embedded iframe form blocked by third-party cookie rules | Link to the hosted form with cross-domain measurement, or replace it with a form on your domain |
| Lead source reads Google but nothing reaches Google Ads | UTMs set the lead source only, no click ID | Keep the UTMs, add GCLID capture or enhanced conversions for leads |
| Uploads rejected for old jobs | Click older than 90 days | Send an earlier stage such as Quote Approved, and refresh the GCLID on repeat requests |
| Conversions roughly double the real jobs | Form tag, GA4 import and Zap uploads all primary | Keep one primary per stage, set the rest to secondary |
| Converted leads arrive with no value | Zap fires on the job, value lives on the invoice | Trigger on the invoice and map its total to Value |
Does Jobber integrate with Google Ads?
Not for conversions, based on Jobber's help center at the time of writing. Jobber connects GA4 to its request and booking forms, supports UTM lead sources, books jobs from Local Services Ads and syncs CallRail calls. Sending booked jobs to Google Ads takes Zapier or the Jobber API plus a stored GCLID.
Does Jobber capture the GCLID?
Jobber's documentation does not say it does. Its UTM tracking lists utm_source, utm_medium, utm_campaign, utm_term and utm_content. We capture the GCLID on our own site form and write it to a client custom field.
Can I track Jobber request form conversions in Google Ads?
Yes, through GA4. Add your GA4 code with Add tracking in Settings, Requests and bookings, mark generate_lead as a key event, then import that key event into Google Ads. Embedded iframe forms may not track reliably.
Which Zapier triggers does Jobber offer for conversions?
Jobber's Zapier app includes New Request Created, New Quote Created, Quote Approved, New Job Created, Job Closed, New Invoice Created and Invoice Updated, among others. Pair them with the Google Ads Send Offline Conversion action.
How long do I have to upload a Jobber job to Google Ads?
90 days from the ad click for GCLID based imports. For jobs that close later, send an earlier stage such as an approved quote as the conversion.