Conversion Tracking & Data

GA4 Conversion Tracking vs Offline Conversion Import: Real-Time vs Delayed

In short: Both eventually populate a conversion action that Google Ads bidding can use, but they capture the event at opposite ends of the customer journey. GA4 conversion tracking measures what happens while someone is on your site or app, tagging the meaningful moments as key events in near real time. Offline conversion import brings in what happens after they leave - a phone sale, a signed contract, an in-store visit - matched back to the original click days or weeks later. The practical split is timing and location: GA4 is on-property and immediate, OCI is off-property and delayed. Use GA4 for anything that completes on your site or app; reach for offline import the moment revenue is confirmed somewhere your Google tag can't see.

By the AdFlint research team · Fact-checked against current Google and Meta platform behavior · Last reviewed July 2026

GA4 Conversion Tracking

Defines key events in Google Analytics 4 and optionally imports them into Google Ads as conversion actions for bidding.

GA4 collects events through the Google tag, you mark the meaningful ones as key events, the term that replaced conversions in GA4 in 2024, and import them into Google Ads. It suits teams that want one measurement layer across paid and organic. The classic error is importing a GA4 key event that duplicates a native Google Ads conversion, then leaving both in the Conversions column and bidding on doubled numbers.

Full definition

Offline 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 definition

Side by side.

The differences that actually change what happens in your account.

 GA4 Conversion TrackingOffline Conversion Import
When the event is capturedThe moment it happens on your site or app, via the Google tag.Whenever your CRM or sales process confirms the outcome, then uploaded in a batch or via API.
Where the underlying event livesOn your website or app, inside GA4's own event stream.Outside your website entirely - a phone call, a store visit, a signed contract.
How it gets into Google AdsMarked as a key event in GA4, then imported as its own conversion action.Uploaded directly to an Import conversion action via UI, Sheets, Zapier, or the API.
What identifier it relies onNone that you manage directly - GA4 handles its own session and user identification.A preserved gclid or hashed identifier that has to survive from click to upload.
Reporting lagMinimal - key events typically show up within the same day.Matches your sales cycle - could be same-day or could be months, depending on when the deal closes.
Where you'd also see it reportedInside GA4 itself - Explore reports, funnels, real-time view - in addition to Google Ads.Usually nowhere but Google Ads' Conversions column, unless you separately fire a GA4 event for it too.
Failure modeA key event duplicating a native Ads conversion tag, double-counting the same action.Rows rejected for landing outside the click-through conversion window or carrying a mangled identifier.
What it costs you when wrongInflated conversion counts that make campaigns look more efficient than they are.Undercounted revenue that makes real winners look like they're underperforming, since their true value never lands.

What actually separates them.

01

GA4 conversion tracking counts an event the instant it happens on your property; offline conversion import counts an event that already happened somewhere else, sometimes long before the upload.

02

GA4 needs no external identifier to function - it runs on its own tag and session data - while offline import lives or dies on whether a gclid or hashed identifier survived the trip from click to CRM.

03

A GA4 key event shows up in GA4's own reports as well as Google Ads; an offline import conversion typically only exists in Google Ads unless you build a parallel GA4 event for it.

04

GA4's reporting lag is close to zero; offline import's lag is however long your sales cycle takes, which means the conversions shown for last week can keep rising for weeks after.

05

Double counting in GA4 comes from importing a key event that overlaps a native Ads tag; failed matches in offline import come from a broken identifier or a closed conversion window, a completely different failure surface.

Which one should you use?

Use GA4 Conversion Tracking when

  • The conversion completes entirely on your site or app - a purchase, a form submit, a signup - with nothing further to confirm later.
  • You want the same event definitions to power both your Ads bidding and your own analytics reporting.
  • You need to see the conversion in context - where in the funnel people drop off, not just that they converted.
  • You don't have a CRM or sales pipeline generating a delayed outcome worth tracking separately.

Use Offline Conversion Import when

  • The real outcome - a signed deal, a completed phone sale, a paid invoice - happens after the person leaves your site.
  • Your sales cycle runs days to months, and bidding needs to learn from revenue, not just the top-of-funnel action.
  • You already have a reliable way to capture and preserve a gclid or hashed identifier through your CRM.
  • You want the reported conversion value to reflect actual deal size rather than a flat per-action count.

Common questions.

Should I use GA4 conversion tracking or offline conversion import for lead gen?

Most lead-gen accounts use both: GA4 (or a native Ads tag) counts the form submit itself, and offline conversion import brings in what happened to that lead afterward - qualified, closed, or lost. Neither alone gives you the full picture for a business with a sales cycle.

Why do my offline conversion numbers keep changing for a week that already passed?

The upload happens whenever your CRM confirms the outcome, not when the click occurred, so a week's true conversion total keeps rising as deals from that week continue to close. This is normal and expected - judge offline conversion performance only after enough time has passed for your typical sales cycle to complete.

Can offline conversion import show up inside GA4 reports?

Not automatically - offline conversion import is a Google Ads-side upload and has no native path into GA4's event stream. If you want that outcome visible in GA4 too, you'd need to separately send a matching event, for example by calling GA4's measurement protocol when the CRM outcome is confirmed.

My GA4 key events and my imported offline conversions both show up in the Conversions column. Is that a problem?

Only if they're measuring the same underlying action, like the form submit itself being counted once through GA4 import and again through a native tag. A GA4 key event for the form submit alongside an offline import for the later deal outcome is fine, since they're tracking two different, non-overlapping events.

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

All comparisons