How Do I Set Up Offline Conversion Tracking in Google Ads?
- Jesse Heslinga
- 1 day ago
- 10 min read
Most Google Ads accounts for lead-gen businesses count a form submission as a conversion. The form fires, the conversion registers, Google gets the signal: "this click turned into something good." The campaign keeps optimising toward more of the same.
The problem is that a form fill and a customer are not the same thing. For most service businesses, somewhere between 10% and 40% of form fills turn into real customers. The rest are price-shoppers, wrong service, bad geography, or outright spam. When Google's bidding is trained on form fills, it finds more of those too, not more customers.
Offline conversion tracking fixes this. You send the leads that actually converted, closed, booked, or qualified back to Google Ads after the fact. The campaign learns from real customers, not just submitted forms. It's one of the highest-leverage changes you can make to a lead-gen account, and the setup is less technical than it sounds.
The Short Answer
Offline conversion tracking imports closed leads or sales from your CRM back into Google Ads, linked to the original ad click
Google uses a unique identifier called a GCLID (Google Click ID) to match each sale to the ad that drove it
You need to capture the GCLID when a lead comes in, then send it back to Google when that lead qualifies or closes
Upload methods include manual CSV, Zapier/Make, native CRM integrations (HubSpot, Salesforce, Pipedrive), and Google's Data Manager
From April 2026, Google has merged Enhanced Conversions for Leads and offline imports into a single unified data setting; setup is simpler than it used to be
Why Form Fills Are the Wrong Conversion to Optimise For
Google's Smart Bidding works by finding more of whatever you tell it a conversion is. If you mark every form submission as a conversion, it finds more form submissions. It doesn't know or care whether those form submissions turned into revenue.
For a home services business, this plays out like this: Smart Bidding learns that people who search "affordable roof repair" submit forms at a high rate. So it bids up on those searches. They convert well on paper. But "affordable" attracts price-sensitive leads who get three quotes and usually don't book. The real booked jobs might come from "emergency roof repair" or "[city] roofing company," but those submit forms less often and so the algorithm deprioritises them.
The solution is to send back the signal that actually matters: this lead booked. This lead became a customer. When you do that, Smart Bidding starts optimising for the searches that generate customers, which is a different optimisation target than the searches that generate form fills.
This is the core idea behind offline conversion tracking. It closes the loop between what happens in Google Ads and what happens in your CRM.
Verdict: if you're running Smart Bidding and your only conversion action is a form fill, you're giving the system incomplete data. It will find the cheapest form fills, not the most profitable customers. If your cost per lead has been creeping up, this is often why.
Keep in Mind: This change doesn't happen overnight. Smart Bidding needs at least a few weeks of data and ideally 20+ qualified-lead conversions per month before it starts to learn the new signal reliably. The payoff builds over time, but the setup is worth doing even before you hit that volume.
What Offline Conversion Tracking Actually Does
The mechanic is simpler than the name suggests.
When someone clicks your ad, Google adds a unique parameter to the URL: ?gclid=AbCdEfGhIjKlMnOpQrStUvWxYz. This is the GCLID (Google Click ID). It's a fingerprint for that specific click from that specific person at that specific moment.
Your website captures that GCLID when the person lands. Your form stores it alongside the lead's name, phone number, and email. Now you have a record linking this person's contact details to the exact click that brought them to you.
Later, when that person books a job, signs a contract, or qualifies as a real lead in your CRM, you export: GCLID, conversion date, and optionally a conversion value. You send that data to Google Ads. Google matches the GCLID to the original click and registers a conversion.
Your bidding strategy now knows which click led to a real customer. Over time, it finds more of those.
Verdict: the mechanic is a database join: your CRM's qualified leads matched to Google's click fingerprint. The setup work is capturing the GCLID consistently and sending it back when leads close.
Step 1: Enable Auto-Tagging and Capture the GCLID
Auto-tagging is what adds the GCLID parameter to your URLs automatically. It's on by default in most accounts, but worth confirming.
In Google Ads: go to Admin > Account Settings > Auto-tagging and make sure "Tag the URL that people click through from my ad" is enabled.
Once auto-tagging is on, every click appends ?gclid=... to your landing page URL.
The second part is capturing that GCLID when a lead submits your form. There are two main approaches:
Option 1: Hidden form field. Add a hidden field to your contact form named "gclid." Use a small JavaScript snippet on your landing page to read the GCLID from the URL and populate the hidden field automatically when the page loads. When the form submits, the GCLID is included in the form data and stored in your CRM or database alongside the lead's details.
Option 2: URL parameter via CRM. Some CRMs (HubSpot, Salesforce, Pipedrive) can capture URL parameters automatically if configured to do so. Check your CRM's documentation. Many have built-in GCLID capture that doesn't require custom code.
Verdict: if you use a CRM, check whether it has native GCLID capture before building a custom solution. The hidden form field approach works for any setup but requires a developer or someone comfortable with a small JavaScript snippet.
Pro Tip: Test the capture before going live. Submit a test form while the URL contains a fake GCLID (add ?gclid=TEST123 to your URL manually) and verify the test submission shows "TEST123" in your CRM's GCLID field. A setup that fails silently is worse than no setup at all.
Step 2: Set Up the Import Conversion Action in Google Ads
In Google Ads, go to Goals > Conversions > Summary and click the + button to create a new conversion action.
Select Import as the source.
Choose Other data sources or CRMs, then select Track conversions from clicks.
Name the conversion action something clear: "Qualified Lead - CRM" or "Booked Job - Offline." Give it the appropriate category (Lead or Purchase depending on your setup).
Set a conversion window that matches your typical sales cycle. If leads usually convert within 30 days, set 30 days. If your sales cycle is longer (some professional services run 60-90 days), extend it. The window determines how far back Google can match a GCLID to a conversion.
Keep "Include in conversions" turned on for this action. Turn off or set to "Observation only" for any form-fill conversion actions that you're replacing with the offline version; otherwise you'll be double-counting.
Verdict: creating the import action takes about five minutes. The naming and window settings matter more than the setup itself. Get those right and the import will work cleanly.
Step 3: Send the Qualified Leads Back
Once you have a conversion action and GCLID capture in place, the third step is the actual import. When a lead qualifies or closes in your CRM, you send the GCLID and conversion data to Google Ads.
The data you need to send:
Google Click ID (the GCLID stored when the lead first came in)
Conversion name (matching the exact name you set in Google Ads)
Conversion time (when the lead qualified or closed)
Conversion value (optional, but useful if you want to optimise for revenue rather than volume)
How to Choose Your Upload Method
Method | Best for | Effort | Delay |
Manual CSV upload | Low volume, simple setup, no CRM | Low setup, ongoing manual work | As often as you upload |
Zapier / Make | Any CRM with a Zapier integration, no dev required | Medium setup, then automated | Near real-time |
HubSpot native | HubSpot CRM users | Low setup via native Google Ads integration | Near real-time |
Salesforce native | Salesforce CRM users | Medium setup | Near real-time |
Google Data Manager | Any setup; Google's own import tool | Medium setup | Near real-time |
Google Ads API | High volume, technical team, custom workflow | High setup | Real-time |
For most small-to-medium service businesses, Zapier or Make is the sweet spot: no developer needed, works with most CRMs, and runs automatically whenever a lead status changes. Set up a Zap that triggers when a deal reaches "Qualified" or "Won" in your CRM and sends the GCLID data to the Google Ads conversion import.
The 2026 update: From April 2026, Google merged Enhanced Conversions for Leads and offline imports into a single unified data setting in Data Manager. You no longer need to choose between implementation methods. Google accepts all three simultaneously (tags, Data Manager, and API connections). Existing accounts were automatically migrated. If you set this up before April 2026, your configuration still works; the backend just handles it differently.
Verdict: pick the upload method that matches your CRM and team. Automated is better than manual. Getting data in consistently is more important than getting it in perfectly.
Keep in Mind: GCLIDs expire after 90 days. If your sales cycle runs longer than that, a portion of your closed deals won't be matchable. This is a known limitation. It doesn't mean you shouldn't set it up. Most lead-gen service businesses close within 30-45 days, but it's worth knowing your coverage rate upfront.
The Mistakes That Break It
These are the setups that look correct in Google Ads but fail to send useful data.
Auto-tagging disabled. No GCLID gets added to URLs, so nothing can be captured. Check this first if imports show zero matches.
GCLID not stored at form submission. The GCLID is in the URL when someone lands, but if your form doesn't capture it, it's lost. Verify the hidden field is actually populating by testing manually.
Uploading form fills instead of qualified leads. If you send every form submission as an offline conversion, you haven't changed the signal. Only send leads that your team has validated as real prospects.
Same-day upload. Google recommends waiting at least 24-48 hours between when a conversion happens and when you upload it. Uploading within the same hour can cause import errors.
Double-counting. If your form-fill conversion action and your offline conversion action are both set to "Include in conversions," you're counting the same person twice. Turn off the form-fill action (or set it to Observation only) once the offline tracking is running reliably.
Wrong conversion window. If your window is set to 30 days but your average deal closes in 45 days, a significant portion of your conversions won't be attributable.
For a client in the medical space, the challenge is that the lead-to-sale cycle can take weeks to months. But you can still get quality signals before a deal closes. We track which leads went for a consultation at the clinic, and upload those as the offline conversion. For now they're set to observation only. Once we have enough data in, we'll switch them to the primary conversion action so Smart Bidding starts optimising for consultation bookings rather than form fills.

Common Mistake: Setting up the offline conversion action but leaving the original form-fill action as the primary optimisation target. The offline action only improves performance if Smart Bidding is actually optimising toward it. After setup, check your campaign's bidding goal and make sure it's pointing at the offline action, not the old form fill.
How I Handle This for Lead-Gen Businesses
When I audit a new account, the conversion setup is one of the first things I check. The majority of accounts I take over are optimising for form fills with no quality signal going back to Google. The campaigns technically have conversions. They just aren't converting into customers at the rate the data suggests. Setting up offline tracking is usually the first structural change I make if a CRM is in place. It takes one to two weeks to get the capture working, the import configured, and the data flowing. After that, Smart Bidding has something real to work with, and account performance typically improves over the following 60-90 days as the system relearns.
If a client doesn't have a CRM, I'll use Enhanced Conversions for Leads as a middle step: better than nothing, but not as good as a full offline import.
The combination of proper phone call tracking and offline conversion imports is what gets an account to the point where the data reflects what's actually happening in the business.
Frequently Asked Questions
What is a GCLID and why does it matter?
GCLID stands for Google Click ID. It's a unique code Google adds to every URL a user visits after clicking your ad. It works as a fingerprint: when you later send a qualified lead back to Google, the GCLID is what connects that sale to the specific ad click that started it. Without a stored GCLID, there's nothing to match.
Does offline conversion tracking work with all CRMs?
It works with any CRM that can store a custom field and export data. Native integrations exist for HubSpot, Salesforce, and a handful of others. For everything else, Zapier or Make can connect your CRM to Google Ads without custom code. If your CRM supports neither, the CSV manual upload method works for any system.
How long does it take for offline conversions to show in Google Ads?
After uploading, conversions typically appear in Google Ads reporting within 24-48 hours. They're backdated to the time of the original click, not the time of upload, so your historical attribution stays accurate. Smart Bidding starts incorporating the new signal in its next learning cycle.
Can I use offline conversion tracking with Performance Max?
Yes, and it's particularly valuable for PMax because you have less keyword-level control. When PMax gets offline conversion signals, it can optimise its asset groups and audience targeting toward the searches that generate real customers rather than just form fills. Set up the import conversion action at the account level and it applies across all campaign types.
What if I don't have a CRM? Can I still do this?
You can use Enhanced Conversions for Leads as an alternative. It uses hashed user data (email address) from form submissions to improve matching, without requiring a full offline import workflow. It doesn't give you the same control over what counts as a "qualified" conversion, but it's better than a basic form-fill conversion action with no quality signal.
How many conversions do I need before Smart Bidding learns from offline data?
Google recommends at least 20-30 conversions per month for Smart Bidding to work reliably. For offline conversions specifically, the same threshold applies. Below that, the signal is too sparse for the algorithm to generalise from. You can still import the data and it will improve accuracy over time, but expect slower learning in low-volume accounts.
Will this affect my conversion rate numbers?
Yes. Your conversion rate will drop because you're now only counting qualified leads, not every form fill. Your CPL will likely increase in the short term for the same reason. This is correct. The numbers are more accurate, and Smart Bidding will gradually improve them as it optimises toward the new signal. Don't panic when the initial numbers look worse. They're just more honest.
Is there a cost to setting up offline conversion tracking?
No. The feature is built into Google Ads at no extra charge. If you use a third-party tool like Zapier, Make, Ruler Analytics, or Heeet to automate the upload, there may be a subscription cost for that tool, but the Google Ads feature itself is free.
About the author
Jesse Heslinga | Google Partner | 7+ Years Google Ads | Lead-Gen Expert

I run Google Ads for lead-gen service businesses at Groove Media across clinics, home services, and professional services, working with clients directly, no account-manager layer. I build every account around one question: is this spend turning into real customers, not just cheap form fills?




Comments