Skip to content

Lead Quality  ·  Closed-won feedback

How do I import closed-won deals into Google Ads as offline conversions?

Capture the gclid at the form, store it on the CRM record, and when the deal hits closed-won push an offline conversion back to Google Ads with that gclid plus the deal value. Smart Bidding then bids toward revenue instead of form-fill count. Build it with Zapier or a custom HubSpot webhook.

The mechanism in three moves

Offline conversion imports close the loop between a Google Ads click and a deal that closes weeks later. There are three moving parts.

First, capture the gclid. Google appends a gclid parameter to every ad click. A small script reads it from the URL and writes it into a hidden field on your form. When the form submits, that gclid rides into the CRM on the new contact or deal record.

Second, store it. The gclid lives on the CRM record as a custom property next to the lead. It sits there through the whole pipeline: lead, MQL, SQL, closed-won. Most service-business sales cycles run weeks to months, so this field has to survive every stage transition without getting wiped.

Third, push the win back. When the deal moves to closed-won, you send an offline conversion to Google Ads carrying that original gclid plus the conversion time and the deal value. Google matches the gclid to the click that started it and credits the campaign, ad group, and keyword that produced the actual customer.

That is the loop. The CRM is the source of truth, and the win flows back to the ad platform where the bidding happens.

Why this changes how Smart Bidding behaves

Without the loop, Smart Bidding optimizes against form-fills. The algorithm does what you tell it to. It finds the cheapest conversions. The cheapest form-fills are usually the worst leads: price shoppers and the contact who filled out four firms’ forms at once. The algorithm has no idea those leads never close, so it buys more of them.

Feed closed-won deals back in with their dollar value and the target changes. Now the algorithm sees which clicks turned into signed clients and which dollar amounts they carried. It bids toward revenue. The expensive keyword that produces a $40,000 matter starts winning the auction over the cheap keyword that produces 30 junk fills.

Bad data leads to bad bids. Bad bids lead to wasted spend. This is the layer that fixes the data.

A real-estate law firm I worked with had this exact gap. Once closed-won deals fed back into Google Ads, I cut spend roughly 50 percent and signups roughly doubled. The budget stopped chasing form-fill count and started chasing clients.

Three ways to build it

Pick the method that matches your stack and your tolerance for maintenance.

Zapier or a similar connector. A Zap fires when a deal hits closed-won, reads the gclid and deal value off the record, and calls the Google Ads offline conversion endpoint. No code to maintain. The trade is that you pay per task and add a dependency that can break quietly on a plan change or an auth expiry.

Custom webhook plus a Cloudflare Worker. A HubSpot workflow fires a webhook when the deal closes. A Cloudflare Worker receives it, formats the offline conversion, and posts it to the Google Ads API. A working HubSpot-closed-won to Google Ads pipeline is about 50 lines plus the Worker. You own it, it costs near nothing to run, and you control the exact payload and timing. I walk through that build in the closed-won webhook post.

A spreadsheet upload, to start. Before any automation, you can export closed-won deals with their gclids and upload them to Google Ads as a manual offline conversion file. It is tedious and it lags, but it proves the loop works and validates that your gclids actually matched clicks before you spend time on a webhook.

Where this sits in the larger stack

Importing closed-won deals is layer eight of the Lead Quality Stack, the loop that is unique to lead generation. It only works if the layers under it are wired. The gclid has to land on the form and survive into the CRM. The CRM has to expose closed-won through a webhook or API. Your primary conversion in Google Ads should already be a qualified lead, not a raw form-fill, so the offline import sharpens a signal that is already pointed the right way.

When I audit this, I run the O and S passes of the CLOSE Audit. O is offline conversion imports: are wins flowing back, and do they carry the gclid and the value. S is the signal swap: is the primary conversion a qualified lead rather than a form-fill. If O is missing, the algorithm is guessing at which leads close. If S is wrong, you are optimizing toward the wrong event before the imports even matter. I cover all five passes across six service-business accounts in the CLOSE Audit walkthrough.

If you want the gclid path and the offline import checked against your own account, the free 25-page Google Ads Setup Audit inspects it with no email gate, and the Lead Quality Audit runs the full CLOSE methodology on your stack.

Want this diagnosed in your account?

Same diagnosis,
run on your account.

Thirty minutes on the phone. I look at your spend, your tracking, and your search-term reports before the call. You walk out with a clear list of what is leaking and what to fix first.

Book a Call