Home services contractors spend $5,000 to $50,000 a month on Google Ads. Google sees a click, a form fill, maybe a call. Then nothing. The HVAC job that closed for $4,800 three days later is completely invisible to your campaign. ServiceTitan knows exactly when the job was dispatched, completed, and invoiced. ConversionLoop reads that signal and fires it back to Google as an offline conversion. Smart Bidding stops optimizing for tire-kickers and starts finding people who hire.


When someone clicks your Google ad, Google assigns a GCLID to the URL. ServiceTitan knows nothing about that click. The homeowner calls your dispatch line or fills out a form. A job is booked in ServiceTitan. A technician is dispatched. The job is completed. The invoice is paid. ServiceTitan fires a webhook when each of those events happens. But the webhook contains no GCLID. Google sees the original click, never sees the conversion, and reduces budget on campaigns that are actually driving revenue. Meanwhile, your cost-per-click climbs because Smart Bidding has nothing to learn from.
Why the manual process breaks — and what changes when you automate it
ConversionLoop sits between your ad click and your ServiceTitan job record. It captures the click ID when the homeowner first lands on your site, then uploads the conversion the moment ServiceTitan fires a job complete or invoice paid webhook.
Homeowner clicks your Google ad. cl.js captures and stores their GCLID against their email or phone number.
Homeowner calls your office or submits a form. A job is created in ServiceTitan.
Technician completes the job. ServiceTitan fires a Job Completed webhook to your ConversionLoop endpoint.
ConversionLoop looks up the GCLID for that contact and uploads the conversion to Google Ads with the job revenue.
Google Ads registers the conversion and updates Smart Bidding in real time. The algorithm starts finding homeowners who hire, not just homeowners who click.
14-day free trial. No credit card. Setup takes 10 minutes.
Start free trialFollow these steps once. Everything after is automatic.
Invoice PaidPrimary revenue event. Passes the exact invoice amount for value-based Smart Bidding. This is the event that tells Google what a paying customer looks like.
Job CompletedTechnician closes the job in ServiceTitan. Fires before invoice payment in most workflows. High-volume signal for contractors with net-terms billing.
Booking ConfirmedJob is scheduled and confirmed. Earlier-funnel signal that increases data volume when close cycles are long.
Yes. ServiceTitan supports outbound webhooks for job and invoice events. Access is available through the ServiceTitan integrations settings or via their API. Enterprise and multi-location accounts have full webhook support. Contact ServiceTitan support to confirm webhook access on your plan.
Phone leads require a GCLID match. If the caller visited your website from a Google ad before calling, cl.js will have captured their GCLID against their email or phone. For callers who never visited your site, you can import call conversions separately through Google Ads call extension tracking.
Google Ads accepts offline conversions for clicks up to 90 days old. Most home services jobs close within days or weeks of the initial search, so this limit is almost never a problem.
Yes. ConversionLoop can route events from multiple ServiceTitan business units to the corresponding Google Ads accounts. Each location gets its own webhook endpoint and credentials.


Stop optimizing on guesswork. Every invoice, treatment, and booking — tracked and attributed automatically.
Start free — 14 days on usNo credit card required · 10-minute setup · Cancel anytime