Documentation Index

Fetch the complete documentation index at: https://help.servicetitan.com/llms.txt

Use this file to discover all available pages before exploring further.

Ads Optimizer setup and campaign management guide in ServiceTitan Max

Prev Next

Overview

In ServiceTitan, Marketing Ads Optimizer is the layer that turns the jobs you book into smarter Google Ads. Powered by Titan Intelligence, Ads Optimizer sends revenue and audience signals back into Google Ads, predicts the value of each new booking the moment it lands, watches your team's capacity, and runs bid experiments — so the budget you put against Google Ads keeps adjusting to how your business is actually performing.

In a ServiceTitan Max account, Ads Optimizer doesn't operate by itself. The signals it sends to Google Ads are produced by jobs booked through Scheduling Pro's online widget, calls routed through Contact Center, dispatch decisions powered by Dispatch Pro, and revenue captured through Marketing campaigns and Field estimates. The Capacity Awareness monitor is the capacity on your Dispatch boards. Ads Optimizer reads from the whole connected workflow.

This article walks Marketing Managers through the Ads Optimizer dashboard, the optimization steps you should run during your optimization phase or shortly after go-live, how to set the baselines that let you measure your own results, and the best practices that come out of how Ads Optimizer is meant to be used.


Who uses this feature

  • Marketing managers, business owners, agency partners, and other marketers on your team

  • Primarily benefits Residential Service and Replacement and Commercial Service and Replacement business types

  • Applies to all trades

Feature configuration

  • Ads Optimizer requires Ads Measurement to be fully configured. This includes the Google Ads integration, Google Analytics integration, and Dynamic Call Tracking using DNI.

  • Only admins, owners, or general managers can enable Ads Optimizer.

Where Ads Optimizer fits in the ServiceTitan Max workflow

In a ServiceTitan Max account, Ads Optimizer sits at the back of the demand capture loop and feeds the front of it:

  • Marketing campaigns and Google Ads produce inbound calls and form fills. Tracking numbers on every campaign ties the response back to the source.

  • Contact Center routes those calls to your CSR team, who book the job in ServiceTitan Core. Online bookings come in through Scheduling.

  • The moment a job is booked, Job Value Predictor (JVP) sends Google Ads an estimated revenue value for that booking — instead of waiting days or weeks for the job to complete.

  • Dispatch Pro dispatches the work. Capacity Awareness watches the dispatch board for that campaign's business units (BUs). If technicians are overbooked, you get an alert to pull back ad spend. If they're empty, you get an alert to push spend.

  • Field and Core close the job. Final invoiced revenue flows back into Google Ads as the actual conversion value, refining Google's bidding model over time.

The Ads Optimizer dashboard is where you see all of that working — and where you tune it.

Things to know

  • The Ads Optimizer dashboard has two tabs: Performance (campaign-level metrics) and Settings (per-campaign feature toggles for bid experiments, Capacity Awareness, and Job Value Predictor).

  • The first time you open Ads Optimizer, you're prompted to set your baseline (Monthly Google Ad Spend, Monthly Google Ad Revenue, Average Cost/Lead) and your Average Profit Margin. These values power the Optimizer Impact metrics and the Profit column on the Performance tab.

  • Revenue Import and Campaign Enrichment turn on automatically when Ads Optimizer is enabled. They begin sending signals to Google Ads from day one — no per-campaign activation needed.

  • Job Value Predictor (JVP) needs to be activated on a per-campaign basis in the Settings tab.

  • After activating JVP for a campaign, wait at least three weeks before measuring performance changes. Google Ads needs that time to learn from the new signals, and you should expect some volatility in cost per lead (CPL) and conversion volume during that period.

  • Capacity Awareness has to be enabled per campaign. It uses the business units (BUs) you select to know which technicians' capacity to monitor.

  • If your Google Ad campaigns use account conversion actions, activating JVP for one campaign activates it for all of them.

Best practices (optimization recommendations)

Use these to guide which optimization actions to take first. They synthesize the guidance from the underlying Ads Optimizer feature articles into a single recommended sequence for the optimization phase or post-go-live.

  • Set your baseline and profit margin on day one of optimization. Without a baseline, the Optimizer Impact metrics (% change in Cost per Lead, % change in ROAS) and the Profit column have nothing to measure against. Even rough numbers are fine — you can edit them later.

  • Coordinate JVP transitions with everyone who manages your Ad campaigns. If you have an agency partner or internal ads team, loop them in before you activate JVP. They need to know to expect CPL volatility and conversion volume changes for about three weeks while Google learns the new signals.

  • Time JVP transitions ahead of your busy seasons, not during them. Give Google the three-week learning window during a calmer period so your campaigns are fully tuned when demand peaks.

  • Pair JVP with value-based bidding. Early tests showed that campaigns running Target ROAS or Maximize Conversion Value saw bigger ROAS gains than campaigns on other bid strategies. If your campaigns aren't on value-based bidding yet, use the Optimizer experiment feature on the Settings tab to test moving them.

  • Enable Capacity Awareness on your highest-spend campaigns first. Capacity Awareness pays off most when there's enough ad spend that wasted budget (or missed budget) shows up in dollars. Start with the campaigns where saving 10% during a busy week is meaningful, then expand.

  • Associate every Capacity Awareness alert with the correct business units. The alert is only as accurate as the BUs you tell it to monitor. If a campaign drives jobs for "Residential HVAC Service" but you select all your residential BUs, you'll get noisy alerts. Match BUs to the campaign's actual goal.

  • Send capacity alerts to whoever can act on them. Add the email addresses of the marketing manager, the agency or in-house ads team, and the dispatcher or operations manager who would adjust scheduling. The alert is only useful if the person who gets it can change something.

  • Review the Performance tab on a regular cadence. Weekly during the optimization phase, then monthly once trends are stable. Use the preset date ranges — Last 7 Days, Last 30 Days, Last 90 Days — to compare short-term performance against longer trends.

  • Watch the Profit column, not just ROAS. Profit reflects your actual margin (Revenue × Profit Margin − Spend, or Revenue − Spend if no profit margin is set). A high-ROAS campaign that books low-margin work isn't always your best campaign.

  • Coordinate across the ServiceTitan Max suite when budgets shift. If you scale up spend after a Capacity Awareness alert, tell your CSRs and dispatchers. Contact Center picks up the inbound lift, Scheduling converts the online bookings, and Dispatch assigns the work — they're staffing against your ad budget, even if no one explicitly tells them.

Step 1: Open the Ads Optimizer dashboard

  • Go to the navigation bar and click Marketing.

  • In the side menu, under Campaigns, click Ads Optimizer.

  • If this is the first time anyone has opened Ads Optimizer in your account, you'll be prompted to set your baseline and profit margin. If your baseline is already configured, the dashboard opens directly to the Performance tab.

Step 2: Set your baseline and profit margin

The baseline is what gives Ads Optimizer's Impact metrics — % change in Cost per Lead, % change in ROAS — something to measure against. The Average Profit Margin is what powers the Profit column on the Performance tab.

  • On the Set Baseline screen, enter:        

    1. Monthly Google Ad Spend — The total amount you spend on Google Ads each month on average.

    2. Monthly Google Ad Revenue — The total income you generate from Google Ads each month on average.

    3. Average Cost/Lead — The average amount you spend per lead acquired through Google Ads campaigns.

    Note: If you don't know these numbers, enter the minimum acceptable values for your business. For example, if the smallest ROAS you can tolerate is 3x and you plan on spending $5,000 a month, enter $5,000 for Monthly Google Ad Spend and $15,000 for Monthly Google Ad Revenue. A best guess is fine — you can edit later.

         

  • Click Next.

  • Enter your Average Profit Margin. This is used to calculate the Profit column on the Performance tab. A ballpark estimate is fine.

  • Click Next, then click Done to enter the dashboard.

Tip: If you need to update your baseline or profit margin later, you can do that from the Ads Optimizer screen. See View Ads Optimizer's Impact for details.

Step 3: Walk through the Performance tab

The Performance tab is where you track how your Google Ads campaigns are actually doing — by campaign and in total.

Choose a date range

  • Click the date field at the top of the tab to open the date picker.

  • Use the calendar to select a specific date range and click Apply, or use the preset ranges in the left menu:        

    1. Today — From 12:00 AM to the current time

    2. Yesterday — Previous day, from 12:00 AM to 11:59 PM

    3. Last 7 Days — Previous 7 days, including today

    4. Last 30 Days — Previous 30 days, including today

    5. Current Month — Current month, including future dates

    6. Last Month — Entire previous month

    7. Last 90 Days — Previous 90 days, including today

    8. Current Year — Current calendar year, including future dates

Review the totals row

At the top of the Performance table, review aggregate metrics across all Google Ads campaigns for the selected date range:

  • Leads — Total leads generated by all Google Ads campaigns.

  • Spend — Total amount spent on all Google Ads campaigns.

  • Revenue — Total revenue from all completed jobs attributed to Google Ads campaigns.

  • Cost per Lead — Average cost of qualified leads across all Google Ads campaigns.

  • ROAS — Average return on ad spend across all Google Ads campaigns.

  • Profit — Total profit generated by all Google Ads campaigns.

Review individual campaign rows

Each campaign row shows the same metrics for that campaign specifically:

  • Leads — Leads generated by the campaign.

  • Spend — Amount spent on the campaign.

  • Revenue — Revenue from completed jobs attributed to the campaign.

  • Cost per Lead — Spend ÷ Leads.

  • ROAS — (Revenue ÷ Cost) × 100%.

  • Profit — If a profit margin is entered, this is calculated as (Revenue × Profit Margin) − Spend. If no profit margin is entered, this is calculated as Revenue − Spend.

  • (Optional) Use the search field to find a campaign by name.

Tip: Sort by Profit to see your most and least profitable campaigns at a glance. A campaign with a high ROAS but low Profit may be running on tight margins; a campaign with lower ROAS but high Profit may be booking higher-margin work even if conversion volume is modest.

Step 4: Walk through the Settings tab

The Settings tab is where you turn on per-campaign features: bid experiments, Capacity Awareness, and Job Value Predictor.

From the Settings tab, you can:

  • View each campaign's status.

  • View the bid strategy specified for the campaign in Google.

  • Enable Optimizer's experiment feature to automate Google's Experimentation feature. This safely runs experiments with a small portion of the campaign's traffic, testing value-based bidding strategies like Target ROAS and Maximize Conversion Value.

  • Enable Capacity Awareness to get email alerts on your technicians' capacity for that campaign. See Step 5: Enable Capacity Awareness.

  • Activate Job Value Predictor (JVP) for a campaign. See Step 6: Activate Job Value Predictor.

Step 5: Enable Capacity Awareness

Capacity Awareness watches the dispatch board for the business units (BUs) tied to a campaign and alerts you when capacity is too high (overbooked — pull back spend) or too low (empty — push spend).

  • On the Ads Optimizer screen, click the Settings tab.

  • Find the campaign you want to monitor and go to its Capacity Awareness column.

  • Click Enable.

  • In the Step 1 screen, click Next.

  • In the Step 2 screen, select the business units for the jobs the Ads campaign aims to create. This tells Ads Optimizer which technicians to monitor. When finished, click Next.

  • In the Step 3 screen, use the slider to select how many days ahead to monitor your capacity. Then select the lowest and highest capacity thresholds at which Ads Optimizer should send you an alert. When finished, click Next.

  • In the Step 4 screen, add the email addresses of the people who should receive alerts. Include marketers, agency partners or your internal ads team, and the operations or dispatch manager who would react to the alert.

  • Click Done.

Note: You can edit Capacity Awareness alerts later from the same row on the Settings tab.

Tip: In a ServiceTitan Max account, the capacity Ads Optimizer watches is the same dispatch board your Dispatch teams work from. If you want a sanity check before launching alerts, look at the Dispatch Board for the next 7 days and confirm the BUs you've selected match where this campaign's jobs actually land.

Step 6: Activate Job Value Predictor

Job Value Predictor (JVP) sends Google Ads an estimated revenue value the moment a job is booked, instead of waiting for the job to complete. For new Ads Optimizer customers, JVP is activated by default for all campaigns and you can skip this step. For everyone else, activate JVP per campaign.

Caution: Account configuration is required to use JVP. Contact Technical Support to confirm your account is configured before activation.

  • On the Ads Optimizer screen, click the Settings tab.

  • Find the campaign for which you want to send JVP conversions as primary conversions.

  • In the Job Value Predictor column, click Activate JVP.

  • In the Activate JVP Confirmation pop-up, click Yes, Activate.

Note: When JVP isn't activated, Ads Optimizer still sends JVP conversions to your Google Ads account — but as secondary conversions. They appear in your reports but Google isn't actively using them in its bidding. Activating JVP for a campaign promotes them to primary conversions, which is what Google uses for Smart Bidding.

Caution: If your Google Ad campaigns use account conversion actions, activating JVP for one campaign activates it for all campaigns.

After activating, wait at least three weeks before measuring performance changes. Expect CPL and conversion volume to move during that window as Google learns from the JVP signals.

Step 7: View Ads Optimizer's Impact

The Ads Optimizer Impact metrics show you the lift the system is creating against the baseline you entered in Step 2. Review these on the Ads Optimizer screen:

  • Signals sent to Google — The number of conversions posted to your integrated Google Ads accounts.

  • Data enhancements — The number of times smart attribution features in Marketing Ads helped assign marketing campaigns.

  • Bid strategy experiments — The number of value-based experiments created by Optimizer in Google Ads.

  • % increase or decrease in Cost per Lead — Percent change in cost per lead from the time of your first attributed lead, compared to the baseline average cost per lead.

  • % increase or decrease in ROAS — Percent change in return on ad spend from the time of your first attributed lead, compared to the baseline ROAS.

Tip: If your % change in CPL or ROAS looks off, the most common cause is an outdated baseline. If your business has grown materially since you first set the baseline — new BUs, new trade, expanded service area, new pricing — update the baseline so the Impact metrics reflect your current operation, not the version of your business from six months ago.

Step 8: Set a review cadence

Optimization isn't a one-time setup — it's a habit. A simple cadence to start with:

  • Weekly (during the optimization phase): Open the Performance tab, set the date range to Last 7 Days, and scan Leads, Spend, ROAS, and Profit across campaigns. Cross-check Capacity Awareness alerts received that week.

  • Monthly: Set the date range to Last 30 Days. Compare total Revenue and Profit to the prior month. Review the Optimizer Impact metrics. If you activated JVP in the past month, give it the full three-week window before drawing conclusions.

  • Quarterly: Set the date range to Last 90 Days. Revisit your baseline and profit margin. Update if your business has materially changed. Confirm Capacity Awareness alert recipients are still the right people.

In a ServiceTitan Max account, pair this cadence with a quick check-in across the team handling the response: your CSRs in Contact Center, your dispatchers, and your field team. When ad spend moves, the workload moves with it.

Want to learn more?