Website & leads
ServiceTitan Website Lead Source Attribution
The ad click ID that proves which campaign produced a lead lives in the landing page URL for a few seconds, then disappears when the visitor clicks to another page. Attribution is the work of catching it and carrying it all the way into ServiceTitan.
Data moves from Website through Attribution layer to ServiceTitan campaign.
"Website" is not a marketing channel.
Open the campaign report in many contractors' ServiceTitan accounts and one campaign called something like "Website" holds a large share of the booked jobs. That campaign is really four or five channels mixed together: Google Ads, Local Services Ads traffic that clicked through, organic search, Facebook, the truck wrap that sent someone to type in the URL. When the owner asks which ad budget to cut, the honest answer is that nobody can tell.
The cause is usually mechanical. A visitor arrives from a Google ad with a click ID in the URL, reads two pages, and fills out the form on the third. By then the click ID is gone, the form sends an email, and a CSR picks a campaign from memory. The fix is equally mechanical, and it happens on the website before ServiceTitan ever sees the lead.
This page is about implementation: capturing the data, keeping it, and getting it into ServiceTitan. What to do with clean data once you have it, such as cost per booked job and return on ad spend, belongs on the marketing ROI dashboard page. It's part of ServiceTitan website and lead integrations.
What the website captures on arrival
Captured on the first page view, before the visitor has a chance to click away.
UTM tags
Source, medium, campaign, term and content, from links you or your ad platforms tag. Normalized to lowercase so "Google" and "google" don't split a channel in two.
Ad click IDs
gclid, gbraid and wbraid from Google, msclkid from Microsoft Advertising and fbclid from Facebook and Instagram. These are what let a conversion be matched back to a specific click later.
Landing page and referrer
The page the visitor entered on and the site that sent them. Organic search and referral traffic carry no UTM tags, so this is often the only signal.
Analytics client ID
The Google Analytics client ID, so website behavior and the eventual booking can be connected in analysis.
Timestamps
When each touch happened. A click from 40 days ago and one from this morning shouldn't get equal weight.
Consent state
Whether the visitor accepted analytics and advertising storage, so capture follows your site's consent setup and privacy policy.
Keeping it alive until the lead converts
- 1
Store it first-party
The captured values are saved in first-party storage on your own domain, so they survive clicks between pages and a return visit days later, within the limits of the visitor's browser and consent choices.
- 2
Keep first touch and last touch
The first recorded source is kept unchanged. The last non-direct source is updated on each new visit with tracking data. A visitor who found you through organic search and came back through a Google ad has both, and neither overwrites the other.
- 3
Attach it to every conversion
Contact forms, booking requests and estimate tools all read the same stored values and include them in the submission. See contact form integration for the rest of that flow.
- 4
Map it to a ServiceTitan campaign
A mapping table, maintained with your marketing person, turns source, medium and campaign values into the right ServiceTitan campaign ID. Unmapped combinations fall to a clearly named catch-all and get flagged for review rather than silently guessed.
- 5
Send the campaign and the detail
The booking goes in with its campaign ID. ServiceTitan's Marketing Ads API also accepts attribution details for web bookings, web lead forms, calls and jobs, including landing page, referrer, click IDs, UTM values and the analytics client ID, where your account and permissions allow it.
First touch, last touch, and what ServiceTitan gets
A booking carries one campaign, so the business has to decide which touch gets that slot. Most contractors choose the last paid or tagged touch, because that's what the ad platforms report against and what budget decisions are made on. The first touch is still kept and sent with the attribution details, so a later report can show how often organic search or a referral started the relationship that an ad finished.
There's no universally correct rule. What matters is that it's written down, applied the same way to every form and booking, and understood by whoever reads the reports. We put it in plain English in the project documentation.
Calls are leads too
For many trades, the phone outranks the form. Attribution that ignores calls ignores much of the picture.
Number swapping
Dynamic number insertion shows a different tracking number depending on how the visitor arrived, so a call from a Google Ads visitor rings through a number tied to that source.
Matched to ServiceTitan campaigns
Tracking numbers are matched to campaigns the way your call-tracking setup and ServiceTitan account already do it. We fit the website's number swapping to that rather than inventing a parallel system.
Call attribution detail
ServiceTitan's Marketing Ads resources accept attribution data for calls as well as web bookings and lead forms, which keeps calls and forms in the same picture where your setup supports it.
The click-to-call button
A tap on a mobile phone number is recorded as an event with the same stored source data, so a call that started on the website isn't counted as direct.
Sending results back to the ad platforms
Ad platforms optimize toward whatever conversions you report. If Google Ads only knows about form submissions, it learns to find people who fill out forms, including the ones who never book. Reporting a later outcome, such as a booked or completed job, matched to the original click ID, lets the platform learn from what actually makes money. Google, Microsoft and Meta each offer a way to import offline or server-side conversions.
Doing that means sending information derived from ServiceTitan to a third party, so the design is checked against ServiceTitan's API Terms for your account before it's built, kept to the minimum needed (a click ID, a conversion name, a time, and a value only if you choose), and confirmed against what your ServiceTitan marketing products may already send. The website-side groundwork is the same as our conversion tracking service.
What to have ready before we talk
None of this is required for a first call, but each answer makes the scope and the quote sharper.
- Your current ServiceTitan campaign list, and which ones web leads should map to
- The ad platforms you run and whether auto-tagging is on in each
- Your call-tracking provider and how its numbers map to ServiceTitan campaigns
- Which touch should set the campaign on a booking: first or last
- Your cookie consent setup and privacy policy
- Who maintains the campaign mapping when a new campaign launches
Related ServiceTitan development
Mesa Web Designers is an independent developer. We are not affiliated with, endorsed by, or a partner of ServiceTitan. ServiceTitan is a trademark of its owner. What an integration can do depends on your ServiceTitan products, the permissions your admin grants, and the APIs available to your account.
Start the conversation
Give every lead its real source.
Send us a recent campaign report and a list of the ad platforms you run. We'll show where the source is being lost and how to keep it.
- Web apps, portals and integrations start from $575, priced by complexity
- The developer who scopes it builds it and answers the phone
- Built for ServiceTitan contractors nationwide
What do you need built?
Pick what fits (pick any)
Rather talk? (480) 525-7582. 0% financing on any project, 25% down. See all pricing
Lead source attribution: questions we hear a lot.
Why does our ServiceTitan campaign report say most leads came from the website?
Usually because the website lost the original source before the lead was sent, and the CSR picked a generic campaign. Capturing UTM tags and click IDs on the first page view, storing them and sending a mapped campaign ID with each booking fixes it going forward. It can't repair past records.
Does ServiceTitan accept gclid and UTM data?
Yes. ServiceTitan's Marketing Ads API accepts attribution details for web bookings, web lead forms, calls and jobs, including landing page, referrer, gclid, gbraid, wbraid, msclkid, fbclid, UTM values and the Google Analytics client ID. Bookings and jobs also accept a campaign ID. Access depends on your account and the permissions your admin grants.
Should a lead be credited to the first or the last source?
A booking carries one campaign, so you choose. Most contractors use the last paid or tagged touch for the campaign and keep the first touch in the attribution details for analysis. The important part is applying the same written rule to every form and booking.
Can you send booked jobs back to Google Ads as conversions?
Ad platforms accept offline conversions matched to a click ID, and that helps them optimize for booked work instead of form fills. Because it sends data derived from ServiceTitan to a third party, we check the design against ServiceTitan's API Terms for your account and keep the data to a minimum.
Where do we see cost per booked job?
Not on this page's project. Attribution makes the data accurate; the reporting that joins it with ad spend is a dashboard project, covered on our marketing ROI dashboard page.
Give every lead its real source.
Send us a recent campaign report and a list of the ad platforms you run. We'll show where the source is being lost and how to keep it.
