Most lead-gen accounts stop measuring at the exact moment the interesting part begins. The form gets submitted, Google Ads records a conversion, and the report looks healthy. What the report cannot see is whether that lead was a real buyer or a tire-kicker who will never pick up the phone. For a business where the sale closes days or weeks later, over a call or in a chair, that blind spot is most of the picture.

This guide walks through how to close that loop. You capture the Google Click ID when a lead comes in, carry it with the lead into your CRM, and send the outcome back to Google once that lead becomes a customer. We will cover the GCLID path and the newer Enhanced Conversions for Leads path, when to use each, how to upload the data, and how all of it feeds Smart Bidding.

It assumes you already have basic conversion tracking working. If you do not, start with our companion guide, How to Set Up Google Ads Conversion Tracking, then come back here to extend it to offline outcomes.

The short version

Turn on auto-tagging so Google adds a GCLID to every ad click. Capture that GCLID on your lead forms and store it with the lead in your CRM. When a lead closes, upload the deal back to Google matched by its GCLID, through a manual file, a scheduled Google Sheet, or an automated connection. If capturing a clean GCLID is a stretch, use Enhanced Conversions for Leads instead, which matches on hashed email, and for the most durable setup, do both. The payoff is that Smart Bidding starts optimizing toward customers, not clicks.

Why "more leads" is the wrong goal

Here is the trap. You ask your campaigns for more leads, you get more leads, and your cost per lead even drops. It feels like a win. Then you look at the sales pipeline and the quality has quietly fallen off a cliff. The campaigns did exactly what you asked. You just asked for the wrong thing.

A form fill is a proxy. It is cheap to produce, easy to count, and only loosely related to revenue. When that is the only signal Google Ads has, Smart Bidding chases the cheapest version of it, which means the lowest-intent clicks on the market. Two leads that cost the same can be worth wildly different amounts, and the platform has no way to tell them apart unless you tell it.

Offline conversion tracking replaces the proxy with the real thing. Instead of counting inquiries, you count qualified leads, booked consultations, or closed deals, and you attach a value to them. Now the question the algorithm is answering changes from "who is most likely to submit a form" to "who is most likely to become a customer worth this much." That is a different, and far more profitable, question.

I see this on almost every lead-gen account I audit. Cost per lead looks great, everyone's happy, and then you ask how many of those leads actually booked or bought and the room goes quiet. Garbage in, garbage out. The second you feed closed deals back to Google instead of raw form fills, the campaigns stop chasing tire-kickers and start finding people who actually spend money. Same budget, completely different leads.

Two ways to send outcomes back: GCLID vs Enhanced Conversions for Leads

There are two supported ways to tell Google Ads that an offline event happened. They solve the same problem with different match keys, and they are not mutually exclusive.

GCLID-based offline conversion import is the original method. You capture the Google Click ID, the unique identifier Google appends to your landing page URL on each ad click, and later upload the outcome matched by that exact ID. It is precise, because a GCLID points at one specific click. Its weakness is fragility: if the GCLID is never captured, gets stripped by a redirect, or is stored with the wrong casing, the match fails and the conversion is lost.

Enhanced Conversions for Leads is the newer, Google-recommended method for lead-gen businesses. Instead of a click ID, it matches on hashed first-party data, usually the email address the customer gave you on the form. The data is hashed with SHA-256 before it leaves your systems, so you are never sending a readable email to Google. Because almost every lead gives you an email, the match does not depend on a click ID surviving the journey, which makes it more durable through redirects, cookie loss, and cross-device behavior.

So which one? If you are starting from zero, Google now steers you to Enhanced Conversions for Leads first, and for most small and mid-sized businesses that is the right call. The GCLID path still works, still helps attribution, and Google still recommends including the GCLID whenever you can. The strongest setup sends both the GCLID and hashed user data together as match keys, so Google uses whichever produces the better match.

Rule of thumb

Capturing a GCLID cleanly across every form, redirect, and device is harder than it looks. If your dev resources are thin, lead with Enhanced Conversions for Leads keyed on hashed email. If you have clean GCLID capture already, keep it and add hashed data on top. Doing both is not overkill, it is the belt-and-suspenders version.

Step 1: Turn on auto-tagging and capture the GCLID

None of this works without the GCLID, so start there.

Turn on auto-tagging. In Google Ads, open your account settings and confirm auto-tagging is enabled. This is the switch that tells Google to append the gclid parameter to the URL every time someone clicks your ad. It is on by default for many accounts, but check it, because if it is off, no click IDs exist to capture and everything downstream is dead on arrival.

Capture the GCLID on your forms. When a visitor lands from an ad, the GCLID sits in the page URL as ?gclid=.... You need to grab it and drop it into a hidden field on your lead form so it submits along with the name and email. The standard approach is a small script on every page and a hidden input on each form:

<!-- Hidden field inside your form -->
<input type="hidden" id="gclid_field" name="gclid_field" value="">

A short script reads the gclid from the URL, stores it in the browser (commonly in local storage with roughly a 90-day life so it survives the visitor browsing a few pages before converting), and writes it into that hidden field on submit. Google publishes a reference script for exactly this in its offline conversion documentation. Place the script on every page, not just your landing pages, because people wander before they fill anything out.

Watch out

The GCLID is case-sensitive. Cj0abc and cj0abc are not the same ID. If anything in your form tool, spreadsheet, or CRM lowercases or trims the value, the upload will silently fail to match later. Store it raw, exactly as received.

If you use a form builder or CRM with native Google Ads support, check its settings first. Many will capture the GCLID for you with a toggle, which spares you the custom script entirely.

Step 2: Store the GCLID with the lead in your CRM

Capturing the GCLID is pointless if it does not make it onto the lead record. This step is where the whole chain most often breaks, so treat it carefully.

Create a dedicated field on your contact or lead object, something like gclid or Google Click ID, and map the form's hidden field to it. From the moment the lead is created, that ID should live on the record and travel with it through every stage of your pipeline, from new inquiry to qualified to closed won. When the sale finally closes, you look up the GCLID that has been sitting on the record the whole time and use it to report the conversion.

Alongside the GCLID, store the conversion time (when the deal actually closed) and the conversion value (what it was worth). Those two fields are what let you upload revenue, not just a binary "closed," which is what makes value-based bidding possible later.

The break I see most is the handoff between objects, not the form. The GCLID lands on the contact just fine, then a rep opens a deal by hand and the ID never comes along, so when it closes there's nothing to match on. Map the field everywhere the lead travels, contact to deal, not just the form, and spot-check a few real records a week in before you trust it. If the ID isn't on the closed deal, none of the rest of this works.

Watch out

Manual deal creation is the silent killer here. If a salesperson creates an opportunity by hand instead of converting the captured lead, the GCLID never makes it onto the deal, and that customer looks like it came from nowhere. Make the ID flow automatically from lead to deal, or you will only ever match the subset of sales that happened to stay on the automated path.

Step 3: Create the offline conversion action in Google Ads

Before you can upload anything, Google needs a conversion action to receive it.

In Google Ads, open the Goals section, go to Summary, and create a new conversion action. Choose the source for conversions that come from offline sources, such as imports from clicks, calls, or other data sources. Google will walk you through naming the action, choosing a category, and deciding how it counts.

Define the action around the outcome that matters to your business. For a clinic that might be Booked consultation; for a contractor, Signed estimate; for most lead-gen accounts, a Qualified lead and a separate Closed deal are the two worth tracking. Each gets its own offline conversion action so you can see where leads stall.

You will also set whether this action is Primary (used for bidding) or Secondary (tracked for reporting only). A sensible starting point is to keep your fast on-site action as the Primary that bidding learns on day to day, and bring the deeper offline action in as Primary only once you are uploading enough volume for it to teach the algorithm reliably. Thin, infrequent signals confuse Smart Bidding more than they help.

Watch out

After you create an offline conversion action, give it a few hours before you upload to it. Google recommends waiting roughly four to six hours so the action is fully ready, otherwise your first upload can error out for no obvious reason.

Step 4: Import the outcome back to Google Ads

Now you send the outcomes back. There are three practical ways to do it, from most manual to most automated. Pick based on your volume and how much engineering help you have.

Option A: Manual file upload

The simplest path. Start from Google's conversion import template rather than a blank sheet, because it already includes the required parameters row at the top, where you set your time zone, above the column headers. Fill in one row per closed deal with the GCLID, the conversion action name, the conversion time, the conversion value, and the conversion currency, then upload the file by hand in Google Ads under Goals and Uploads. Good for low volume and for your first test. The downside is obvious: someone has to remember to do it.

Option B: Scheduled Google Sheet or hosted file

A big step up with no code. You keep your conversions in a Google Sheet (or a CSV hosted at a stable URL) using Google's format, then set a Schedule so Google Ads pulls from it automatically on a cadence you choose, daily or weekly. Your CRM or an automation populates the sheet, and the import runs on its own. This is the sweet spot for most small and mid-sized businesses: durable, hands-off, and free.

Option C: Automated via API or a connector

The most robust option. A CRM integration, a tool like Zapier, or a direct API connection writes each closed deal back to Google Ads as it happens, so there is no file and no schedule to maintain. This is worth it at higher volume or when you want near-real-time data. If you go this route, note the 2026 change below, because the upload plumbing is moving.

2026 change to know

As of June 15, 2026, offline conversion imports and Enhanced Conversions for Leads uploads are migrating to the Data Manager API, and the older Google Ads API path for these uploads is being blocked. The migration applies to the Google Ads API path, so manual and Google Sheet uploads in the interface, which do not use that API, are not affected. If you or a partner upload through the API, confirm the connection runs on Data Manager so your imports do not stop.

One hard limit applies to every method: you can only upload a conversion tied to a click from the last 90 days. If your sales cycle runs longer than three months, the GCLID will expire before the deal closes, which is one more reason to run Enhanced Conversions for Leads alongside it.

The hashed-email alternative: Enhanced Conversions for Leads

If the GCLID chain feels brittle, this is the path Google now recommends you start with. Enhanced Conversions for Leads works in two parts.

Capture hashed user data at the lead stage. Configure your Google tag, through Google Tag Manager or directly, to collect the email (and optionally phone and name) the lead submits. The tag hashes that data with SHA-256 in the browser before anything is sent, so Google only ever receives the hashed version.

Upload the outcome keyed on that data. When the lead closes, you upload the conversion matched by the same hashed email rather than a GCLID, using Google Ads Data Manager or an API connection. Because the match key is an email the customer already handed you, it holds up even when the click ID is long gone.

Google describes Enhanced Conversions for Leads as an upgraded form of offline conversion import, with better durability and more accurate reporting than GCLID alone. For a lead-gen business living through steady cookie erosion, that durability is the point. And since it still accepts the GCLID as an additional match key, you are not choosing against precision by using it, you are adding a fallback.

In plain terms

GCLID says "this exact click became a customer." Enhanced Conversions for Leads says "the person with this email became a customer, and here is the hashed proof." The first is precise when it survives. The second almost always survives. Run them together and you get both.

How this feeds Smart Bidding

This is where the work pays off. Smart Bidding strategies like Maximize Conversions, Target CPA, and Target ROAS all set bids by predicting the chance that a given click converts, and how much it is worth. The quality of that prediction is capped by the quality of the data you feed it.

Feed it form fills and it optimizes for form fills. Feed it qualified leads and closed deals with real values attached, and it starts optimizing for revenue. The keywords, audiences, and placements that produce buyers get more budget; the ones that produce noise get less. You did not change your bids, you changed what the machine is aiming at.

The move that unlocks the most is value-based bidding. Once you are uploading a conversion value with each closed deal, you can switch to a value strategy like Target ROAS, and Google will chase high-value customers rather than treating a $500 job and a $15,000 job as the same conversion. For businesses with a wide spread in deal size, this is often the single biggest lever available.

One caveat worth building in: Smart Bidding only learns well when it gets a steady flow of conversions. If your sales cycle runs weeks or months, the final sale may not happen often enough to bid on directly, and the strategy can stall in learning mode on too little data. When that is the case, optimize toward the highest-funnel event that still reflects real quality, a qualified lead or a booked consultation, and keep importing the closed deal afterward for reporting and value. The right event to bid on is the one that is both close to revenue and frequent enough to teach the algorithm, and where that line falls depends heavily on your industry and sales process.

Honestly, it's not that people don't care, it's a knowledge gap. The average SMB sets up Google and their CRM to the best of their knowledge, in a way that works for them, which isn't always the way it should be set up. A lot of them don't even know you can link the CRM back to Google Ads and Analytics, and the ones who do often lean on a one-click CRM integration that isn't configured right. And even when the data is flowing, they don't always know how to read what it's telling them, so nothing gets optimized past that first setup.

For the Facebook and Instagram version of this same discipline, sending real outcomes back to the ad platform instead of surface events, see our guide on setting up the Meta Pixel and Conversions API.

Common mistakes

The offline setups we end up rebuilding tend to fail in the same handful of ways:

  • Auto-tagging switched off. No auto-tagging means no GCLID on any click, which means nothing to capture and nothing to upload. It is the first thing to check and the easiest to miss.
  • GCLID captured but never stored. The hidden field exists on the form, but it was never mapped to a CRM field, so the ID vanishes the moment the lead is created.
  • Casing or trimming corrupts the ID. A spreadsheet or integration quietly lowercases or truncates the GCLID, and every upload fails to match a click.
  • Uploading past the 90-day window. Long sales cycles close after the click ID has expired, so the conversion is rejected. Enhanced Conversions for Leads on hashed email is the fix.
  • Making a thin offline action Primary too early. Pointing bidding at a closed-deal action that fires a few times a month starves Smart Bidding of signal. Build volume first.
  • Uploading a flat count instead of a value. Treating every deal as one identical conversion throws away the information that makes value-based bidding work.

How Pedal sets this up for clients

We treat the offline loop as the difference between an account that reports well and an account that actually makes money. On a lead-gen engagement, one of the first things we map is the journey from click to closed deal, and where the data falls off along the way. Usually it falls off at the CRM handoff, every time.

Then we build the loop to survive. Auto-tagging confirmed, the GCLID captured and mapped to a durable field, Enhanced Conversions for Leads on so match quality holds through cookie loss, and the uploads automated so they run without anyone babysitting a spreadsheet. Once real outcomes are flowing back, we move bidding onto them and, where deal sizes vary, onto value. That is the point where the account stops chasing cheap leads and starts chasing customers.

We build all of it inside your Google Ads and your CRM, not ours. You own the account, the tags, the click IDs, and the conversion history, so if we ever part ways, the entire setup stays with you. That is deliberate, and it is not how every agency works. Pedal runs paid media from $2,500 per month, month-to-month, with no long lock-in, and we work with lead-generation businesses where the sale closes well after the click.

Frequently asked questions

The GCLID is the Google Click Identifier, a unique string Google appends to your landing page URL when someone clicks your ad, as long as auto-tagging is on. It identifies that specific click. If you capture and store it with the lead, you can later tell Google that this click became a customer, which is the whole basis of offline conversion tracking.

For most small and mid-sized businesses starting fresh, Google now recommends Enhanced Conversions for Leads, which matches on hashed first-party data like email so it survives cookie loss and does not depend on your forms capturing a GCLID cleanly. GCLID-based import still works and still helps attribution, and the most durable setup captures the GCLID and sends hashed user data together as match keys.

Smart Bidding optimizes toward whatever conversion you feed it. If you only feed it form fills, it finds you more form fills, including the cheap, low-intent ones. When you feed it qualified leads or closed deals instead, it learns which clicks, keywords, and audiences actually produce revenue and shifts budget toward them.

Capturing the GCLID usually needs a small script and a hidden form field, which a developer or a tag manager can handle in under an hour. Many CRMs and form tools also have a native setting or a connector that captures it for you. The uploads themselves can be done with no code at all through a Google Sheet or a manual file.

Upload on a regular cadence that matches your sales cycle, often weekly, and always within 90 days of the original click, because Google will not accept conversions tied to clicks older than that window. A scheduled Google Sheet import or an automated connection keeps this running without someone remembering to do it by hand.

Yes. As of June 15, 2026, offline conversion imports and Enhanced Conversions for Leads uploads are migrating to the Data Manager API, and the older Google Ads API path for these uploads is being blocked. The migration applies to the Google Ads API path, so manual and Google Sheet uploads in the interface, which do not use that API, are not affected. If you or a partner upload through the API, confirm the connection is on Data Manager.

Sources