Clarvivo

Free tool by Clarvivo · no login

Find where offline conversion matching breaks

Compare a click-ID export with completed CRM conversions to measure the match rate and isolate the conversions that lost their paid-click identity.

Click and CRM conversion exports

Compare the click IDs you captured with the click IDs that reached your completed CRM conversions.

This tool answers: What share of offline conversions can Google Ads actually match?

Enable JavaScript to run the check — the diagnosis itself is free and needs no account.

Why this happens

An offline conversion import is only as good as its match rate. If half your closed deals arrive in the CRM without a gclid, Google Ads never learns that those clicks turned into revenue, and bidding keeps favouring the campaigns that produce form fills rather than customers.

The match rate is rarely measured directly. Teams see that uploads succeed and assume everything matched, or they see a low number in Google Ads diagnostics with no explanation. The underlying question is simpler: of the conversions you upload, how many carry a click ID that also appears in your click data?

This diagnoser answers it from two exports you already have: the click IDs captured on your site, and the completed conversions in your CRM with whatever click identifier they kept.

Next checks

These answer the questions this one tends to raise.

How this check works

So you can trust the result — and your developer can verify it.

  1. Upload a click-ID export and a CRM conversion export

    The first file lists captured click identifiers (gclid, wbraid, gbraid), for example from your landing-page capture or a Google Ads click report. The second lists completed conversions with the click identifier stored on each record.

  2. We match conversions to clicks

    Each conversion with a click identifier is looked up in the click export. Conversions with no identifier at all are counted separately, because they can never match.

  3. We grade the match rate

    Below 50% is treated as critical, 50–90% as worth investigating, and 90% or above as healthy. Unmatched lines are listed so you can trace them.

Common causes and fixes

Click ID not captured on the form
The gclid is in the landing URL but never written into a hidden field, so the lead is created without it. Capture it on landing and persist it in first-party storage until the form is submitted.
Click ID lost on a redirect or second page
Visitors who browse before converting lose the URL parameter. Store it in a cookie or local storage on the first page.
CRM overwrites the field
Some CRMs overwrite the click-ID field on later form fills or imports. Store the first-touch click ID in a separate field that's never overwritten.
Exports cover different periods
If conversions come from a longer window than the click export, older clicks won't be found. Use overlapping date ranges.
iOS traffic uses gbraid or wbraid
If your capture only looks for gclid, iOS conversions arrive without an identifier. Capture gbraid and wbraid too.

Frequently asked questions

What's a good offline conversion match rate?
The diagnoser treats 90% or more as healthy. Below 50% means most of your offline conversions can't inform bidding.
Where do I get the click-ID export?
Either from your own landing-page capture (stored with each session or lead) or from a Google Ads click performance report that includes click IDs.
Does this upload anything to Google Ads?
No. It compares the two files you provide and stores neither.
Why do some conversions have no click ID at all?
They came from channels without a Google click (organic, direct, referrals) or the ID was lost before the form. The diagnoser counts them separately from mismatches.
What next if the rate is low?
Run the UTM to CRM Capture Checker on your landing page to see whether click IDs reach the form at all.

Stop losing paid-click identity after the landing page.

Clarvivo connects campaign data to downstream business outcomes continuously.

Keep click IDs tied to revenue

What this tool reads, and what it keeps