The short answer
To track offline conversions in Google Ads you capture the gclid on every form submission, store it in your CRM, and when a lead becomes a qualified opportunity or closed sale you upload that event back to Google Ads with the original gclid attached. Google credits the conversion to the original click, regardless of how long ago it happened (up to 90 days).
This is the single highest-leverage change Ben makes on UK lead-gen accounts. Stop optimising towards form fills - optimise towards qualified leads, sales-accepted opportunities, or closed revenue. Smart Bidding then drives traffic that actually closes, not traffic that fills forms.
Why offline conversions matter
Most lead-gen accounts treat "form submitted" as the conversion. Google then optimises towards more form submissions - including the junk ones, the wrong-fit ones, the bots that slip past hCaptcha. Within weeks the algorithm has learnt to find people who fill out forms but never buy.
Offline conversion tracking flips this. You only tell Google "this was a real conversion" when the lead becomes qualified, books a meeting, or closes. The algorithm then learns the patterns of real buyers, not form-fillers. The downstream effects:
- CPA looks higher in the Google Ads UI (because you're counting fewer conversions) - but real-world CPA drops 30-50%
- Lead quality improves within 60 days as Smart Bidding shifts spend to higher-converting segments
- Sales team stops complaining about marketing leads
- Real ROAS becomes visible, which changes budget conversations with finance
The four tracking methods
Google Ads supports four ways to count offline conversions, each with different use cases:
| Method | Best for | Setup difficulty |
|---|---|---|
| Offline Conversion Import (OCI) via gclid | B2B lead gen, sales pipeline | Medium |
| Enhanced Conversions for Leads | Lead gen with hashed email/phone | Easy-Medium |
| Call tracking (Google Forwarding Numbers or third-party) | Phone-driven businesses | Easy |
| Store sales / in-store visits | Retail, multi-location | Hard |
Most UK B2B accounts need methods 1, 2 and 3. This guide focuses on those.
Method 1: Offline Conversion Import via gclid
The classic method. Capture the click ID, store it, upload it back when the lead converts to something meaningful.
Step 1: Enable auto-tagging
In Google Ads, go to Admin → Account Settings → Auto-tagging. Turn it on. This appends a gclid parameter to every URL Google Ads sends traffic to. Without auto-tagging, OCI cannot work. See Google's auto-tagging documentation.
Step 2: Capture gclid on landing pages
When a user lands on your site from a Google Ads click, the URL includes ?gclid=ABC123. You need to capture this and store it in a hidden form field so it submits with every lead form. Most teams use a small JavaScript snippet:
Capture the gclid from URL and store it in a cookie:
(function() {
var params = new URLSearchParams(window.location.search);
var gclid = params.get('gclid');
if (gclid) {
document.cookie = 'gclid=' + gclid + ';max-age=7776000;path=/;SameSite=Lax;Secure';
}
})();
Then on form pages, add a hidden field and populate it:
<input type="hidden" name="gclid" id="gclid_field">
<script>
var match = document.cookie.match(/gclid=([^;]+)/);
if (match) document.getElementById('gclid_field').value = match[1];
</script>
Most form builders (HubSpot Forms, Gravity Forms, Formstack, Marketo) have native gclid capture - turn it on instead of writing custom code.
Step 3: Store gclid against the lead in your CRM
Map the form's hidden gclid field to a custom property on the lead/contact record in your CRM. In HubSpot this is a Single-line text property called "Google Ad Click ID". In Salesforce it's a custom field on the Lead object. Same idea everywhere.
Step 4: Define a conversion action in Google Ads
In Google Ads, go to Goals → Conversions → New conversion action → Import → Other data sources or CRMs → Track conversions from clicks. Name it something clear: "Qualified Lead - OCI", "Closed Won - OCI", etc. Set the conversion category appropriately and decide if it should be a Primary or Secondary conversion (Ben's separate post on Primary vs Secondary covers this in detail).
Step 5: Upload conversions back to Google Ads
When a lead becomes qualified (or whatever stage you're tracking), trigger an upload to Google Ads with these fields:
- Google Click ID (the original gclid)
- Conversion Name (matches the Google Ads conversion action name)
- Conversion Time (when the qualification happened, in ISO format with time zone)
- Conversion Value (the deal value or expected value)
- Conversion Currency (GBP)
You can upload manually via CSV, programmatically via the Google Ads API, or - much easier - via a CRM integration (covered below).
Method 2: Enhanced Conversions for Leads
Newer, easier alternative to OCI. Instead of capturing gclid, you hash and upload the user's email or phone number, and Google matches it back to the click using its own data.
Enhanced Conversions for Leads works when:
- You collect email or phone on the form
- You can hash that data (SHA-256) before upload
- The user signed in to a Google service when they clicked the ad (most users in the UK are signed into Google or YouTube)
Match rate is typically 40-60% in the UK - lower than gclid's near-100%, but no developer work needed for the capture step. See Google's Enhanced Conversions for Leads guide.
Ben's recommendation: use both. Set up gclid OCI as the primary method, layer Enhanced Conversions for Leads on top to catch the cases where gclid is lost (e.g. users who clear cookies between click and form fill).
Method 3: Call tracking
For phone-driven businesses (legal, healthcare, home services, B2B sales) calls are often the most valuable conversion. Three options:
Google's call extensions and call-only ads
Free. Google substitutes a forwarding number into your ads, tracks call duration, and reports calls over a threshold (default 60 seconds) as conversions. Setup: 5 minutes via Google Ads → Goals → Conversions → Phone calls. Limitation: only counts ad-initiated calls, not calls from your site.
Google Forwarding Numbers on website
Same idea but on your website. Google injects a dynamic forwarding number that tracks back to the originating Google Ads click. See website call conversion tracking.
Third-party call tracking (CallRail, CallTrackingMetrics)
Best for serious phone-driven accounts. CallRail and CallTrackingMetrics give you full call recordings, transcripts, qualification scoring (manual or AI), and push qualified-call conversions back to Google Ads with the gclid attached. Cost: from £30/month per pool of numbers.
Critical: don't count every call as a conversion. Use call duration thresholds (60-90 seconds) or AI qualification to filter out wrong numbers, hang-ups, and existing customers calling for support.
Method 4: CRM-driven sales/deals upload
For accounts with a longer sales cycle (B2B, high-ticket services, real estate), tracking the closed deal back to the Google Ads click is the gold standard. The setup is the same as OCI above, but the trigger is different: instead of uploading "Qualified Lead", you upload "Closed Won" with the actual deal value.
Why this matters: Google Ads then sees true revenue, not lead volume. Smart Bidding's tROAS strategy works properly. Different lead sources show their true ROI, not a vanity metric. The conversation with finance shifts from "we spent £20k on Google Ads" to "we spent £20k and closed £180k in attributed revenue".
Multi-stage funnel
Best practice is to upload every meaningful stage, with different conversion actions:
- Form Submitted - tracked client-side, set as Secondary conversion (visibility only)
- MQL Qualified - uploaded via OCI, set as Secondary
- SQL Accepted - uploaded via OCI, set as Primary (this is what Smart Bidding optimises towards)
- Closed Won - uploaded via OCI with actual deal value, set as Secondary
This gives you the full funnel in Google Ads while keeping Smart Bidding focused on the stage that correlates best with actual revenue. See Ben's separate post on Primary vs Secondary conversions for the full setup.
CRM integrations
Don't build the upload pipeline from scratch unless you have to. Major CRMs have native or near-native Google Ads integrations:
- HubSpot - native Google Ads integration with offline conversion sync. Map a HubSpot lifecycle stage to a Google Ads conversion action and HubSpot uploads automatically every 24 hours. See Ben's separate post on connecting Google Ads with HubSpot for the full walkthrough. HubSpot Google Ads app.
- Salesforce - the Salesforce-Google Ads integration syncs Lead and Opportunity stage changes back to Google Ads. Requires Sales Cloud and a one-time setup by an admin.
- Pipedrive - via Zapier or Make to push deal-stage updates as Google Ads conversions. ~£30/month for the automation tier.
- Zoho CRM - native Google Ads integration via Zoho's marketplace. Similar setup to HubSpot.
- Custom CRM - use the Google Ads API directly, or push events through Segment or a similar CDP.
UK GDPR and Consent Mode v2
Three compliance points UK accounts must get right:
- Consent Mode v2 - if you operate in the UK or EEA, Google requires Consent Mode v2 signals. When users decline marketing cookies, Google's modelling fills in the gap. Set this up via your CMP (CookieYes, Cookiebot, OneTrust, Iubenda). See Google's Consent Mode v2 guide.
- Lawful basis for offline upload - uploading lead data to Google Ads counts as processing. Cover this in your privacy policy under "third-party processors" and rely on legitimate interests with a clear opt-out, or explicit consent.
- Data minimisation - only upload the gclid and conversion event. Don't upload PII you don't need to. Enhanced Conversions for Leads requires hashed (SHA-256) email or phone, which is the privacy-safe approach.
The ICO's UK GDPR guidance covers the legal basis side in detail.