Offline Conversions: Connect Your CRM to Google Ads

A form fill is not a customer. Your ad platform does not know that, though. By default Google Ads counts the lead the moment someone hits submit, then spends your budget chasing more of whatever produced that submit. If half of those leads are tire-kickers, students, or competitors poking around, the algorithm cheerfully optimizes for tire-kickers, students, and competitors.

Offline conversion tracking closes that gap. You capture the click that produced a lead, follow that lead through your CRM, and when it turns into a qualified opportunity or a signed deal, you send the outcome back to the ad platform. Now bidding learns from money, not from button clicks. For B2B, where a sale can take weeks and most leads never close, this is often the single change that moves a paid program from "spends budget" to "produces pipeline."

Here is how the plumbing actually works, what to set up first, and where teams get it wrong.

Why online conversions mislead B2B advertisers

In e-commerce the conversion is the purchase, and it happens on the site within minutes. Paid search optimization is straightforward there. B2B breaks every part of that assumption. The conversion event you can fire on your site (a form, a call, a demo request) sits at the very top of a long process. Weeks of qualification, a few meetings, and a procurement cycle stand between that event and revenue.

So the platform optimizes toward the wrong target. Two campaigns can show the identical cost per lead while one produces deals and the other produces noise. Smart Bidding has no way to tell them apart unless you tell it. Feeding deal outcomes back is what lets automated bidding chase qualified pipeline instead of raw volume. Without that signal, you are tuning a machine on a metric that does not pay your salary.

The fix has a name in each platform: Offline Conversion Import in Google Ads, offline conversions in Microsoft Ads, the Conversions API and CRM sync in LinkedIn. The mechanics differ, the idea is identical. Record which ad click created which lead, then report back what that lead was worth.

The data flow, end to end

Every offline conversion setup follows the same five steps. Get these right in order and the platform-specific details fall into place.

StepWhat happensWhere it lives
1. Capture the click IDThe ad click writes an identifier (GCLID for Google, MSCLKID for Microsoft) into the URLLanding page
2. Store it with the leadYour form saves that ID alongside the contact recordCRM
3. Move the deal forwardSales qualifies, meets, and (sometimes) closes the opportunityCRM pipeline
4. Export the outcomeWhen a stage you care about is reached, the click ID plus a value and timestamp are sent backCRM to ad platform
5. Bidding learnsThe platform attributes the outcome to the original click and adjustsAd platform

The fragile link is step one to step two. If the click ID never makes it into your CRM, nothing downstream can work. Most failed implementations die right here, so test it before you build anything else.

Step 1 and 2: capture and store the click ID

When someone clicks a Google ad, Google appends a gclid parameter to your landing page URL, something like ?gclid=YOUR_GCLID_VALUE. You need to grab that value and carry it through to the form submission.

The common pattern: a small script reads the gclid from the URL, writes it to a first-party cookie (so it survives the visitor browsing other pages), and populates a hidden form field on submit. Your CRM then needs a custom field, often called something like gclid or ad_click_id, to receive it. The same approach captures msclkid for Microsoft Ads. Turn on auto-tagging in Google Ads first, otherwise no GCLID is generated at all. It is on by default, but verify it.

If you would rather not store click IDs, Google offers Enhanced Conversions for Leads. Instead of a GCLID, you upload hashed customer data (email, phone) that you already collect on the form. Google matches it back to the click on its side. The trade-off is below.

Step 4: send the outcome back

You have three realistic options, in rising order of effort and reliability.

  • Manual CSV upload. Export deals from your CRM, format a sheet with the click ID, conversion name, conversion time, and value, upload it in the Google Ads UI. Free, slow, error-prone, fine for a pilot or a tiny pipeline. Nobody should run this monthly forever.
  • Native CRM integration. HubSpot, Salesforce, and Pipedrive all offer connectors that push closed-loop data to Google Ads, sometimes with a few clicks. This is where most teams should land. Pick the CRM with this in mind if you are still choosing one.
  • Scheduled or API upload. A scheduled SFTP file or a direct Google Ads API job. The sturdy, hands-off option once volume justifies the build. It needs developer time.

Whichever you choose, you are uploading the same payload: the click ID, the name of the conversion action (for example Qualified Lead or Closed Won), the moment it happened, and a value.

Set up multiple conversion actions, not one

Treat each pipeline stage you care about as its own conversion action. A typical B2B setup:

  • Lead (form submit) fires on the site, value 0 or a small placeholder.
  • Qualified Lead uploaded from the CRM when sales marks it an SQL.
  • Closed Won uploaded with the actual or modeled deal value.

This staging matters more than it looks. A new account has almost no closed deals to learn from, and closures arrive weeks late, so optimizing to Closed Won alone starves the algorithm of signal. The "Qualified Lead" stage gives bidding a faster, higher-volume proxy that still correlates with revenue. Many B2B accounts optimize primarily to qualified leads and use closed-won data as a sanity check on which campaigns truly pay back. This is the same logic behind measuring paid search by revenue rather than clicks.

On values: send the real deal amount when you have it. When you do not, a sensible alternative is an average deal value per product or segment, marked internally as modeled. Even a flat value per qualified lead beats a value of zero, because it lets value-based bidding distinguish a $50,000 opportunity from a $2,000 one if you tier it.

GCLID versus Enhanced Conversions for Leads

Google now pushes Enhanced Conversions for Leads as the simpler path. Both work. The choice comes down to whether you can reliably store click IDs and how much engineering you want.

GCLID uploadEnhanced Conversions for Leads
What you storeThe GCLID in a CRM fieldHashed email or phone you already collect
Setup effortCapture script plus CRM fieldTag change, no click-ID plumbing
Main riskClick ID lost between form and CRMMatch rate depends on data quality
Best whenYou already capture GCLIDs cleanlyYou want fewer moving parts

A practical note worth checking against current Google documentation: GCLIDs have a limited validity window for import (roughly 90 days at the time of writing). Long B2B cycles can run past it, so a deal that closes four months after the click may not upload. Enhanced Conversions for Leads sidesteps the storage problem but introduces match-rate uncertainty. Plenty of mature accounts run both and reconcile.

Beyond Google: Microsoft and LinkedIn

Microsoft Ads mirrors Google almost exactly. Capture msclkid, store it, upload offline conversions on the same cadence. If you run Microsoft Ads as a secondary channel, the marginal effort to add it to your existing pipeline is small.

LinkedIn is different. It leans on the Conversions API and direct CRM integrations rather than a click-ID file. You connect your CRM (or a data source) and map lead and deal stages to LinkedIn conversion events. The payoff is the same: LinkedIn's bidding starts to favor the audiences that produce qualified pipeline, not just the ones that fill the lead-gen form. Given LinkedIn's cost per lead, knowing which job titles and companies actually convert to revenue is worth a lot.

Common mistakes that quietly break everything

Most offline conversion setups fail silently. The numbers look plausible, so nobody checks. Watch for these.

The click ID never arrives. Single-page apps, redirect chains, and aggressive cookie settings all drop the GCLID before the form saves it. Submit a real test lead, then look at the CRM record. If the field is empty, fix this before anything else.

Time zone and timestamp errors. Google needs the conversion time in a format and zone it accepts. A mismatch gets rows rejected on upload. Read the rejection report; do not assume a clean upload means a clean import.

Double counting. If your site already fires an online conversion for the same event you later upload offline, you can count one lead twice. Map each conversion action to exactly one stage and decide which ones are "primary" for bidding.

No value differentiation. Uploading every closed deal at the same value throws away your best signal. A CRM that already tracks deal size makes value-based bidding genuinely useful; flat values leave that on the table.

Set and forget. Sales changes how it stages deals, someone renames a pipeline field, the connector silently stops. Check your offline conversion counts against CRM reality once a month. A sudden drop to zero is usually a broken field mapping, not a bad month.

A realistic rollout

You do not need the full system on day one. A sane sequence:

  1. Turn on auto-tagging and confirm GCLIDs reach your CRM with one test lead.
  2. Create a Qualified Lead conversion action and upload a manual CSV for last month to prove the pipe works.
  3. Switch to a native CRM connector or scheduled upload so it runs itself.
  4. Add Closed Won with values once you have enough closures to be worth modeling.
  5. Move bidding to optimize on the qualified-lead signal, then watch cost per qualified lead, not cost per lead.

Each step is testable on its own. Resist wiring everything at once, because when something breaks you will not know which piece.

FAQ

Do I need a CRM to track offline conversions? You need somewhere that stores the click ID with the lead and records when the deal progresses. A CRM is the natural home. A well-structured spreadsheet can work for a pilot, but it will not scale or stay clean.

How long until bidding improves after I start sending offline conversions? Plan for several weeks. Smart Bidding needs a meaningful volume of conversions to retrain, and B2B closures arrive slowly. Optimizing to a qualified-lead stage rather than closed-won speeds this up because the signal arrives sooner and in higher volume. Treat the first weeks as a learning period and avoid big budget swings.

GCLID or Enhanced Conversions for Leads, which should I pick? If you can capture and store click IDs reliably, GCLID upload gives you precise control. If your dev resources are thin or click IDs keep getting lost, Enhanced Conversions for Leads removes the storage problem at the cost of depending on match rates. Running both and reconciling is common in mature accounts.

What value should I send when the deal has not closed yet? Use the qualified-lead stage with either a flat placeholder value or a modeled average deal value for that segment, marked internally as an estimate. The point is to differentiate a high-potential lead from a low one, not to be exact. Send the real amount once the deal closes.

Will this work with a long sales cycle of several months? Mostly, with a caveat. GCLID import has a validity window (check current Google docs, around 90 days), so deals closing well past it may not upload against the original click. This is the main reason to optimize on an earlier qualified-lead stage and to consider Enhanced Conversions for Leads, which does not depend on storing the click ID.

Does sending offline conversions share my customer list with Google? You send conversion outcomes tied to a click ID, or hashed contact data for matching, not your full customer database. Hashing happens before upload for Enhanced Conversions. Review your privacy policy and consent setup, and confirm what your CRM connector transmits before you turn it on.

Where to start

Run the test lead today. Auto-tagging on, submit a form, open the CRM record, see whether the click ID landed. That one check tells you whether the rest of this is a configuration job or a development project. From there, build toward a qualified-lead conversion action your bidding can actually use.

The teams that win at paid search are not the ones with the cleverest keywords. They are the ones whose algorithms know which leads turned into money. If wiring your CRM to your ad platforms feels like more plumbing than your team can take on right now, that is exactly the kind of closed-loop setup we build for clients. Ask us for a short audit of your tracking, and we will tell you straight where the signal is leaking before you spend another month optimizing on the wrong number.