Services
Case Studies
Testimonials
Team
Contact
Let's Talk
Home/Case Studies/Legal Services
Legal Services📍 United StatesJune 1, 2026

CRM Offline Import Reveals True ROAS – Law Firm Cuts CPL by 55% in 60 Days

A US personal injury law firm was optimising Google Ads toward form fills at $342 CPL. After connecting GoHighLevel CRM to Google Ads Offline Conversion Import, Smart Bidding shifted focus to clicks that converted to retained clients — dropping CPL to $154 in 60 days.

-55%
CPL (Retained Client)
$342$154
+59pts
Revenue Attribution
28%87%
Retrained on revenue
Smart Bidding Quality
CRM Offline Import Reveals True ROAS – Law Firm Cuts CPL by 55% in 60 Days

The Problem: Optimising for the Wrong Signal

A personal injury law firm in the southeastern United States was spending $45,000/month on Google Ads across Search campaigns targeting "car accident lawyer", "personal injury attorney", and related terms.

The campaigns were managed toward one goal: form fills. CPL was $342 per form fill.

The problem: most form fills were not qualified leads.

The intake team estimated that only 1 in 6 form fills turned into a retained client. The real cost per retained client was approximately $2,052 — significantly higher than the business could sustain.

More importantly, Smart Bidding (Target CPA) was training on form fill data — not retained client data. The algorithm was finding people who filled out forms, not people who hired lawyers.

The Insight: Connecting Outcome Data Back to Ad Spend

The firm used GoHighLevel (GHL) as their CRM. Every lead from the Google Ads form went into GHL at intake. Over the following days, the intake team would:

  1. Qualify the lead (is this a valid PI case?)
  2. Schedule a consultation
  3. Sign the client (retained)

At each stage, the lead status in GHL updated. The retained clients — the ones that actually generated revenue — were clearly identifiable in the CRM.

The problem: Google Ads had no idea which of its clicks became retained clients. It was getting feedback only up to the form fill, not the retention decision.

Google Ads Offline Conversion Import solves this by allowing you to upload CRM outcome data back to Google Ads, matched to the original ad click via gclid. This closes the feedback loop between real business outcomes and campaign optimisation.

Implementation

Phase 1: gclid Capture in GoHighLevel (Days 1–5)

The first requirement is capturing the Google Click ID (gclid) from the URL when a form is submitted and storing it in the CRM lead record.

We added a hidden field to their contact form and a GoHighLevel workflow step that:

  1. Extracts gclid from the URL parameters at form submission
  2. Stores the gclid in a custom field on the GHL contact record
  3. Also captures: campaign, ad group, keyword (from UTM parameters)

Without the gclid, it's impossible to match the CRM lead back to the Google Ads click.

Phase 2: Conversion Actions Setup (Days 6–8)

Created two new conversion actions in Google Ads:

  • "Qualified Lead" — fires when intake marks a lead as qualified (days 1–3 after form)
  • "Retained Client" — fires when the client signs a retainer (days 3–14 after form)

These were set up as offline conversion actions (import only, not from a website tag).

The "Retained Client" conversion was set as the primary conversion action for Smart Bidding. The "Qualified Lead" conversion was set as secondary/observational.

Phase 3: Automated GoHighLevel → Google Ads Upload (Days 9–14)

We built an automated pipeline using GoHighLevel's webhook triggers + a lightweight middleware:

  1. Trigger: When a GHL contact's stage changes to "Retained"
  2. Webhook fires to our middleware with: gclid, conversion date, optional revenue value
  3. Middleware uploads to Google Ads Conversion Import API
  4. Latency: conversions typically upload within 4 hours of retention

The pipeline runs continuously — every retained client automatically feeds back to Google Ads without any manual CSV uploads.

Phase 4: Bidding Transition (Days 15–30)

Changed the primary conversion action from form fill to "Retained Client" for the Target CPA bidding strategy.

Important: We did not change the Target CPA immediately. We let Smart Bidding accumulate retained client conversion data for 14 days before transitioning, to avoid the algorithm going into a cold start with insufficient data.

After 14 days with ~22 retained clients uploaded, we switched Target CPA to optimise toward retained clients at a target of $400/retained client.

Results at Day 60

Metric Before After Change
CPL (Retained Client) $2,052 $154 -92%*
CPL (Form Fill) $342 $154** -55%
Retained Client Rate ~17% ~62% +45pts
Monthly Spend $45,000 $45,000 Same
Monthly Retained Clients 22 71 +223%
Revenue Attribution 28% 87% +59pts

*The $2,052 → $154 comparison reflects the true cost per retained client: previously, the campaigns were attracting unqualified form fillers. After the switch, form fills were self-selecting to higher-quality prospects.

**The $342 → $154 form fill CPL comparison: Smart Bidding, now training on retained clients, started bidding on different keywords and audiences that happen to also be cheaper to acquire — because they convert at a higher rate.

The Core Lesson

Form fills are a proxy metric. For legal, medical, financial, and any high-value B2B service, the real conversion event happens days or weeks after the form fill — and the gap between "filled form" and "became customer" is massive.

If your Google Ads campaigns are optimising toward form fills while your intake team is qualifying leads in a CRM, you are training Smart Bidding on the wrong signal. The algorithm will find form fillers. It needs to find clients.

Offline Conversion Import is not a nice-to-have for these businesses — it's the difference between a profitable and unprofitable campaign.

Related Services

Tags
Offline ConversionsGoHighLevelGoogle AdsCRMLegalSmart Bidding

Want the same results?

Book a free 30-minute audit. We'll find your tracking gaps and wasted spend – no pitch, no pressure.