Features Pricing Guides Security About Contact Sign in WhatsApp us Start free
Google Ads Conversion tracking Lead generation

How to send offline conversions to Google Ads from your CRM

This guide covers how to send offline conversions to Google Ads from your CRM — the step most lead-generation advertisers skip, and the one that fixes the biggest blind spot in their account. Right now, Google Ads is optimising against the wrong thing. It can see that someone filled in your form. It cannot see whether that person answered the phone, showed up, or paid you anything. So it goes looking for more people who fill in forms — which is not the same as more people who buy.

Offline conversion tracking is how you close that gap. You send the outcome back to Google, matched to the exact click that produced it, and its bidding starts optimising toward real revenue instead of form submissions. This guide covers the whole process end to end, including the step most articles skip — actually getting the click ID into your CRM in the first place.

The short version

  1. Capture the gclid from the landing page URL when a visitor arrives.
  2. Store it alongside that lead in your CRM, permanently.
  3. Create an offline conversion action in Google Ads.
  4. When the lead becomes a customer, send the gclid, the conversion time and the value back.

Steps 1 and 2 are where almost everyone fails, and they happen before Google Ads is involved at all. If you do not have the gclid, nothing else in this guide is possible — so start there.

What a gclid actually is

When somebody clicks your Google ad, Google appends a parameter to your landing page URL:

https://yoursite.com/enquiry?gclid=Cj0KCQjw2eilBhCCARIsAG0Pf8v...

That gclid — Google Click Identifier — is a unique reference to that one click. It is how Google knows which ad, which keyword, which device and which campaign produced the visit. It is also the only thing that lets you connect a sale that happened weeks later, on the phone, back to the click you paid for.

On iOS you will also see gbraid and wbraid. Google introduced these for traffic where privacy restrictions prevent a normal gclid. Capture all three. A lead carrying wbraid instead of gclid is still perfectly reportable — but only if you stored it.

The critical thing to understand: the gclid exists only in that first URL. If the visitor navigates to another page, or your form posts without carrying it along, it is gone. There is no way to recover it afterwards. This is why so many businesses discover the problem months later, with a year of leads that can never be attributed.

Step 1 — Capture the gclid on your landing page

You need to read the parameter out of the URL and put it somewhere your form will submit. The minimum viable version is a hidden field plus a few lines of JavaScript:

<!-- inside your form -->
<input type="hidden" name="gclid" id="gclid">

<script>
  var params = new URLSearchParams(window.location.search);
  ['gclid','gbraid','wbraid'].forEach(function (key) {
    var value = params.get(key);
    var field = document.getElementById(key);
    if (value && field) { field.value = value; }
  });
</script>

That works, with two real caveats worth knowing before you rely on it.

It breaks if the visitor lands on one page and converts on another. Someone arrives on your homepage with the gclid, browses to your contact page, and submits there — by which point the parameter is no longer in the URL. The usual fix is to write the value into a first-party cookie on arrival and read it back at submission time, so it survives navigation across your site.

It only helps if the value survives into your database. A hidden field that your form handler ignores is decoration. Whatever receives the submission — your CRM, your email script, your Google Sheet — has to store that value against the lead and keep it there.

If your landing pages are built in WordPress, Wix, Shopify or a page builder, the same principle applies: add the hidden field, populate it on load, and confirm the value actually arrives on the other end. Submit a test lead with ?gclid=TEST123 on the URL and go and look at the stored record. Do not assume.

Step 2 — Store it with the lead, permanently

The gclid has to live on the lead record for as long as your sales cycle takes, which in real estate or education can be months. Two things people get wrong here:

  • Storing it in a note field. It needs to be a real, queryable field, because you will eventually need to export or upload every lead that has one.
  • Losing it on merge. Deduplicating leads is normal; silently dropping the gclid of the duplicate you merged away is how attribution quietly decays.

Store the conversion time too — the actual moment the lead became a customer, not the moment you got round to updating the record. Google uses it to attribute the conversion to the right period, and a timestamp that is days late will distort your reporting.

Step 3 — Create the offline conversion action in Google Ads

  1. In Google Ads, open Goals → Conversions → Summary.
  2. Click + New conversion action and choose Import.
  3. Select CRMs, files, or other data sources, then Track conversions from clicks.
  4. Name it something you will recognise later — Qualified Lead, Site Visit Booked, Sale. You will likely want more than one.
  5. Set a value. Use the actual deal value if you know it; otherwise a sensible average is far better than nothing, because value-based bidding needs something to optimise against.
  6. Set the attribution window to cover your real sales cycle. The default will not.

Create a separate action for each meaningful stage. Reporting only final sales gives Google very few data points to learn from, and machine bidding needs volume. Many advertisers report a mid-funnel stage such as "qualified" as well, at a lower value, so the algorithm gets a faster signal.

Step 4 — Upload the conversions

There are three ways to do this, in increasing order of how much you will actually keep doing it.

Option A — Upload a spreadsheet by hand

Google accepts a CSV with a specific header block. The columns you need are the click ID, the conversion action name, the conversion time and the value:

Parameters:TimeZone=+0530
Google Click ID,Conversion Name,Conversion Time,Conversion Value,Conversion Currency
Cj0KCQjw...,Sale,2026-08-01 14:32:00,45000,INR

Upload it under Goals → Conversions → Uploads. It works, it is free, and it is the right way to test the whole chain before automating anything.

It also stops happening. Weekly manual exports survive about a month in most businesses, and the moment they stop, your bidding quietly goes back to optimising for form fills. If you choose this route, put a recurring calendar reminder on it and treat it as a real task.

Option B — Schedule the upload from a sheet

Google Ads can pull a scheduled upload from a Google Sheet or an HTTPS URL on a fixed schedule. This removes the "someone has to remember" problem, but you still have to keep the sheet accurate, which usually means exporting from your CRM into it. It is a reasonable middle step.

Option C — Upload automatically through the API

The Google Ads API accepts click conversions programmatically, so the upload happens the moment the lead's status changes in your CRM. No exports, no schedule, no drift. This is what any tool with a real Google Ads integration is doing behind the scenes.

This is exactly what Claudphic Ads does: it captures the gclid, gbraid, wbraid, fbclid and UTM values automatically when the lead arrives, stores them on the lead, and uploads the conversion to Google Ads the moment you drag that lead to Won — retrying on failure and keeping a full log of what was sent. It does the same for Meta through the Conversions API. But the process above is the process regardless of what you use it with, and you should understand it before you buy anything.

How to tell whether it is working

Uploaded conversions do not appear instantly. Give it up to 24 hours, then check Goals → Conversions and look at the row for your new action.

Two numbers matter:

  • Conversions recorded. If this stays at zero, either the gclid never made it into your data, or the conversion time falls outside the click's attribution window.
  • The match rate on the upload report. Google tells you how many rows it accepted. A low rate almost always means truncated or mangled gclids — check that whatever produced your file is not trimming them or turning them into a formula.

The mistakes that cost the most

  • Starting to capture the gclid only after you decide to do this. Everything before that date is permanently unattributable. If you run ads at all, start capturing today, even if you will not upload for months.
  • An attribution window shorter than your sales cycle. If you close in 60 days and the window is 30, the conversion is simply rejected.
  • Uploading junk as if it were real. This one is worth being blunt about. If bots and fake leads are marked as conversions and sent back, you have told Google that a bot is your ideal customer, and it will go and find you more traffic exactly like it. Your cost per lead will look fine while your actual sales fall. Filter before you upload — how we handle that.
  • Reporting only the final sale. Too few data points for the bidding algorithm to learn from. Report a qualified stage as well.
  • Assuming it worked. Test with a real lead you can trace end to end before you trust the numbers.

What this will and will not fix

It will fix the fundamental problem that Google is optimising for form fills. Within a few weeks of consistent, accurate conversion data, smart bidding starts favouring the campaigns, keywords and audiences that produce actual customers, and you can finally see cost per sale rather than cost per enquiry.

It will not fix a weak offer, a landing page nobody converts on, or a sales team that does not call leads back. Attribution tells you the truth about your ads; it does not improve them for you. And it needs volume — with a handful of conversions a month, the algorithm has too little to learn from, and you should be reading the data manually rather than expecting automated bidding to work miracles.

Where to go next

If you want this running without spreadsheet exports, that is precisely the problem Claudphic Ads was built for — capture, pipeline and upload in one place, from ₹999/month. There is a free trial, and you can see the whole flow working on your own landing page before paying anything.

If you would rather do it yourself, everything above is the complete process. Start with step one today — the gclid you fail to capture this week is a sale you can never attribute.

Want this running without spreadsheet exports?

Claudphic Ads captures the click ID automatically and uploads the conversion the moment you mark a lead Won. From ₹999/month, with a free trial.

Read next

← All guides

Call now Start free →