Quick answer: Offline conversion tracking connects conversions that happen after the click (a qualified lead, a closed deal, a phone sale) back to the Google ad that drove them. You capture the Google Click ID (GCLID) when someone lands, carry it through your CRM, then import the conversion and its real value back to Google Ads so Smart Bidding optimizes on revenue instead of form fills.
Most Google Ads accounts running lead gen or B2B are optimizing toward the wrong number. Google sees the click and the form fill, then goes blind. It never learns which of those forms became a $15,000 contract and which became a tire-kicker who ghosted your sales team. Offline conversion tracking closes that loop. This guide covers how the GCLID flow works, how to capture the click ID so it survives your sales process, how to import conversions back to Google, and the mistakes that quietly break the whole system.
What offline conversion tracking actually does
When a customer clicks your Google ad, fills out a form, and closes the tab, Google records two things: the click and (if you track it) the form submission. What happens next is invisible to Google. The lead gets routed to a rep. The rep qualifies it over two weeks. On day 15 the prospect signs a $15,000 contract.
Google never sees that revenue. Your campaign is still optimizing for form fills, which means it is bidding hardest on the keywords and audiences that produce the most forms, not the most money. Those are rarely the same thing.
Offline conversion tracking sends that backend revenue back to Google Ads. It links the conversion in your CRM or billing system (Salesforce, HubSpot, Pipedrive, Stripe) to the original ad click, so Google can learn which clicks turn into customers. This is the same closed-loop principle behind server-side conversion tracking: stop trusting the browser to tell the whole story, and feed the ad platforms the data they actually need to bid well.
Why it matters most for lead gen and B2B
Three structural problems make standard pixel tracking unfit for considered purchases.
The conversion happens in the wrong place. Client-side tracking fires when something happens on your website. In lead gen, the conversion that matters happens in your CRM, days or weeks later, when a human decides the lead is real. If 1 in 10 form fills becomes a qualified lead and 1 in 5 of those closes, optimizing on “form fills” tells Google to chase volume that mostly evaporates.
The attribution window is too short. Google’s standard click-through window is 30 days. Enterprise deals take 60 to 90 days. Mid-market takes 30 to 45. A click on day 1 that converts on day 45 is simply never counted unless you extend the window and import the conversion yourself.
The sales process is multi-touch. A B2B buyer clicks an ad, joins your list, watches a webinar, takes a demo, and signs six weeks later. Google sees only the first click. Offline conversion tracking lets you credit that click with the revenue it eventually produced.
Here is the economic shape of the change. The numbers below are an illustrative model, not a benchmark, but the direction is what every account sees when it switches the optimization target from forms to qualified leads:
| Optimizing for form fills | Optimizing for qualified leads | |
|---|---|---|
| Cost per form fill | $40 | $50 |
| Form fill to qualified lead | 20% | 30% |
| Cost per qualified lead | $200 | $167 |
| Qualified lead to customer | 33% | 40% |
| Cost per customer | $600 | $417 |
Your cost per form fill goes up. That is fine. Your cost per customer drops, because Google is now buying clicks that turn into money.
The GCLID flow, end to end
GCLID stands for Google Click ID, a unique string Google appends to your landing page URL on every ad click:
https://yoursite.com/landing?gclid=TW7DFvQp6s0CFS1dAQod23sQAw
That string is the key that lets Google match a later conversion back to the original click. The full flow runs in seven steps:
- Click. The customer clicks your ad. Google generates a unique GCLID.
- Land. They arrive on your site with the GCLID in the URL.
- Capture. Your site reads the GCLID and stores it (hidden form field, first-party cookie, or server-side record).
- Carry. The GCLID travels with the lead into your CRM and stays attached to the record through the sales process.
- Convert. The lead becomes a qualified lead, signs, or pays. Your CRM now holds the GCLID plus the conversion value and date.
- Import. You send Google the conversion: this GCLID converted on this date for this value.
- Optimize. Google matches the GCLID to the click and feeds the revenue signal into Smart Bidding.
The part everyone gets wrong is not the capture. Capture is a twenty-minute job. The system dies at step 4, the handoff, where the GCLID has to survive every tool and every human that touches the lead. Most “we set up offline conversions and nothing improved” stories are not capture failures. They are plumbing failures.
Capturing the GCLID so it survives
The entire system fails silently if the GCLID is not captured cleanly. Pick the method that matches how much control you have over your site.
Hidden form field (simplest). Add a hidden input and populate it on page load:
<input type="hidden" id="gclid" name="gclid" value="">
<script>
const gclid = new URLSearchParams(window.location.search).get('gclid');
if (gclid) document.getElementById('gclid').value = gclid;
</script>
When the form submits, the GCLID rides along with the rest of the lead data. The weakness: it only works if the form is submitted in the same session as the ad click.
First-party cookie (more durable). Store the GCLID in a cookie on landing so it persists across pages and return visits:
<script>
const params = new URLSearchParams(window.location.search);
const gclid = params.get('gclid');
if (gclid) {
const expires = new Date(Date.now() + 90 * 24 * 60 * 60 * 1000).toUTCString();
document.cookie = `_gclid=${gclid}; expires=${expires}; path=/`;
}
</script>
Read the cookie on form submit and write it into the hidden field. This holds the GCLID for 90 days, so a visitor who comes back a week later is still attributable.
Server-side capture (most reliable). Read the GCLID from the URL in your backend, store it against the session or user record, and attach it at conversion time. This survives blocked cookies and disabled JavaScript, which is exactly why it is the most resilient option and why it pairs naturally with a managed server-side conversion tracking setup. If you are already routing events server-side, the GCLID is just one more field you persist.
Whichever method you use, validate it before you trust it. Click a live ad (or append a fake ?gclid=test123 to your landing URL), submit the form, and confirm the GCLID landed in your CRM record. If it did not arrive in testing, it will not arrive in production.
Create the offline conversion action in Google Ads
Before you can import anything, you need a conversion action set up to receive it.
In Google Ads, go to Goals, Conversions, then create a new conversion action and choose Import, then CRM data or other data sources. The settings that matter:
- Category. Use “Qualified lead” or “Sales” so the name reflects the real outcome, not “form submission.”
- Value. Choose “Use different values for each conversion” if deal sizes vary, which they almost always do in B2B. Sending the same flat value for every deal throws away most of the signal.
- Count. “One” for lead gen (one customer is one conversion), “Every” for repeat purchases.
- Click-through window. Extend it to 60 or 90 days to match your sales cycle. Leaving it at 30 days silently discards every conversion that takes longer.
Name it something specific like “Qualified Lead (CRM)” so future-you knows exactly what it represents.
Five ways to import conversions
Once the action exists, you need to get conversions into it. From least to most automated:
Manual CSV upload. Export GCLID, conversion name, date, value, and currency from your CRM and upload it under the conversion action. Fine for testing or tiny volumes, painful and error-prone at scale.
Zapier. Trigger on “deal won” in your CRM and map fields into the Google Ads “offline conversion” action. Quick to build with no code, but Zapier bills per task, so cost climbs as volume grows.
Native CRM integration. HubSpot, Salesforce, and Pipedrive all ship Google Ads connectors that push closed deals back automatically. Reliable, but the field mapping and conversion logic are as rigid as the connector allows.
Google Ads API. A developer builds a scheduled job that queries your CRM and posts conversions through the API. Maximum control and scale, maximum engineering time, and it becomes something your team has to maintain.
Convultra. Connect Convultra to Google Ads and the conversions it captures on your site (leads, signups, purchases) forward automatically with the GCLID and hashed enhanced-conversion data attached, deduplicated for you, with a delivery log showing Google’s response to each one. That covers the capture half of this guide and the on-site conversions without writing or maintaining an integration. CRM revenue sync, where closed deals in HubSpot, Salesforce, or Pipedrive flow back to Google as offline conversions, is coming soon; until it ships, pair Convultra’s GCLID persistence with one of the import paths above for the closed-deal upload. The same pipeline delivers to OpenAI Ads today, and the conversion API connections to Meta, Microsoft Ads, and TikTok are coming soon, so you are not rebuilding the plumbing per platform.
Enhanced Conversions for Leads, the GCLID-free alternative
If you cannot reliably capture the GCLID, Google Ads enhanced conversions for leads is the fallback. Instead of a click ID, you send hashed customer contact data (email, phone, name) at form submission and again at conversion. Google hashes and matches the two.
It is genuinely useful when GCLID capture is unreliable, and the hashing keeps raw data out of Google’s hands, which helps with privacy reviews. The trade-offs: match rates run a little lower than clean GCLID matching, and you are now responsible for sending hashed identifiers correctly at two points instead of one. In practice, the strongest setups use GCLID as the primary signal and enhanced conversions as a backstop for the clicks where the ID went missing.
The mistakes that quietly break it
Offline conversion tracking rarely fails loudly. It fails by under-reporting while everything looks fine. The usual culprits:
- The GCLID dies in the handoff. A rep manually creates the lead in the CRM and never copies the GCLID. Make the field automatic and required, never hand-keyed.
- Sending stale conversions. Google only accepts conversions within 90 days of the click. Backfilling six months of history mostly gets rejected.
- Wrong value. Send the true revenue, including the full contract value, not the lead’s estimated pipeline value or a flat placeholder.
- Double counting. Running a pixel and an offline import for the same conversion inflates your numbers. Pick one method per conversion type.
- Window mismatch. A 30-day click-through window on a 75-day sales cycle throws away your best deals. Match the window to reality.
- Never validating. Push a test conversion and confirm it appears in Google Ads (allow up to 24 hours) before you trust the data for bidding decisions.
Optimizing once the data flows
When real conversions are landing in Google, change how you run the account. Move your bid strategy off form fills and onto qualified leads or closed deals, and reset Target CPA to your true cost per customer rather than your cost per form. Expect cost per form to rise and cost per customer to fall.
Give Smart Bidding real data and it does the rest: raising bids on the searches that produce revenue, cutting them on the ones that produce noise. Watch your conversion lag report (Google Ads shows median time from click to conversion) and resist judging campaigns before that lag window has passed, or you will kill campaigns that simply have not finished converting yet. If you are still standing up the basics, the broader google ads conversion tracking guide covers the pixel and tag foundation this layer sits on top of.
Accounts that switch from proxy metrics to real revenue typically see cost per acquisition improve by 15 to 20 percent over the first 30 to 60 days, simply because the algorithm is finally optimizing toward money instead of toward forms.
Get started with Convultra
Offline conversion tracking is the difference between a Google Ads account that optimizes on form fills and one that optimizes on revenue. Convultra handles the part that breaks most setups, capturing the GCLID on landing and keeping it attached to the lead, and forwards your on-site conversions to Google Ads with enhanced conversions today; CRM revenue sync is coming soon. Start your free trial, connect Google Ads, and have your first qualified leads syncing back to Google in minutes.