Enhanced Conversions vs Offline Conversion Import
In short: Both help you credit conversions a browser-only tag would miss, but one enriches an existing tag and the other builds the conversion from scratch. Enhanced Conversions only adds hashed identity to a conversion that already fires from a web tag, improving its match rate. Offline Conversion Import creates the conversion record itself, from CRM data that never touched a web tag at all - a phone sale, a signed contract, an in-store visit. EC matches primarily by hashed identity independent of a click ID; OCI classically depends on a stored click ID, with hashed identity as an alternative. If a tag already fires on your site, enhance it with EC; if nothing ever fires because the outcome happened off-site, use OCI.
By the AdFlint research team · Fact-checked against current Google and Meta platform behavior · Last reviewed July 2026
Enhanced Conversions
Sends hashed first-party customer data with a Google Ads web conversion so Google can match it to a signed-in user.
At the conversion, your page or server passes email, phone, or address fields hashed with SHA-256; Google matches them against signed-in accounts and recovers conversions the cookie alone would have missed. Turn it on whenever the confirmation step already captures customer details. The frequent mistake is enabling the setting without actually supplying the fields, since the toggle does nothing if no user-provided data reaches the tag.
Full definitionOffline Conversion Import
Uploads conversions that happened outside the website, such as a signed contract or a phone sale, back to the ad platform.
You store the click identifier, gclid for Google or the lead's hashed details, capture the outcome in your CRM, then upload conversion time and value so bidding learns which clicks produced revenue. It is essential for anything with a sales cycle. Uploads fail most often on window and timezone problems: a conversion recorded after the click-through window closes, or timestamps submitted in the wrong account timezone, is discarded.
Full definitionSide by side.
The differences that actually change what happens in your account.
| Enhanced Conversions | Offline Conversion Import | |
|---|---|---|
| What creates the conversion | An existing web tag that already fires - EC only adds identity fields to it. | The upload itself - a record built entirely from CRM data that never touched a web tag. |
| Click ID dependence | Works with or without a GCLID present, matching to a signed-in Google user by hashed identity. | Classically keyed off a stored GCLID, GBRAID, or WBRAID, though hashed identity can serve as an alternative. |
| Timing | Fires automatically as part of the page's tag lifecycle, near real time. | A deliberate batch upload run on a schedule you control - daily, weekly, or via API. |
| Setup surface | A checkbox and field mapping on an existing conversion action. | A distinct conversion action plus a pipeline to capture, store, and later upload the identifier and outcome. |
| Failure mode | Silent - the setting does nothing if no user-provided data reaches the tag. | Visible-ish - rejected rows for window or timezone mismatches, shown in the upload diagnostics. |
| Scope of what it covers | Only conversions that already have a live tag on your site. | Any outcome your CRM knows about, regardless of whether a page ever fired a tag for it. |
| Typical use case | Checkout or signup confirmation with verified customer data on the page. | Phone sales, signed contracts, in-store visits - anything with no web tag to hook onto. |
What actually separates them.
EC only enhances a conversion that already fires from a web tag; OCI creates the conversion record itself, from data that never touched a web tag at all.
EC matches primarily by hashed identity to a signed-in Google user, independent of a click ID; OCI classically depends on a stored click ID, with hashed identity as an alternative path.
EC fires automatically as part of an existing tag's lifecycle; OCI is a deliberate, scheduled upload you run yourself, disconnected from any live page.
EC's failure is silent, nothing visibly breaks, the setting just does nothing without fields; OCI's failure shows up as rejected rows you can inspect in the upload's status.
EC can only improve conversions you're already capturing on-site; OCI can capture conversions your website never sees at all, like a phone sale or signed contract.
Which one should you use?
Use Enhanced Conversions when
- Your conversion already fires from a web tag and the confirmation step captures verified customer data.
- You want to recover conversions lost to cookie loss or privacy restrictions.
- You're optimizing an existing action with minimal setup effort.
- The outcome is knowable at the moment the tag fires.
Use Offline Conversion Import when
- Your conversion happens somewhere a web tag can never see - a phone call, an in-store visit, a signed contract.
- You have a real delay between the click and the confirmed outcome.
- You already capture a click identifier or hashed lead details you can pair with the later result.
- You need bidding to learn from confirmed revenue, not just page activity.
Common questions.
Can Enhanced Conversions replace offline conversion import?
No. EC only enriches a conversion that already fires from a web tag; it can't create a conversion record for something that never touched your website, like a phone sale or a signed contract. For anything happening off-site, you still need offline conversion import.
Do I need a GCLID for Enhanced Conversions to work?
No, EC matches primarily through hashed identity to a signed-in Google user and can recover conversions even when the GCLID or cookie was lost. Offline conversion import, by contrast, is more commonly built around a stored click ID, though it can also accept hashed identity as an alternative matching key.
Should I set up both on the same account?
Often, yes. EC improves matching on the web conversions you already capture, and OCI covers the outcomes your website never sees at all - a phone sale, a store visit, a signed deal. They cover different gaps and don't conflict with each other.
Or stop choosing between them.
AdFlint picks the setting, writes the ads, and keeps optimizing inside the Google and Meta accounts you already own.
Related comparisons
- Conversions API vs Meta Pixel
- Google Tag vs Meta Pixel
- Google Tag Manager vs Meta Pixel
- Meta Pixel vs Server-Side Tagging
- Enhanced Conversions for Leads vs Meta Pixel
- GA4 Conversion Tracking vs Meta Pixel
- Conversions API vs Google Tag Manager
- Conversions API vs Server-Side Tagging