Skip to main content

My offline conversion uploads keep failing because the click ID is missing. Where does it get lost?

Attribution & Measurement Published October 3, 2026
Short Answer

Almost always between the landing page and the CRM record, not in the upload itself. The identifier arrives in the URL and then something drops it: a redirect that discards the query string, a form that has no hidden field for it, a cookie set on the wrong domain, a visitor who returns after the cookie expired, or a lead that arrived by phone and never had one. Trace it hop by hop.

The identifier has to survive five hops

A click identifier travels a longer road than most people picture. It lands in the URL query string, gets written to a first-party cookie, gets read back into a hidden form field at submit time, gets carried through the form processor into a CRM field, and finally gets read out of the CRM into an upload file with a conversion time and a value.

Any one of those hops can silently drop it. Nothing errors. The lead is still created, the customer is still served, and the only visible symptom is an upload that reports a low match rate weeks later.

Where it actually breaks

  • Redirect chains. Non-www to www, http to https, or a trailing-slash normalization that rebuilds the URL without the query string.
  • Third-party form embeds. A form hosted in an iframe cannot read the parent page's URL or cookies unless you explicitly pass values in.
  • Cookie scope. Set on www but read on a bare domain, or set on the marketing site and read on a separate booking subdomain.
  • Time. A visitor clicks, thinks about it for six weeks, comes back and books. The cookie is long gone and the visit looks direct.
  • Phone leads. A call has no click identifier by nature. It needs the call-tracking platform's session join instead.

The diagnostic: match rate per hop

Count four numbers for the same week. Sessions that arrived with an identifier. Leads created with the identifier stored. Rows exported for upload. Rows the platform accepted. Then look for the biggest step-down between adjacent numbers. That step is your bug, and it tells you which team owns the fix.

This is unglamorous, and it is the part most teams skip. It is also why we treat the join as its own engineered layer in Google Ads integration rather than as a checkbox in a form builder.

What to do about leads that legitimately have none

Some share of your leads will never carry a click identifier, and no amount of engineering changes that. Phone-first businesses are the extreme case. Those leads need a different path: the call tracking platform holds the session-to-call join, and the conversion gets imported from there with the job value attached once call analysis and the field service record confirm what happened.

The wrong response is to assign the unmatched share to whatever channel looks plausible. Report it as unmatched, watch the number, and work it down. An honest gap you can see is more useful than a full-looking report built on guesses.

Topics: offline conversions · click id · diagnostics · forms

Have a version of this question about your own business?

The useful answer usually depends on which systems you run and how they're connected. That's a conversation, not a blog post.

Related Answers

People who read this also asked

Browse the Answer Hub →

AI is easy to access. Making it useful is hard.

Bluefrog makes AI useful by integrating it with the way your business actually works — your software, your calls, your customers, your marketing and your revenue.

Technology development since 1997 · AI integration platforms since 2001