Get your Law Firms tracking to 95%+ accuracy guaranteed in writing.
Law firm advertising isn't won on the website. It's won on the phone, by whoever answers it, and the only outcome that matters is a signed retainer. We connect calls, forms and chat to what your case management system says actually happened, without sending a single case fact to an ad platform.
Free30 minutesNo obligation
Law Firms · what breaks
Where legal intake tracking falls apart — Law Firms
- 01
Intake decides the case. The pixel never hears it.
The signing conversation happens on a call. Your site fires a click-to-call event and stops there, so bidding learns which ads make phones ring, not which ads produce cases.
- 02
One "Lead" event for every practice area
A slip-and-fall inquiry, an out-of-jurisdiction caller and a trucking case all fire the same valueless conversion. Smart Bidding then buys the cheapest of the three, every time.
- 03
The signed retainer never leaves Clio or Filevine
Your case management system knows who signed, in what practice area, at what fee class. None of it goes back to Google or Meta, so the algorithm optimizes on inquiries it can see instead of cases it can't.
- 04
Chat vendors and answering services count themselves
Ngage, Intaker and after-hours answering services each report their own leads in their own dashboards. The same person gets counted two or three times, and none of those counts are tied to a click.
Law Firms · the fix
What changes once the signed retainer is the conversion — Law Firms
Bidding aimed at signed cases, not raw inquiries
The retainer-signed event goes back to Google Ads and Meta with a fee class as its value. Campaigns that produce inquiries but no cases stop getting rewarded for it.
Calls attributed down to the keyword and the ad
The click ID is captured at session start and carried through the call record. Where there is no click ID, the hashed phone number from intake matches the call later through enhanced conversions for leads.
Confidentiality handled as a design constraint
What leaves the firm is a hashed identifier, a timestamp, a conversion name and a number. Matter facts, chat transcripts and intake notes stay in your systems.
One number the partners can argue about
Cost per signed case, split by practice area, office and campaign. Reconciled monthly against the firm's own signed-case list, not against Google's conversion column.
Law Firms · architecture
How a signed case finds its way back to the ad platforms — Law Firms
The legal funnel runs ad click to call, form or chat, then intake screening, consult, and a signed retainer. Four systems own different pieces of it and none of them talk to Google or Meta on their own.
- 1
Click ID captured before the phone rings
gclid, gbraid, wbraid, msclkid and fbc are written to a first-party cookie and handed to the call tracking session at page load, so the call record carries the campaign that produced it.
- 2
Calls, forms and chat collapse to one record
CallRail, CallTrackingMetrics or WhatConverts, the site form, and the Ngage or Intaker chat transcript all resolve to a single intake record keyed on hashed phone and email.
- 3
Intake screening is the first real value point
The screener marks practice area, jurisdiction and whether the matter is accepted, which is the earliest moment a conversion has a defensible dollar value.
- 4
The case system owns the signed retainer
Clio Grow, Filevine, Litify, SmartAdvocate or CasePeer records the signature and the fee class, and that record is the conversion rather than the form fill that preceded it.
- 5
The server container redacts before it forwards
Signed status, fee class and a hashed identifier leave the firm through a GTM server container on your own subdomain; matter facts, intake notes and chat transcripts never do.
Law Firms · events
Online and offline events for a legal intake funnel — Law Firms
Optimization events are what bidding is asked to chase; reporting-only events exist so the firm can measure without distorting the algorithm.
| Event | Fires when | Key parameters | Sent from / role |
|---|---|---|---|
| click_to_call | Visitor taps the tracked number on any page | gclid, _fbp, event_id, page_template | Browser · reporting only |
| form_submitted | Case evaluation form posts successfully | gclid, em (hashed), ph (hashed), event_id | Browser + server, deduped by event_id · reporting only |
| call_answered | Tracked call connects and clears your duration threshold | gclid, ph (hashed), call_duration, number_pool | Server · reporting only |
| intake_qualified | Screener marks the matter in-jurisdiction and accepted | gclid or hashed contact, value (fee tier), currency, event_id | Server · optimization (primary) |
| consult_scheduled | Consult booked on an attorney's calendar | gclid or hashed contact, conversion_date_time, event_id | Server · optimization (secondary) |
| retainer_sent | Engagement letter goes out for signature | gclid or hashed contact, value (fee tier), currency | Server · reporting only |
| retainer_signed | Signed retainer recorded in the case management system | gclid or hashed contact, value (fee class), currency, transaction_id | Server offline import · optimization by value |
| case_declined | Intake rejects the matter or it falls outside jurisdiction | internal intake_id, decline_reason_code | Held in your systems · never forwarded, reverses the value |
Law Firms · prove
Checked against the firm's own signed-case list, monthly
The case management system already knows how many retainers were signed last month. We count those, compare them to what each platform reported, and give every difference a name.
Source of truth
Signed retainers in Clio Grow, Filevine, Litify, SmartAdvocate or CasePeer, counted by signed date with fee class
- Export signed retainers for the month by signed date, with fee class and the originating intake ID on each row.
- Match every signed case to a click ID or hashed contact, and log the ones with neither plus the reason why.
- Compare the count to Google Ads retainer_signed conversions by conversion date, never by click date.
- Check the Meta offline event match rate; a drop usually means intake stopped collecting email, not that tracking broke.
- Split the gap into attribution difference (window, model, cross-device) and real loss (event never fired, ID never captured).
- Fix only the real loss, then re-run the same count next month against an identical export definition.
Law Firms · free audit
What we check in the free audit
- Intake decides the case. The pixel never hears it.
- One "Lead" event for every practice area
- The signed retainer never leaves Clio or Filevine
- Chat vendors and answering services count themselves
Checked against
Signed retainers in Clio Grow, Filevine, Litify, SmartAdvocate or CasePeer, counted by signed date with fee class
Free30 minutesNo obligation
Law Firms · when not to buy
When a firm shouldn't hire us for this
Four situations where this build is the wrong place to spend the money.
- One office, one practice area, and the managing partner reads every intake sheet. A tracking number and a spreadsheet tell you the same thing.
- Nearly all your cases come from referrals, past clients and bar directories, and paid search is a test budget you'd cancel next quarter.
- You're on a flat-fee lead-gen contract where the vendor owns the numbers and the landing pages. Fix the contract before instrumenting anything.
- Your fee classes barely differ. High-volume, similar-value matters are served fine by one well-configured lead conversion action.
Law Firms · what we deliver
What we build for a firm that runs on intake
A server container on your own subdomain
A GTM server container on something like data.yourfirm.com, in your own cloud project. You own it, and the redaction runs there before anything reaches a platform.
An intake event spec your team recognizes
call_answered, consult_scheduled, retainer_sent, retainer_signed, case_declined. Named after the steps on your intake sheet, not after generic funnel stages.
Call tracking with one owner of the number swap
CallRail, CallTrackingMetrics or WhatConverts wired into the container, with pool size checked against your paid session volume, and after-hours and overflow routing folded into the same call record.
A case-management bridge to signed retainers
Clio Grow, Filevine, Litify, SmartAdvocate, CasePeer or Lawmatics: signed status and fee class pulled on a schedule and matched back to the original click or hashed contact.
A written field allow-list, the confidentiality gate
An explicit list of every field permitted to leave the firm and everything that is not: matter description, injury detail, opposing party, chat transcript, intake notes. Your ethics counsel reviews one page instead of a codebase.
Reconciliation against the firm's own signed-case list
The last step of the Source-of-Truth Reconciliation Method: count signed cases in your case management system, compare them to what each platform reports, and separate attribution differences from real data loss.
Written guarantee
95%+ tracking accuracy
Measured against Signed retainers in Clio Grow, Filevine, Litify, SmartAdvocate or CasePeer, counted by signed date with fee class. Miss it and we keep working at no cost.
FAQ
Law Firms questions, answered
That's the constraint we design around first. What goes to Google or Meta is a hashed email or phone, a conversion name like retainer_signed, a timestamp and a dollar value. Nothing that describes a matter leaves your systems, and we write that list down before we build so your ethics counsel is reviewing one page rather than trusting a vendor's word.
Yes. Clio Grow and Manage, Filevine, Litify, SmartAdvocate, CasePeer, MyCase, Smokeball and Lawmatics have all been on the other end of this. Where there's an API we sync on a schedule; where there isn't, a scheduled export is fine, because signed cases don't need to move in real time.
Two paths. If the caller landed on the site first, the call tracking session captures the GCLID and it uploads as a normal offline conversion. If they called a call extension or a Local Services listing directly, we match later on the hashed phone number through enhanced conversions for leads, which doesn't need a click ID at all.
LSA leads live in their own app, with their own dispute and credit process, and they never touch your website. We pull them in as a separate source, mark which ones intake disputed or declined, and keep them out of the search cost-per-signed-case math so the same person isn't counted twice.
Yes. Health-related matters fall into restricted personalized advertising categories on both Google and Meta, so we don't build remarketing audiences off condition pages and we don't send anything pairing a person with a claim type. The conversion still gets counted. It just gets counted without the detail that would make it a problem.
If you're one office, one practice area, and the managing partner still reads every intake sheet, buy a tracking number, tag your campaigns properly and keep a spreadsheet. This work starts paying when spend is large enough that a bad month costs more than the build, or when case values differ enough that a single Lead event is actively misleading your bidding.
You do. The cloud project, the container, the call tracking account and the documentation are in the firm's name. If you stop working with us nothing switches off, and we walk your marketing person or agency through it before we go.
More on Law Firms
- GuideLaw Firm Ad Tracking: From $300 Clicks to Signed Cases
- GuidePhone Call Conversion Tracking: Stop Losing Your Best Leads to the Phone
- GuideOffline Conversion Tracking: Send Closed Deals Back to Google Ads and Meta
- Mass tortGoogle Ads for mass tort and pharmaceutical litigation firms: the build order
- Family lawyersLocal Services Ads for family lawyers: price shoppers, conflicts and cost per si…
- Personal injuryConversion tracking for personal injury firms, measured in signed cases
Free · 30 min
Find out what your cost per signed case actually is
Free30 minutesNo obligation
