Google Ads and ServiceTitan
Why Google Ads Keeps Buying Phone Taps, and How ServiceTitan Revenue Changes Its Mind
Google's bidding system is a fast learner with one flaw: it believes whatever you call a conversion. Tell it a form fill is a win and it will buy you form fills. Tell it which clicks became booked, finished, paid jobs in ServiceTitan, and it starts shopping for those instead.
October 26, 2026 · 12 min read
The short answer
To track Google Ads conversions with ServiceTitan, the website must capture each visitor's Google click ID (GCLID) and carry it into ServiceTitan with the call, booking or lead form. ServiceTitan's Marketing Pro Ads integration then sends booked jobs (and, with Ads Optimizer, completed-job revenue) back to Google Ads as named conversion actions, so bidding learns which clicks became paid work.
On this page
- Smart bidding is only as smart as its scorecard
- The conversion actions ServiceTitan already knows how to send
- Where the click ID falls out of the truck
- Bookings that ride with their click from the website to the invoice
- Enhanced conversions, and the upload route Google closed in June
- Seven steps from auto-tagging to revenue in the bid
- Who builds the website half, and what it costs
Smart bidding is only as smart as its scorecard
Google Ads gives every ad click its own ID and then watches what happens next. Its automated bidding chases whatever the account counts as a conversion. In most contractor accounts that scorecard was set up years ago and never reopened: a tap on the phone number, a form submission, a visit to the thank-you page. Each is a hint. None is a job. A late-night tap from someone comparing water heater prices scores exactly the same as a call that turns into a full system replacement.
The cure is not another tag. It is a different kind of conversion, one that happens inside ServiceTitan days later, after a dispatcher books the work and a technician closes the invoice, and then travels back to Google attached to the click that started it. Google's help center describes the mechanism plainly: you store the Google Click ID with the lead and later give it back to Google Ads with the conversion details. Everything on this page is about keeping that one ID alive long enough to make the trip.
Google will buy you more of whatever you tell it to count, so count the invoices.
The conversion actions ServiceTitan already knows how to send
ServiceTitan has this built in, as part of Marketing Pro Ads. Its Google Ads integration article says the setup "isn't complete until Google Analytics and Dynamic Call Tracking using DNI are also configured," and it needs account configuration on ServiceTitan's side. When an ad visitor calls a DNI number, ServiceTitan stores the GCLID, and if the call is classified as a Lead it "sends it as a conversion into Google Ads using the GCLID." For accounts on ServiceTitan Max, which ServiceTitan calls its flagship package and described as in limited release as of June 2026, the Google Ads integration is included in the subscription.
| What ServiceTitan reports | The website's part | |
|---|---|---|
| ServiceTitan Inbound Call - Website | Calls from website visitors, tracked through Dynamic Number Insertion | DNI running on every page, with the number shown as text a phone can tap |
| ServiceTitan Inbound Call - Extension and ServiceTitan Lead Call - Extension | Calls placed from the ad itself, as the names indicate | None; these calls never touch the site |
| ServiceTitan Calls Conversion Action | Listed by name in the help article without further detail | Ask ServiceTitan which calls your account counts here |
| ServiceTitan Booked Job - Originated from Website | Jobs booked from a website visit; Scheduling Pro jobs from Google Ads are sent under this name | A scheduler install that keeps the source, not a link that reloads the page |
| ServiceTitan Integrated Bookings | Bookings with a GCLID sent through the "Marketing WebBookingAttributions API endpoint" | A custom booking flow that sends the click ID with every booking |
| ServiceTitan Integrated Lead Forms | Leads with a GCLID sent through the "Marketing Ads Lead Form API endpoint" | Every form posts its click ID along with the name and phone |
| ServiceTitan Completed Jobs Conversion Action | The completed job's "Total Revenue" as the conversion value, with Ads Optimizer | Nothing new, provided the job carried its click from the start |
| JVP (Job Value Predictor) | Predicted revenue for booked jobs, before the invoice exists | Same as above |
Read the right-hand column again. Most of the list depends on something the website does before ServiceTitan ever sees the customer. The Google side is configured once. The website side breaks every time someone adds a landing page, swaps a form plugin or pastes a booking link into a button. The broader menu of what a site can feed ServiceTitan is on our ServiceTitan integration hub.
Where the click ID falls out of the truck
A GCLID is a parameter on the landing page address. Google's auto-tagging adds it, and Google says auto-tagging "is also required for businesses that want to track offline conversions." Then it sits in the address bar for exactly one page load. Unless the site saves it, the ID is gone by the second click. These are the usual places it disappears:
- The browsing visitor. Someone lands on the home page, reads three service pages and books on the fourth. If the site never stored the ID on arrival, the booking reaches ServiceTitan clean, polite and anonymous.
- The link-style scheduler. ServiceTitan itself warns that the URL-parameter install of Scheduling Pro reloads the page "and can disrupt lead source tracking," and recommends custom code instead. Our online booking guide covers both installs.
- The inbox relay. The form emails a shared inbox and somebody retypes the lead into ServiceTitan. Retyping keeps the name and phone number. It has never once kept a click ID.
- The other click parameters. ServiceTitan's web-session object has fields for
gclid,gbraidandwbraid. A site that saves only the first leaves the other two empty. - The second domain. ServiceTitan's DNI needs a configuration for each website, so a sister brand or a campaign landing page on its own domain needs its own setup. Accounts in Canada must use Manual DNI.

The fix on a custom site is small and boring, which is the right kind of fix. On the first page view, a first-party script reads the click parameters and UTM tags and keeps them with the landing page and referrer for the rest of the visit. Every form and booking sends that bundle to the site's server. Those are the exact fields ServiceTitan's WebSessionData object asks for: landingPageUrl and referrerUrl are required, and gclid, gbraid, wbraid, the UTM fields and googleAnalyticsClientId are optional. If your tracking is already a mess, our tracking problems guide is a good place to start counting the leaks.
Bookings that ride with their click from the website to the invoice
When DataCram builds a booking flow, the server does two things in order. It creates the booking with ServiceTitan's Bookings_Create call under the contractor's booking provider tag, and it attributes that booking to the visitor's web session. In the API reference, the Marketing Ads family lists POST /web-booking-attributions ("Attributes a web booking to a web session") and POST /web-lead-form-attributions ("Attributes a web lead form to a web session"). ServiceTitan's Google Ads article counts "Bookings received from the API or Zapier" and "Lead forms received from the API or Zapier" as Leads, which is how a website booking earns its place on the conversion list.
Note what the website does not do. ServiceTitan's main API has no webhooks today (its FAQ says V2 webhooks are "currently being developed"), so the site does not sit and wait to hear about the job. It sends the booking with its click attached, and ServiceTitan's own integration reports the outcome to Google when the job is booked and when it is completed. One system talks to Google about jobs. That is simpler, and it is also harder to double count. The field-by-field version lives on our web forms page and the API integration page.
Enhanced conversions, and the upload route Google closed in June
Google describes enhanced conversions for leads as "an upgraded version of offline conversion import" that "uses user-provided data, such as email addresses." It is a second way to match a lead to an ad, useful when a click ID went missing. Google still advises continuing to import GCLIDs, so treat it as a belt to go with the suspenders. Since April 2026, enhanced conversions for web and for leads share a single on/off setting, and Google Ads accepts user-provided data from website tags, Data Manager and API connections.
The bigger change is in the pipes. Google's help center states: "Starting June 15, 2026, offline conversions import and enhanced conversions for leads uploads will be migrated to the Data Manager API and blocked in the Google Ads API." If ServiceTitan's built-in integration does all of your reporting, ask your ServiceTitan contact how your account sends conversions now. If a home-built script does it, check the script first. A quiet uploader that has been posting through the Google Ads API for years is exactly the kind of thing that stops without telling anyone.
The built-in route fits when
- You run Marketing Pro Ads, or Max, and its conversion list covers what you sell
- DNI and Google Analytics are configured for every website you own
- The website sends bookings and forms to ServiceTitan with their click IDs
A custom upload fits when
- You do not run Marketing Pro Ads but still want revenue in Google Ads
- You need a conversion ServiceTitan's list does not include
- Your ServiceTitan package allows API access and your admin approves the app
A custom upload reads completed jobs through ServiceTitan's export APIs, where changes appear 15 minutes after they happen unless includeRecentChanges is set to true, matches them to the stored click IDs, and posts them to Google through the Data Manager API. It runs within ServiceTitan's published limit of "600 calls per 10 seconds per application per tenant."
Seven steps from auto-tagging to revenue in the bid
This is the order we follow on a contractor's account. Skipping ahead to step seven is the most popular mistake in the trade, because revenue reporting looks impressive in a meeting even when it is matched to nothing.
- 1
Turn on auto-tagging in Google Ads
Without it there is no GCLID on the landing page, and nothing downstream can work. Check it on every account the company runs, including the one a previous agency opened.
- 2
Finish the ServiceTitan side
Connect the Google Ads integration in Marketing Pro Ads, configure Google Analytics, and set up Dynamic Call Tracking using DNI for each website. ServiceTitan treats all three as one setup.
- 3
Capture the click on arrival
Save
gclid,gbraid,wbraid, UTM tags, landing page and referrer in first-party storage on the first page view, and keep them for the whole visit. - 4
Send every booking and form from the server
Create the booking or lead in ServiceTitan, then attribute it to the web session. Validate on the server first, and queue and retry any send that fails, so a busy afternoon never drops a lead.
- 5
Let Auto-Map name the campaigns
ServiceTitan's Auto-Map creates a ServiceTitan campaign with the same name as each Google Ads campaign. Keep names stable, so a month of jobs is not split across two spellings.
- 6
Test with a real click
Click a live ad, book a test appointment and confirm the booking in ServiceTitan shows the right campaign. Then dismiss the test booking so it never reaches the board.
- 7
Add revenue and read it patiently
Turn on the Completed Jobs action, and JVP if you use it. Google dates conversions to the ad impression while ServiceTitan shows the transaction date, so last week's numbers keep moving for a while.
If the account itself needs work before any of this is worth measuring, start with our Google Ads problems guide and the seven biggest sources of Google Ads waste. Bidding on revenue does not rescue a campaign aimed at the wrong searches.
Who builds the website half, and what it costs
DataCram is a web studio in San Antonio, Texas. We build custom Next.js sites with our own content system, Athena CMS, and we run PPC advertising for businesses across the US. For HomeService WebApp, a contractor command center we redesigned, the API layer "syncs jobs and estimates bidirectionally with ServiceTitan." For Bleuwave Home Services in the Phoenix metro, "an on-page assistant books straight into ServiceTitan." Both are on our work page.
Every integration we build follows the same rules: field mapping agreed before code, queues and retries, idempotent writes so a retried booking never lands twice, logs a person can read, and the contractor's own credentials throughout. The tracking half alone is our conversion tracking setup service. The connection itself is described on our API integrations page, where a two-system connection "is typically one to three weeks."
Integration work on an existing site is quoted after a free review. A new site with online booking or an estimate flow is about $9,000 on our web design pricing page, and website financing runs 0% with 25% down for up to twelve months: $2,250 down and $562.50 a month on a $9,000 site. If a new site is on the table, the free mockup shows you the home page before you spend anything. Call (210) 346-0848 if you would rather talk it through.
Questions contractors ask about ServiceTitan integration
Yes, through its Google Ads integration in Marketing Pro Ads, which ServiceTitan says also needs Google Analytics and Dynamic Call Tracking using DNI configured. It sends named conversion actions such as ServiceTitan Booked Job - Originated from Website and, with Ads Optimizer, the completed job's revenue. The website's job is to make sure each call, booking and form reaches ServiceTitan with its click ID.
It is how Google Ads learns about results that happen after the website visit, such as a booked or completed job. You store the Google click ID with the lead and later give it back to Google Ads with the conversion details. Since June 15, 2026, Google routes these uploads through the Data Manager API instead of the Google Ads API.
Partly by design. ServiceTitan's help center notes that Google Ads dates a conversion to the ad impression while ServiceTitan shows the transaction date, so the same job can fall in different weeks. The rest is usually leakage: bookings that arrived without a click ID, forms retyped from email, or a second website without its own DNI configuration. Our marketing attribution guide covers the reconciliation.
It helps when a click ID was lost, because it matches on user-provided data such as email addresses. Google calls enhanced conversions for leads an upgraded version of offline conversion import and still advises continuing to import GCLIDs. Since April 2026, the web and leads versions share a single on/off setting in Google Ads.
Yes. A custom booking flow creates the booking through ServiceTitan's API and attributes it to the visitor's web session, which carries the landing page, referrer, click IDs and UTM tags. ServiceTitan reports those as ServiceTitan Integrated Bookings. Calls need DNI, and calls tracked in other software can be attributed with the external call attribution call; see our call tracking guide.
The ServiceTitan side depends on your account configuration and package, and your admin approves any app that connects. On the website side, a two-system connection is typically one to three weeks per our API integrations page. Work on an existing site is quoted after a free review; a free site audit is a quick first look.
Keep reading
- Calls, matched to revenueOne Number per Source, One Campaign per Number, One Invoice at the End of the LineHow tracked numbers, ServiceTitan DNI and CallRail tie each call to a campaign, a booked job and its invoice, and what your website has to get right.
- Attribution, case by caseThe Case of the Unattributed Furnace: Tracing Every ServiceTitan Job Back to What Paid for ItWhy "source: website" tells you nothing, how to tie every ServiceTitan lead to a campaign and its revenue, and a sample monthly report you can copy.
- Online bookingThe Customer Picked Thursday at 10. Does the Dispatch Board Know?ServiceTitan's Scheduling Pro or a custom booking flow on your own site: how each installs, tracks and shows availability, and when each one wins.
- Paid search, explainedGoogle Ads for Small Business: How the Auction Works and What to Run FirstHow Google Ads works for a small business: the auction, Ad Rank, Quality Score, campaign types, what to run first, and why the landing page sets the bill.
- Web formsThe Lead Nobody Has to Retype: Website Forms That Arrive in ServiceTitan WholeSend estimate, callback, contact and emergency forms to ServiceTitan as bookings with the source attached. Field map, spam filtering, retries, prices.
- Custom site, server-side linkIf a Visitor Can Read Your API Secret, So Can Everyone: Custom Next.js Sites That Book Into ServiceTitan From the ServerA custom Next.js site that sends bookings to ServiceTitan from its own server: credentials hidden, click IDs kept, pages fast. How it works, limits, prices.
- Everything in ServiceTitan IntegrationSee the section
Find out which clicks became paid jobs
Tell us how leads reach ServiceTitan today. We will trace where the click ID drops out and send a fixed quote for the website half of the fix.
Which of these sounds like you? (pick any)
Rather talk now? Call (210) 346-0848.