Enhanced conversions vs offline conversion import: which one you actually need
They look like competing solutions to the same problem. They aren't. One recovers conversions you already track; the other tells Google what a lead was worth. Most lead-gen advertisers need both, in a specific order.
Short answer: they solve different problems and the question is usually malformed. Offline Conversion Import (OCI) is the one that changes your bidding, because it tells Google which leads became revenue. Enhanced Conversions for Leads (ECL) is a matching mechanism that recovers attribution when the click identifier is lost. If you run lead generation with a sales cycle, build OCI first and add ECL as a fallback layer — not the other way round.
Here's why they get confused, and how to decide.
What each one actually does
They sit at different points in the same pipeline, which is why "versus" is the wrong framing.
Offline Conversion Import is about value and outcome. A user clicks your ad, Google attaches a GCLID to the landing page URL, you store that GCLID with the lead, and weeks later — when the lead becomes a £4,000 contract — you upload the GCLID back to Google with the value and the date. Google now knows that click was worth £4,000. Smart Bidding starts hunting for more clicks like it.
Enhanced Conversions for Leads is about matching. You send Google a hashed identifier the user gave you — usually their email — at conversion time. Google matches it against signed-in users to attribute the conversion when it otherwise couldn't. It recovers conversions that would have gone unattributed; it doesn't inherently teach Google what the lead was worth.
| Offline Conversion Import | Enhanced Conversions for Leads | |
|---|---|---|
| Keyed on | GCLID (deterministic) | Hashed email/phone (probabilistic match) |
| Answers | What was this lead worth? | Which click caused this lead? |
| Needs | GCLID captured and stored in your CRM | Hashed PII at conversion time |
| Time horizon | Works across a long sales cycle | At or near conversion |
| Fails when | You never captured the GCLID | The user isn't matchable |
Why OCI is the one that moves bidding
Smart Bidding optimises toward the conversion value you report. If every lead reports as "1 conversion", the algorithm treats a tyre-kicker and a £40k enterprise deal as identical, and it will happily buy you more of whichever is cheaper — which is always the tyre-kicker.
This is the single most common reason a lead-gen account plateaus with healthy-looking cost-per-lead and deteriorating actual revenue. The metric improves while the business gets worse. OCI fixes that by feeding real outcomes back in.
ECL doesn't do this on its own. It gets you more attributed conversions, which is useful, but if those conversions all carry the same nominal value you've improved your reporting without improving your bidding.
If you're deciding where to spend a limited implementation budget and you have a sales cycle longer than a few days, OCI is the higher-leverage build. ECL is easier to ship, which is why it often gets done first — ease of implementation is not the same as impact.
Why you still want ECL
The catch with OCI is that it's only as good as your GCLID capture, and GCLID capture is fragile in ways that aren't obvious until you audit it:
- The GCLID lives in the landing page URL. If a user lands, wanders the site, and converts three pages later, you need to have persisted it.
- Multi-step forms, third-party booking widgets and phone-call conversions all tend to lose it.
- Consent matters: if the user declines and your Conversion Linker never runs, there's no stored identifier to recover.
ECL covers some of that gap. When the GCLID is gone but the user gave you an email address, hashed matching can still connect the conversion to the click. That's why the practical answer for most lead-gen accounts is both: OCI as the deterministic backbone, ECL as the recovery layer for the cases where the identifier didn't survive.
The order we build them
- Fix GCLID capture first. Persist it on landing, carry it through every form and booking flow, and store it against the lead record in the CRM. This is unglamorous plumbing and it's the whole foundation — neither system works if this step is broken.
- Ship OCI with real values. Not a flat placeholder value per lead. The point is differentiating a £500 job from a £50,000 one; a constant value throws away the entire signal.
- Add ECL as the fallback. Hashed email at conversion time, correctly consented.
- Reconcile. Compare imported conversions against closed business in the CRM monthly. This is the step almost everyone skips, and it's how you find out that a form has been silently dropping the GCLID for six weeks.
The consent layer nobody scopes
Both systems carry user data to Google, and both depend on consent state being correct.
ECL sends hashed personal data. Hashing is not anonymisation — it's still personal data under UK GDPR, and you need a lawful basis to send it. If your consent banner offers a genuine choice and the user declines marketing, sending their hashed email anyway is a problem no amount of hashing solves.
OCI depends on the Conversion Linker having run to store the GCLID, which under Consent Mode v2 depends on ad_storage. If your CMP is set up so that declining consent blocks the linker, those users will never have a recoverable GCLID — which is correct behaviour, and worth knowing before you diagnose a "GCLID capture bug" that's actually consent working as designed.
Not sure whether your Consent Mode v2 signals are actually wired, or just present? The Consent Mode v2 detector checks the real dataLayer state on your live site.
So: which one?
If you sell something instantly online with a fixed value, OCI has little to add and ECL is the sensible improvement to attribution.
If you generate leads that close later at variable values — which is most B2B, most professional services, most high-ticket local business — OCI is the priority and ECL is the supplement. The pattern we see repeatedly is accounts that shipped ECL, saw conversion counts rise, declared victory, and never told Google what any of those leads were worth.
Getting this pipeline right is most of what we do in an end-to-end analytics build. If your reported conversions and your actual revenue have stopped resembling each other, that's the gap.