For a lead generation business, the website form fill is not the finish line. A cleaning company, an HVAC contractor or a B2B agency makes money when a lead turns into a booked job or a signed contract, and that usually happens days or weeks later, on the phone or inside a CRM. Google Ads never sees it unless you tell it.
That blind spot is expensive. Smart Bidding optimises toward whatever you count as a conversion, so if every form fill looks equal, Google chases cheap form fills, spam included. Offline conversion tracking fixes this by sending real sales outcomes back to Google Ads.
What is offline conversion tracking in Google Ads?
Offline conversion tracking is the process of recording a conversion that happens outside your website, such as a qualified lead or a closed sale in your CRM, and importing it into Google Ads so it is credited to the ad click that started the journey. Google calls this offline conversion import.
There are two main ways Google can connect the offline sale to the click:
- Click identifiers: the GCLID (Google Click Identifier) that auto-tagging adds to your landing page URL, captured and stored with the lead.
- Hashed customer data: the email or phone number the lead submitted, matched through enhanced conversions for leads.
Many accounts use both. Google has been steering advertisers toward enhanced conversions for leads because it does not depend on storing a click ID, but the GCLID approach is still widely used and well supported.
How does GCLID-based offline conversion tracking work?
GCLID-based tracking works by saving the click ID with each lead and sending it back to Google Ads, along with the conversion name and time, when that lead turns into a sale.
- Auto-tagging is on in Google Ads, so ad clicks land on URLs like
yoursite.com/?gclid=Cj0KCQ.... - A script on your site reads the
gclidparameter and stores it in a first-party cookie, so it survives if the visitor browses a few pages first. - Your lead form includes a hidden field that is filled with the stored GCLID.
- The form submits to your CRM, and the GCLID is saved on the contact or deal record.
- When the deal reaches a stage you care about, the GCLID, conversion name, conversion time and value are uploaded to Google Ads.
- Google attributes that conversion to the original click and uses it in reporting and bidding.
A minimal capture script looks like this:
// Save gclid, gbraid or wbraid from the URL for 90 days
(function () {
var params = new URLSearchParams(window.location.search);
['gclid', 'gbraid', 'wbraid'].forEach(function (key) {
var value = params.get(key);
if (value) {
var expires = new Date(Date.now() + 90 * 864e5).toUTCString();
document.cookie = key + '=' + value + '; expires=' + expires + '; path=/; SameSite=Lax';
}
});
})();
You then read the cookie into hidden form fields at submit time. Many form tools and CRMs can do this for you.
What are GBRAID and WBRAID?
GBRAID and WBRAID are click identifiers Google uses for some iOS traffic, where privacy rules limit the use of GCLID. WBRAID is associated with web conversions from app-based ad interactions, and GBRAID with app conversions. If you only capture gclid, some iOS clicks will arrive with no identifier you recognise. Capture all three, and check whether your chosen upload method supports GBRAID and WBRAID. Each conversion you upload should carry only one of these identifiers, not several at once.
What do you need before importing offline conversions?
You need auto-tagging enabled, a CRM field to store the click ID or matching data, and an offline conversion action created in Google Ads. Without the stored identifier, there is nothing to match.
| Requirement | Why it matters |
|---|---|
| Auto-tagging on | Without it, no GCLID is added to ad clicks |
| GCLID captured and stored in the CRM | The link between the click and the sale |
| Lead email and phone stored accurately | Needed for enhanced conversions for leads |
| An "import" type conversion action | Where uploaded conversions are recorded |
| A click-through conversion window that covers your sales cycle | Conversions after the window are not credited |
| Conversion time with a time zone | Google needs to know exactly when the sale happened |
The conversion window can be set up to 90 days. If your sales cycle is longer than that, choose an earlier pipeline stage, such as "Qualified" or "Quote sent", as the conversion you import.
Which CRM stages should you send to Google Ads?
Send the stages that best predict revenue and that happen often enough to give Smart Bidding data to learn from. For most local service businesses, that means a qualified lead stage and a won or booked stage.
A practical setup:
- Qualified lead — the lead is real, in the service area and wants the service
- Booked job / Closed won — the customer agreed to buy, ideally with the job or deal value
Avoid importing every stage as a primary conversion. If "Form submit", "Qualified" and "Closed won" are all primary, a single customer can count three times and bidding gets confused. Use primary conversions for what you want to optimise toward and secondary conversions for observation.
How do you upload offline conversions to Google Ads?
You can upload offline conversions manually with a file, on a schedule from a sheet or server, through Google Ads Data Manager, through a native CRM integration, through automation tools like Zapier, or through the Google Ads API. The right choice depends on your CRM and how much volume you have.
Manual and scheduled uploads
Google Ads provides upload templates. A GCLID-based file includes columns like these:
| Google Click ID | Conversion Name | Conversion Time | Conversion Value | Conversion Currency |
|---|---|---|---|---|
| Cj0KCQ... | Closed Won | 2026-10-20 14:32:00-05:00 | 450 | USD |
Manual uploads are fine for testing, but people forget to do them. Scheduled uploads from Google Sheets, an HTTPS URL or SFTP solve that by fetching the file automatically on a schedule.
Google Ads Data Manager
Data Manager is the area of Google Ads for connecting first-party data sources, including CRMs and cloud storage, in one place. It offers guided connections for a number of popular platforms and is often the simplest route for non-developers. The list of supported connections changes, so check what is available for your CRM.
HubSpot and Salesforce integrations
HubSpot and Salesforce both have established Google Ads integrations. With HubSpot, you connect your Google Ads account and choose which lifecycle stages or events to sync as conversions. With Salesforce, Google Ads can import opportunity stage changes as conversions. Either way, the CRM still needs the GCLID or accurate contact data on each record.
GoHighLevel through Zapier
GoHighLevel is popular with home service businesses. A common approach I use is a Zapier workflow:
- Trigger: an opportunity moves to a chosen pipeline stage in GoHighLevel (for example "Booked").
- Filter: continue only if the contact has a stored GCLID or the required contact data.
- Action: use Zapier's Google Ads action for offline conversions, mapping the GCLID, conversion action, conversion time and value.
Make.com can do the same with a similar structure. GoHighLevel's own features change often, so also check whether a native option now fits your setup. I build these workflows as part of my CRM and marketing automation service.
How do you check that offline conversions are working?
Check the upload history and diagnostics in Google Ads after each upload, then compare imported conversions against your CRM for the same period. A healthy setup shows successful rows with few errors and numbers that roughly line up with your won deals from paid search.
Common errors and their usual causes:
- Click not found or invalid GCLID — the GCLID was truncated, edited or belongs to a different Google Ads account
- Conversion too old — the sale happened outside the conversion window
- Conversion time before click — wrong time zone or a date format problem
- Conversion action not found — the name in the upload does not exactly match the action
- Missing identifiers on many leads — the hidden field is not populating, often because the form was rebuilt
Run this check monthly. Website forms change, and a silent break here can leave bidding without its most valuable signal for weeks. My 30-minute tracking audit checklist includes it.
Final thoughts
Offline conversion tracking is what turns Google Ads from "get me more form fills" into "get me more customers". Start with one reliable stage, prove the data is flowing, then add value and more stages. If you want help connecting your CRM to Google Ads, book a free tracking audit.


