Google Ads Offline Conversions

GCLID, GBRAID, WBRAIDEnhanced Conversions for Leads
HighLevel and HubSpotAny CRM by Webhook

Google Ads offline conversions tell Google which clicks became customers: the booked call, the qualified lead, the won deal. DataCops uploads them from HighLevel, HubSpot or any CRM, matched by GCLID, GBRAID, WBRAID or hashed email and phone, with no click ID to store in your CRM.

Setup in 5 minutes
No credit card
One lead from a Meta ad
From form fill to won deal in HighLevel
With DataCops
Form fillSent to Meta
Booked callSent to Meta
Showed upSent to Meta
Deal wonSent with its value
Matched to the original ad click by email

Trusted by agencies and brands running paid media

AffilinoBigfishClever DigitalKeetraxLegendListingLogicNumeroStormZealdBurst Digital
Definition

What are Google Ads offline conversions?

Google Ads offline conversions are sales, or steps toward a sale, that happen after the ad click and away from your website, then get uploaded back to Google Ads. Each upload carries a click ID or the customer's hashed email and phone, so Google can tie it to the click that started it. Smart Bidding then learns from the people who bought, not from everyone who filled in a form.

DataCops keeps the Google click on your own domain when the visitor lands. When the lead books, qualifies or buys in HighLevel, HubSpot or any CRM, DataCops finds that click again and uploads the conversion to Google Ads. No GCLID field in your CRM, no weekly CSV.

DataCops sends Google Ads offline conversions from HighLevel, HubSpot or any CRM, matched by GCLID, GBRAID, WBRAID or hashed email and phone, with no click ID stored in your CRM.

What Google Ads learns from

Leads and clinics on HighLevel
What your ads see today Form Booked Showed Won Paid
With DataCops Form Booked Showed Won Paid
B2B on HubSpot
What your ads see today Form Qualified
With DataCops Form Qualified
Any CRM by webhook
What your ads see today Form Sale, with value
With DataCops Form Sale, with value
Why uploads come back empty

Why Google Ads shows no offline conversions

Most setups break before the upload: the click ID never reached the CRM, or it arrived too late.

Events Meta received
Lead Received
Booked call Never seen
Deal won Never seen
The pixel stops at the form

The Google tag stops at the form

The tag sees the form fill. The booked call, the show-up and the won deal happen where it cannot follow, so Google bids for more form fills.

The ad click, in the browser
Day 1Ad click saved
Day 8Safari clears the cookie
Day 23Deal won
No click left to match

"Contact is missing GCLID"

A redirect, an iframe form or a funnel step drops ?gclid= from the URL. The CRM field stays empty, and HighLevel or Zapier have nothing to upload.

Opportunity in your CRM
StageWon
ClosedOn a sales call
Came fromA Meta ad
Meta never hears about it

The deal closes after the window

Google ignores uploads more than 90 days after the click, 63 for enhanced conversions for leads. A monthly export of old deals misses most of them.

Leads sent to your ads
Real lead Counted
Bot lead Counted
Real lead Counted
Your ads now look for more bots

Fake leads become conversions

Bot form fills count as leads too. Upload them and Smart Bidding goes looking for more traffic like it.

Click IDs

GCLID, GBRAID and WBRAID: what Google needs to match a sale

Every Google Ads offline conversion needs something Google can match to a click. That is a click ID from the landing page URL, or the customer's email or phone, hashed. DataCops keeps whichever arrived and sends the best one it has.

GCLID

Most clicks on Search, Shopping, Display and YouTube ads.

The Google Click ID. Google adds it to your landing page URL as ?gclid= when auto-tagging is on. It is the most exact way to tie a sale to one click.

GBRAID

Clicks from iOS apps that lead to an app.

Sent instead of a GCLID on some iOS traffic, where Apple limits tracking. It counts at the campaign level, not the single click.

WBRAID

Clicks from iOS apps that open your website.

The web version of GBRAID. You will see it on iPhone traffic from Google apps like YouTube and Gmail. It uploads the same way.

One kept click

Landedyourdomain.com/book?gclid=Cj0K...
Click IDgclid kept on your own domain
Emailsha256 · 9f86d08...
Phonesha256 · 2c26b46...
Kept until90 days after last seen

Google's upload windows

Click conversions (GCLID)90 days
Enhanced conversions for leads63 days

How DataCops uploads Google Ads offline conversions

Four steps from the Google ad click to the won deal, with no GCLID field to add in your CRM.

  1. Step 01
    Saved on yourdomain.com
    fbclid from Meta Kept
    gclid from Google Ads Kept
    ttclid from TikTok Kept
    Kept for up to 90 days

    The visitor clicks your Google ad. DataCops keeps the GCLID, GBRAID or WBRAID on your own domain for up to 90 days.

  2. Step 02
    Stages your CRM reports
    Booked call Reported
    Showed up Reported
    Won, with value Reported

    The lead books, shows up, qualifies or buys, and your CRM reports it.

  3. Step 03
    Finding the ad click again
    Won dealby email or phone
    Ad click, 23 days earlierMatched

    DataCops matches the lead by email or phone and finds the original Google click.

  4. Step 04
    Won deal sent
    Meta Sent once
    Google Ads Sent once
    TikTok Sent once
    LinkedIn Sent once

    The conversion is uploaded to Google Ads with the click ID and hashed email and phone.

Each stage goes out as your CRM reports it: HighLevel stages right away, HubSpot within 5 minutes.

Conversion actions

Which Google Ads conversion actions get your offline sales

When you connect Google Ads, DataCops creates two upload conversion actions in your account: one for leads and one for purchases. Leads and sales go there by default.

Booked and showed stages are not sent until you map them to a conversion action of your own. That keeps Google from counting every booking as a sale.

Created as secondary, never switched into bidding

DataCops creates its actions as secondary, so they report but do not steer Smart Bidding. You decide in Google Ads when an action becomes a primary goal. Nothing changes in your bidding the day you connect.

Lead (form, survey) DataCops - LEAD Created for you secondary
Won, paid (with value) DataCops - PURCHASE Created for you secondary
Booked The action you pick Only once mapped
Showed The action you pick Only once mapped
No click ID

Enhanced conversions for leads, when there is no GCLID

Not every lead arrives with a click ID. Someone clicks on their phone and fills in the form on a laptop, or a browser strips the URL. Google's answer is enhanced conversions for leads: you send the customer's email or phone, hashed, and Google matches it to the signed-in user who clicked.

DataCops sends both on every upload it can. The click ID when it kept one, and hashed email and phone from the lead either way. Google uses the best match it has. The window is shorter for this kind of match, 63 days, which is one more reason to send each stage as it happens.

What about the Data Manager API?

Google asks new API integrations built since June 2026 to use its Data Manager API. If you built your own upload script, that is news. With DataCops you connect Google Ads with one sign-in and never build against either API.

What one upload carries

Click IDgclid, gbraid or wbraid, when kept
Emailhashed with SHA-256
Phonehashed with SHA-256
Conversion actionDataCops - PURCHASE
Value1,200.00 USD
Click ID missing?Matched by hashed email and phone
Andrew Forsyth

“15 minutes to get server-side tracking live. After 3 days failing with another app and a DIY server-side Google Tag Manager, that alone sold me. Then support jumped on a Google Meet with me on a Sunday afternoon to finish the job. Nothing else comes close.”

Andrew Forsyth
Chief Executive Officer, Zeald
Where the sale comes from

Google Ads offline conversions from your CRM

Connect the place where your sales happen. DataCops listens for the stages that matter and uploads each one to Google Ads, with no GCLID field to keep.

HighLevel

Install once for your agency and pick the sub-accounts to connect. Each stage is sent as HighLevel reports it. Cancellations, no-shows and lost deals are never sent, and you can switch any stage off.

Sends Form leadBookedShowedWon, with valuePaid invoice
Offline conversions for agencies

HubSpot

Pick the lifecycle stage that means a lead is qualified. DataCops holds each lead from your site, checks HubSpot every 5 minutes and sends the conversion when the lead reaches that stage. Leads that never qualify expire after 14 days.

Sends Qualified lead
For B2B teams

Salesforce, Pipedrive and any other CRM

Post the sale to your private DataCops webhook with the customer's email or phone, the value and the order ID. Your CRM can send it directly, or through Zapier, Make or n8n.

Sends Any stage you postValue and currencyOrder ID

Google Sheets and CSV

On a paid plan, upload up to 20,000 past customers or sales from a CSV and pick the platforms to send them to. Rows go out with the date you send them, so use it to warm up an ad account. For sales you add to a sheet every day, send each row through Zapier or Make to your webhook.

Sends LeadPurchaseSchedule
See Ads Warmup

Phone calls and sales

When a call ends in a booking or a sale, record it in your CRM, or post it to your webhook with the caller's phone number. DataCops matches the phone number to the ad click and sends the conversion.

Sends Matched by phone

Shopify orders

The DataCops Shopify app sends each paid order as a server-side purchase, so orders the browser missed still reach your ads.

Sends Purchase, with value
Real people only

Filter fake leads before you send

A bot that fills in your form becomes a lead your ads try to find more of. DataCops checks every visit for bots and datacenter traffic, and for VPNs and proxies if you choose. Switch on Real people only for a platform and flagged visits never reach it.

With HubSpot, each lead waits until your team marks it qualified, so your ads only learn from leads a person accepted. Sales that come straight from your CRM are sent as your CRM reports them, so qualify them there.

How DataCops spots bots
Meta, delivery
Real people only
Bots and datacenter traffic never reach Meta. VPNs and proxies too, if you choose.
Send everything
Meta gets every visitor, bots included.
Lead from a bot Skipped
Delivery log
every event, every platform, with a reason
Live
Won deal to Google Ads
gclid, as a purchase
Delivered
Lead to Google Ads
wbraid + hashed email
Delivered
Paid invoice to Google Ads
hashed email and phone
Delivered
Lead to Google Ads
bot, Real people only is on
Skipped
Qualified to Google Ads
waiting for the HubSpot stage
Held
Delivery log

See every upload to Google Ads

Google's upload report can say success while rows fail. DataCops logs every send with its status and the reason, so you know what happened to each sale.

  1. 1
    The click is too old
    Past 90 days, or 63 for enhanced conversions for leads, Google drops it. DataCops sends each stage as it happens.
  2. 2
    Nothing to match on
    No click ID and no email or phone means no match. DataCops attaches the click it kept and hashed contact details.
  3. 3
    The same sale twice
    A HighLevel won deal and its invoice count as one sale, and an order ID reaches Google once.
  4. 4
    Nobody saw it fail
    Each send shows as sent, held, skipped or failed, with the reason next to it.

Ways to import Google Ads offline conversions

DataCops next to Google's own file upload, Zapier and HighLevel's built-in action. Checked September 2026 against each tool's help pages.

DataCops
Google CSV upload
Zapier
HighLevel built-in
Works without a GCLID stored in your CRM
Click kept on your domain, or hashed email and phone
With enhanced conversions for leads columns
Needs a GCLID you stored
"Contact is missing GCLID"
Sends as each stage happens
HighLevel right away, HubSpot within 5 minutes
Manual or scheduled file
When the Zap runs
When the workflow runs
Sends pipeline results like won and paid
Won with value and paid, from HighLevel or any CRM by webhook
Whatever you put in the file
If you build the Zap
Form, order, call, survey and chat triggers
Checks leads for bots before sending
Real people only switch
What it takes
One install, about 5 minutes per site
A file in the right format, each time
A paid plan, one task per send
A workflow action per trigger
Honest note

What DataCops does not do yet

Better to know now than after you connect.

No Microsoft Ads

Offline conversions go to Google Ads, Meta, TikTok and LinkedIn.

Booked and showed need a mapping

Only leads and purchases go to Google Ads until you pick an action for the rest.

No native Salesforce or Pipedrive connector

They send sales to your webhook, directly or through Zapier, Make or n8n.

Stripe and Paddle payments are not sent

You can save the connection, but payments do not go to your ads yet.

HubSpot sends one stage

The lifecycle stage you pick as qualified. HubSpot deal stages are not read.

CSV rows are dated when you send them

An upload warms up your account with past buyers. It does not change past reports.

Set up Google Ads offline conversions

About 5 minutes per site. Agencies: about 15 minutes per client.

  1. Step 1
    code

    Add the DataCops script
    One script and one DNS record, so every Google click ID is kept on your own domain.

  2. Step 2
    ads_click

    Connect Google Ads
    One sign-in. DataCops creates its Lead and Purchase actions as secondary.

  3. Step 3
    hub

    Connect where your sales happen
    HighLevel, HubSpot, your webhook or a CSV. Map booked and showed if you want them.

FAQ

Google Ads offline conversions are sales or sales steps that happen after the ad click, away from your website, and are uploaded back to Google Ads: a booked call, a qualified lead, a won deal, a paid invoice. Google matches each one to the click that started it, so Smart Bidding can learn from buyers instead of form fills.

Let Google Ads learn from real sales

Upload HighLevel, HubSpot and CRM sales to the Google click that started them, logged per send.

Setup in 5 minutes. No credit card.

Live traffic quality

Updated just now

Visits · last 24h

487
Real users
35873.5%
Bots · auto-filtered
12926.5%

Without filtering, 26.5% of your reported traffic is bot noise inflating dashboards and draining ad spend.

Don't trust your analytics!

Make confident, data-driven decisions withactionable ad spend insights.

Setup in 2 minutes
No credit card