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
  1. Smart bidding is only as smart as its scorecard
  2. The conversion actions ServiceTitan already knows how to send
  3. Where the click ID falls out of the truck
  4. Bookings that ride with their click from the website to the invoice
  5. Enhanced conversions, and the upload route Google closed in June
  6. Seven steps from auto-tagging to revenue in the bid
  7. 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.

ServiceTitan's Google Ads conversion actions (exact names, as of October 2026) and what the website has to get right for each
What ServiceTitan reportsThe website's part
ServiceTitan Inbound Call - WebsiteCalls from website visitors, tracked through Dynamic Number InsertionDNI running on every page, with the number shown as text a phone can tap
ServiceTitan Inbound Call - Extension and ServiceTitan Lead Call - ExtensionCalls placed from the ad itself, as the names indicateNone; these calls never touch the site
ServiceTitan Calls Conversion ActionListed by name in the help article without further detailAsk ServiceTitan which calls your account counts here
ServiceTitan Booked Job - Originated from WebsiteJobs booked from a website visit; Scheduling Pro jobs from Google Ads are sent under this nameA scheduler install that keeps the source, not a link that reloads the page
ServiceTitan Integrated BookingsBookings 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 FormsLeads 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 ActionThe completed job's "Total Revenue" as the conversion value, with Ads OptimizerNothing new, provided the job carried its click from the start
JVP (Job Value Predictor)Predicted revenue for booked jobs, before the invoice existsSame 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, gbraid and wbraid. 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.
A cursor trailing a dotted line from a clipboard and an invoice to a brass cash register, collage on pink and green
The dotted line is the click ID. Drop it anywhere along the route and the register never rings inside Google Ads.

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. 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. 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. 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. 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. 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. 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. 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

Free · No obligation

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.

CallGet a quote