How to Tie Ad Spend to Signed Cases
To tie ad spend to signed cases, save the ad click ID and the call source on every intake record, mark that record when the retainer is signed, send the signed case back to Google Ads as a conversion, and divide what you spent by the cases you signed. Everything else is plumbing. The rest of this page walks through each step, quotes Google’s own documentation, and gives the two formulas we use: cost per signed case and ROAS per lead.
How do I track which ads produce signed cases at my law firm?
You need one record per prospective client that carries three things from first contact to signed retainer: where they came from, how to identify the ad click, and what happened to them. Four steps get you there.
Step 1: Capture the click ID on every form
Turn on auto-tagging in Google Ads. When someone clicks your ad, Google adds a click ID to the landing-page URL. Google’s own explanation: “Google Ads provides you with unique IDs, called Google Click ID (GCLID), for every click that comes to your website from an ad. To track offline conversions from clicks, you’ll save these IDs along with whatever lead information you collect from the person who clicked your ad.” (Google Ads Help, About offline conversion imports)
Capture all three ID types Google uses, as defined in its API guide (Google Ads API, Manage offline conversions):
- gclid: “GCLIDs are identifiers that are captured from URL parameters when an individual clicks on your ad and navigates to your website.”
- gbraid: “A gbraid is a URL parameter that is present when a user clicks on an ad on the web and is directed to your iOS app.”
- wbraid: “A wbraid is a URL parameter that is present when a user clicks on an ad in an iOS app and is directed to your webpage.”
In practice: add a hidden field for each ID to every intake form, and run a small script on every page that reads the ID from the URL and keeps it until the visitor submits a form. Google publishes a sample script and the hidden-field markup on its GCLID setup page, and warns: “The GCLID is case sensitive, so make sure you’re uploading it correctly.” (Google Ads Help, Set up offline conversions using GCLID) Never lowercase or trim the value.
Step 2: Track calls, not just forms
Most legal inquiries come in by phone, and a phone call carries no URL. Call tracking closes that gap: the website shows a tracking number tied to the visitor’s session, so the call can be matched to the click that brought them. Google notes that “By importing call conversion information into Google Ads, you can track which of your ads and keywords result in the most sales calls for your business.” (Google Ads Help, About offline conversion imports) Our call tracking architecture guide covers number pools, source numbers and recordings in detail.
Step 3: Carry the IDs into your CRM or intake record
The click ID is useless if it stays in the browser or the call-tracking tool. Each new lead record in your intake CRM needs fields for gclid, gbraid, wbraid, lead source, campaign, first-contact date and time, phone and email. Google’s guidance is to store the GCLID along with the prospect’s information in your lead management system, usually as a custom field on the lead object. If the person calls and later fills in a form, merge the two into one record so you do not count one prospective client twice.
Step 4: Define your stages through signed retainer
Write the stages down, give each a date field, and make intake staff move every record through them. A workable set:
- New lead: first call, form or message received.
- Contacted: a person at the firm spoke with them.
- Qualified: the matter fits your practice areas and criteria.
- Consultation held.
- Retainer sent.
- Signed retainer: the conversion that matters. Record the signed date and the expected or actual fee.
- Closed, not signed: with a reason (not qualified, conflict, hired another firm, no response).
“Signed retainer” must mean the same thing in every report. If one person marks a case signed when the retainer goes out and another when it comes back, your numbers will drift.
How do I import offline conversions from my law firm CRM into Google Ads?
Once a record reaches “Signed retainer,” you send that event back to Google Ads against the original click. Google describes the idea in one sentence: “Later, when that person “converts” in the offline world, by signing a contract, for example, you give that GCLID back to Google Ads along with a few details about the type of conversion it was and when it happened.” (Google Ads Help, About offline conversion imports)
There are two ways to do it:
- Offline conversion import (GCLID-based). Upload the click ID, the conversion action name, and the conversion date and time. More in our post on teaching Google which enquiries became clients.
- Enhanced conversions for leads. “Enhanced conversions for leads is an upgraded version of offline conversion import that uses user-provided data, such as email addresses, to supplement imported offline conversion data to improve accuracy and bidding performance.” (Google Ads Help, About enhanced conversions for leads) Google adds: “To maximize accuracy, include GCLIDs with your uploaded events whenever possible” (same page). More in our post on how a signed case in March gets credited to a click in January.
Which should you pick? Google’s answer: “If you have not already adopted offline conversion import, we recommend starting with enhanced conversions for leads instead.” (Google Ads Help, About offline conversion imports)
Setup notes from Google’s documentation:
- Create the conversion action first. Make a separate offline conversion action for signed cases; do not reuse your form-fill conversion. Google’s setup page says: “After creating a new conversion action, wait 4-6 hours before uploading conversions for that conversion action.” (Google Ads Help)
- Mind the import window. Google’s setup page says that for file and storage sources “Google Ads Data Manager imports conversions from 90 days ago in every run” (Google Ads Help), while some CRM and database connections import the last 14 days. If cases often take longer to sign, also send an earlier stage (qualified or consultation held) as its own action.
- Know where the numbers land. “Imported conversions are reflected in reports for the impression date of the original click” (Google Ads API, Manage offline conversions), so last month’s numbers can rise after you upload this month’s signings. Google’s API guide also says “It takes up to three hours for imported conversion statistics to appear” (same page).
- Send a unique ID and a real timestamp. Google’s API guide recommends an order ID (your matter or lead ID works) so duplicates can be caught, and requires the conversion time to be after the click and to include a time zone.
- If you build your own upload, check which API is current. Google says: “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.” (Google Ads Help, About offline conversion imports)
Once signed cases flow back with a fee value attached, you can bid toward case value instead of lead volume. See Stop Bidding on Leads. Start Bidding on Case Value.
How do I calculate ROI on law firm advertising spend?
Two formulas, run per channel and per campaign, never blended across everything:
- Cost per signed case = ad spend for the period ÷ signed cases attributed to that spend.
- ROAS per lead = fee revenue attributed to the lead ÷ what that lead cost. Add the leads up by source and you get channel ROAS = attributed fee revenue ÷ ad spend.
Use collected fees when you have them and expected fees while the matter is open, and label which one you used. Our post on ROAS per lead explains why a cheap cost per lead can hide your most expensive channel.
Illustration only. These are made-up numbers to show the math, not client results or benchmarks.
A search campaign spends $9,000 in a month and produces 60 leads, so cost per lead is $9,000 ÷ 60 = $150. Six of those leads sign. Cost per signed case is $9,000 ÷ 6 = $1,500. The six cases are expected to bring $27,000 in fees in total, so channel ROAS is $27,000 ÷ $9,000 = 3.0. One of the six, a $6,000 case that came from a $150 lead, has a ROAS per lead of $6,000 ÷ $150 = 40.
To see these numbers every week instead of reconstructing them every quarter, put spend, leads, stages and fees in one view. Our law firm dashboard guide lists the fields that matter.
What is a good cost per signed case for a law firm?
We could not find a published benchmark we were able to verify, so we do not quote one. Cost per signed case swings by practice area, market and fee size, and a figure that is healthy for a high-value injury case would bankrupt a flat-fee practice.
Work out your own ceiling instead: maximum cost per signed case = average fee per signed case × the share of that fee you are willing to spend to win it.
Illustration only, not a benchmark. If your average signed matter brings $4,500 in fees and you decide to spend no more than 25% of the fee on acquisition, your ceiling is $4,500 × 0.25 = $1,125 per signed case. A channel at $1,500 per signed case is over the line, even if its leads look cheap.
How do Local Services Ads leads fit?
Local Services Ads work differently from search campaigns, so handle them on their own track.
- You pay per lead, not per click. “With Local Services Ads, you pay for valid leads.” (Google Local Services Help, How leads work)
- Google reports leads, not cases. For Local Services campaigns moved into Google Ads, Google lists the key metrics as “‘Conversions’ (which displays the total number of leads for which you’re charged)” (Google Ads Help, Local Services Ads transition to Performance Max) and “”Cost / conv.” (your average cost-per-lead)” (same page). A Local Services “conversion” is a charged lead, not a signed case.
- What Google gives you to work with. The Leads page includes “‘charged’ status, lead type (call, message, etc.), a lead feedback form and the ability to download your leads to import into your own CRM.” (same page) The Google Ads API also has a lead feedback request for Local Services leads.
- What Google does not document. None of the Google pages we checked describe importing your own signed-case conversions into a Local Services or pay-per-lead campaign to steer its bidding. Until Google documents that, assume the signal you can send back is lead feedback, not signed retainers.
So: download Local Services leads into your CRM (or log them as they arrive), tag the source as Local Services Ads, move them through the same stages, and compute cost per signed case from the charged-lead cost. Answering every call matters here too, because Google counts a missed call during your business hours as a valid lead when “the customer stays on the line for more than 20 seconds.” (Google Local Services Help, How leads work) That is a lead you pay for and may never sign; see our answer rate guide and our Local Services Ads guide for lawyers.
How do I connect call tracking to signed cases in Clio or Lawmatics?
The pattern is the same in any stack: the call tracker captures the source and click ID, passes them to the intake CRM, the CRM records the signed date, and the signed case goes back to Google Ads. Law Ops Forge works with the tools below. These are setup notes based only on each vendor’s own help pages, checked on October 21, 2026; confirm the details against your account before relying on them.
- CallRail → Google Ads. CallRail’s help center says its integration posts conversions using Google’s click IDs (gclid, wbraid, and gbraid) and requires its JavaScript snippet, visitor tracking and Google Ads auto-tagging. It sends calls and forms, not signed cases, so you still need the CRM step.
- CallRail → Clio Grow. CallRail’s Clio Grow integration page lists the call fields it sends to Clio, including source, medium, campaign and gclid. That puts the click ID on the Clio record, ready for a signed-case upload later.
- CallRail → Lawmatics. Lawmatics’ CallRail integration article describes matching calls to marketing sources and campaigns by tracking number or the values CallRail sends, such as utm_source. Set each source’s own match rule as that article advises, so calls are not credited to the wrong source.
- Law Ruler. Law Ruler’s help article on Google Ads data describes exporting a segment such as signed clients with fields that can include source, medium, keyword and GCLID, as long as you collect them when the lead is created.
- Lead Docket. We did not find Lead Docket’s own documentation on click-ID capture, so we make no claim about it. Check with Lead Docket that each lead can hold gclid, gbraid and wbraid fields and that signed leads can be exported or sent with those fields.
Whichever tools you use, test one lead end to end: click your own ad, call the tracking number, sign a test record, upload it, and confirm it appears in Google Ads against the right campaign.
Frequently asked questions
What is the difference between offline conversion import and enhanced conversions for leads?
Offline conversion import sends Google the click ID (GCLID) you saved on the lead, plus the conversion and its time. Google describes enhanced conversions for leads as “an upgraded version of offline conversion import that uses user-provided data, such as email addresses, to supplement imported offline conversion data to improve accuracy and bidding performance.” Google recommends that firms new to offline imports start with enhanced conversions for leads, and still send GCLIDs whenever possible.
Which click IDs should a law firm save on each intake record?
Save the gclid, gbraid and wbraid URL parameters when they are present, exactly as received, because Google says the GCLID is case sensitive. Store them on the lead or matter record along with the caller’s phone number and email so the signed case can be matched back to the ad click later.
Can I import signed cases from Local Services Ads into Google Ads?
Not in any way Google documents on the pages we checked. Google says Local Services Ads charge per valid lead, and the Leads page offers a lead feedback form and the ability to download your leads to import into your own CRM. So track Local Services Ads signed cases in your CRM and report cost per signed case there, rather than counting on a signed-case import to steer that campaign’s bidding.
How long after the ad click can I upload a signed case?
It depends on how you connect your data. Google’s GCLID setup page says Google Ads Data Manager imports conversions from the last 90 days for file and storage sources, and the last 14 days for some CRM and database connections. If retainers take longer than your window to sign, also send an earlier stage, such as a qualified lead or a consultation held, as its own conversion action.
What is a good cost per signed case for a law firm?
There is no published benchmark we could verify, so we do not quote one. The useful number is your own ceiling: average fee per signed case multiplied by the share of that fee you are willing to spend to acquire the case. Any channel whose cost per signed case stays above that ceiling is losing money, however cheap its leads look.
Related reading
- Teaching Google Which Enquiries Became Clients
- How a Signed Case in March Gets Credited to a Click in January
- Call Tracking for Law Firms: From the Click to the Signed Matter
- Stop Bidding on Leads. Start Bidding on Case Value.
- ROAS Per Lead: The Marketing Metric Most Law Firms Never Actually Calculate
- Building a Law Firm Dashboard: What Data Actually Matters
Get Law Ops Forge in your Google results
Add us as a preferred source and our intake, LSA and legal-tech breakdowns surface higher whenever you search them.
Talk to Law Ops Forge
Want a second set of eyes on your firm's intake?
Get a free intake and sales audit and see exactly where your firm is losing cases, and what fixing it would look like.
Get your free audit