Offline conversions · 2026 setup guide

Import your offline conversions into Google Ads

A click is where the journey starts, not where it ends. Connect a closed deal back to the click that earned it — the full 2026 pipeline, and how to automate it so every row actually lands.

The offline conversion loop

From ad click to a sale credited back to the campaign.

Ad clickGCLID · WBRAID · GBRAID
Stored in the browserlocalStorage, 90-day window
Lead tagged in your CRMhidden field on submit
Data hashedSHA-256 + normalization
Indexing window≈4–6 hours
Uploaded & matchedcredited to the campaign
Google's click-ID indexing window
≈6 hrs
The conversion upload window
90 days
Median conversion lift from a hybrid identifier
10%
CPA cut from Negative Signaling
up to 50%

Key takeaways

  • Offline Conversion Tracking (OCT) sends closed deals back to Google Ads so bidding optimizes for revenue, not cheap form-fills.
  • The setup has three parts: create an Import conversion action, capture the click ID (GCLID / WBRAID / GBRAID), and SHA-256-hash the customer data.
  • Google needs about 4–6 hours to index a click ID; uploading sooner triggers a CLICK_NOT_FOUND error.
  • ClickSambo automates capture, hashing, the timing window and real-time sync, so every conversion matches.

Step 1 of 3

01

Create the conversion shell in Google Ads

In Goals › Conversions › Summary, add a new conversion action and choose Import → CRMs, files, or other data sources, then tick Track conversions from clicks. Set the category to Qualified lead or Converted lead, name it something you'll recognise (e.g. ClickSambo_Offline_Sale), assign a Value so value-based bidding works, and set Count to One. Confirm the connection method is API.

Step 2 of 3

02

Capture the click ID and pass it to your CRM

Every click carries a unique ID — GCLID for Search, WBRAID for iOS web, GBRAID for iOS app and YouTube. A lightweight script stores it in localStorage, and a hidden form field injects it on submit — so each lead reaches your CRM already tagged to its ad click, ready for attribution.

Step 3 of 3

03

Hash the customer data before it reaches Google

2026 rules prohibit sending raw email or phone. For Enhanced Conversions for Leads, normalize first — trim whitespace, lowercase everything — then hash with SHA-256. Skip the normalization and the hash won't match Google's records, so the conversion silently fails to attribute.

The pitfall that breaks most setups

The 6-hour rule

Don't upload the moment a lead comes in

Google needs roughly 4–6 hours to index a new click ID before it will accept a matching conversion. Upload too early and you get a CLICK_NOT_FOUND error — the ID isn't searchable in Google's database yet. ClickSambo waits out this window automatically, so the error never fires.

Uploading data isn't the finish line

In 2026's AI-driven bidding, how you feed the signal matters as much as sending it. Four pillars separate high-growth accounts from the rest.

Freshness

Sync in near real time

AI Max runs on fresh signals. Weekly batches teach it to optimize for the past; syncing on lead-status change lets Smart Bidding react to intraday auction shifts.

Identity

Send two identifiers

Pair the click ID with a hashed email and phone. If the user clears storage or switches device, Google still matches on the hash — a median 10% lift in conversions over standard offline imports.

Value

Weight by worth

Assign real values — an MQL at $50, an SQL at $250, a closed deal at its actual contract value — so the AI hunts for lifetime value, not the cheapest form-fill.

Funnel

Upload milestones

In long B2B or high-ticket cycles, waiting for the final sale leaves a signal gap. Upload demo, proposal or in-person visit events to keep feeding the algorithm inside the 90-day window.

You wired it up. So why did a chunk of your uploads never land?

Every step above has a silent failure mode. Google rejects what it can't match, and the missing lead never shows up in a report — so you end up optimizing on data that's quietly incomplete.

CLICK_NOT_FOUNDUploaded before the click ID was indexed.
EXPIRED_EVENTThe click aged out of the upload window.
Hash mismatchPII wasn't normalized before hashing.
Stale batchUploaded days late, after AI Max already bid.

Feed partial, late data into Smart Bidding and it optimizes confidently toward the wrong prospects — while your real buyers go uncounted. The report looks fine; the spend doesn't.

How ClickSambo closes the loop

ClickSambo's automated OCI bridge runs the whole pipeline — capture, hashing, timing and sync — on top of the setup above. It's a Google-certified click-fraud tracker that lands every row.

Automatic identity capture

GCLID, WBRAID and GBRAID stored and injected into your forms as hidden fields — no developer work needed.

Compliant hashing, done right

Every email and phone is normalized, then SHA-256-hashed before it leaves your server — no silent mismatch, full compliance.

The 6-hour rule, handled

The bridge waits for the exact moment the ID is indexed before uploading, so CLICK_NOT_FOUND errors simply never fire.

Real-time sync & alerts

Pushes the moment a lead status changes and emails you on every successful match — real-time ROI, hands-free.

Beyond the wins: Negative Signaling

ClickSambo also uploads the bots and fake clicks it detects — via Stabil Device ID fingerprinting — to Google as a negative signal, so AI Max learns the "DNA" of fraudulent traffic and steers away from it. A traffic-cleaning effect that can cut CPA by up to 50%.

See what your ads are really paying for

You closed the loop. Now see how much of your spend goes to clicks that will never become a customer.

Start with a free scan

  • Invalid-traffic share across your account
  • The human-vs-bot split behind your conversions
  • Where the wasted spend is actually going
  • No card needed to see your first report

Prefer to compare plans first? See pricing

Frequently asked questions

Why do I see a CLICK_NOT_FOUND error?

The click ID hasn't been indexed yet. Google needs roughly 4–6 hours after the click before it will accept a matching conversion, so uploading immediately after a lead comes in fails. ClickSambo waits out this window automatically, so the error never fires.

Is SHA-256 hashing required for Enhanced Conversions?

Yes. Raw personal data can't be sent to Google. Email and phone must be normalized — whitespace removed, everything lowercased — and then SHA-256 hashed before upload. ClickSambo handles both steps on every row, so a formatting slip can't quietly break your attribution.

What is Negative Signaling?

Uploading the fraud and bot patterns ClickSambo detects to Google as a secondary signal. It teaches AI Max to recognise invalid traffic and de-prioritise the placements wasting your budget — the opposite of a conversion signal, working in the same pipeline.

What changed with the April 2026 Google Ads API?

The update added "Fallback Recovery," which can attribute some previously rejected or expired click IDs — reducing EXPIRED_EVENT errors and reconciling CONVERSION_PRECEDES_EVENT timing conflicts. Flexible import also cut UNAUTHORIZED_CUSTOMER and INVALID_CUSTOMER_FOR_CLICK errors for manager and client accounts. It helps, but the 6-hour indexing window still applies.

Does the June 2026 Data Manager API migration affect this setup?

As of 15 June 2026, Google moved offline conversion imports and Enhanced Conversions for Leads uploads from the Google Ads API to the Data Manager API, and the older path is being retired. If you upload conversions yourself, you’ll need to move to the Data Manager API. ClickSambo manages this connection for you, so your conversion sync keeps working through the migration — nothing to change on your side.

ClickSambo (2026). Google Ads Offline Conversions — the 2026 setup guide.

Based on our full guide: Google Ads Offline Conversion Guide 2026

close

ClickSambo support is available!

Whatsapp Sohbet
Customise Consent Preferences
Cookies
Cookies Other
Always Active

Other uncategorised cookies are those that are being analysed and have not been classified into a category as yet.

Cookies Advertisement

Advertisement cookies are used to provide visitors with customised advertisements based on the pages you visited previously and to analyse the effectiveness of the ad campaigns.

Cookies Analytics

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Cookies Performance

Performance cookies are used to understand and analyse the key performance indexes of the website which helps in delivering a better user experience for the visitors.