← All articles

Blog

The Complete Guide to GA4 Conversion Tracking

ga4 conversion trackingga4 conversionsga4 key eventsgoogle analytics conversions

"I want to track conversions in GA4, but I can't find one place that covers the setup steps, how to confirm it's working, and how to fix things when they break." Since the move to GA4 (Google Analytics 4), plenty of people feel exactly this way.

This article is an end-to-end overview that takes you from setup to verification to troubleshooting for GA4 conversion tracking. Each topic links out to a more detailed standalone guide. Get the big picture here first, then dive deep only where you need to.

First: GA4 "conversions" are now called "key events"

Let's settle the terminology up front. The old Universal Analytics (UA) used the term "conversions" (goals), but since 2024, GA4 calls these "key events."

  • Event: the unit for everything that happens on your site — page views, clicks, form submissions, and so on
  • Key event: an event you've marked as important to the business (i.e., the old conversion)

So in GA4 it's a two-step structure: first you measure "events," then you designate the important ones as "key events." Meanwhile, the Google Ads interface still uses the word "conversions." When you import a GA4 key event into Google Ads, the ads side treats it as a "conversion." This naming mismatch is the first point of confusion, so keep it in mind.

The big picture: installed → fires → recorded → contents

Before the individual settings, grasp how measurement comes together. With the big picture in hand, when something breaks later you can tell "which stage is the problem." GA4 conversion tracking comes together in these four stages.

Stage What to confirm Common trap
① Installed The GA4 tag (gtag / GTM) loads on the page Missing on some pages (the completion page)
② Fires The event request is sent to Google Installed, but doesn't fire on a specific action
③ Recorded GA4 accepts and stores the event Fires, but consent/exclusion drops it
④ Contents Event name, value, currency, no duplicates are correct Value not passed, double-sending, key event not registered

The most important thing here is that ② firing and ③ recording are different. Even if a request leaves the browser (fires), GA4's consent settings or internal-traffic exclusion can mean it's never stored (not recorded). Most checking stops at ②, and that's the heart of the "blind spot" discussed below.

Setup basics: from installing the tag to key events and importing to ads

Getting to a state where GA4 can track conversions is roughly four steps.

1. Install the GA4 tag (gtag or GTM)

First, put the GA4 measurement tag on your pages. There are two methods.

  • gtag (hardcoded): write the gtag.js code and the measurement ID (an ID starting with G-) directly into the HTML
  • Via GTM (Google Tag Manager): manage the GA4 configuration tag through a GTM container

Which method you use changes where you check things later. For how to confirm the tag is installed and firing correctly, How to confirm your GA4 tag is working covers it in four steps (Tag Assistant / DebugView / DevTools / GTM Preview).

2. Measure the event

GA4 collects some events automatically, such as page_view and scroll, but the actions you want to count as conversions (purchase, inquiry, sign-up) require sending a dedicated event when that action happens. For a completed purchase, fire purchase; for a completed inquiry, fire something like generate_lead at the moment of completion.

3. Mark the event as a "key event"

Once the event is being sent, mark that event as a "key event" in the GA4 admin. Under "Admin → Events (or Key events)," switch the target event to a key event. If you forget this mark, the event will arrive but won't be counted as a conversion (key event). This is a very common cause behind "the numbers show up but conversions are zero."

4. Import to Google Ads

If you want to use conversions to optimize ads, import the GA4 key event into Google Ads. Link GA4 and Google Ads, then have the ads side pick up this key event as a "conversion." For Google Ads conversion tracking overall, see the sister guide, The Complete Guide to Google Ads Conversion Tracking.

Enhanced conversions: improving accuracy with first-party data

As cookie restrictions tighten across browsers, standard conversion tracking misses more and more events. Enhanced conversions address this by sending hashed first-party customer data (email, phone number, address) alongside conversion events. Google matches this hashed data against its signed-in user base to recover conversions that would otherwise be lost to cross-device behavior, cookie expiry, or delayed actions.

To enable enhanced conversions:

  1. Link GA4 and Google Ads (if not already linked)
  2. In GA4, go to Admin → Data collection and modification → User-provided data collection and activate it
  3. Choose automatic detection or configure manual collection via GTM / gtag
  4. Verify that hashed user data is being sent with your conversion events

Enhanced conversions are especially important for lead-generation sites where the conversion (e.g., a form submission) captures an email address. If you import GA4 key events into Google Ads for bidding, this is the single highest-impact improvement you can make to measurement accuracy. For verification steps, see How to verify enhanced conversions. For a broader look at first-party data strategies, see First-party data and conversion tracking.

Key event limits and planning

GA4 allows a maximum of 30 key events per property (50 for GA4 360). If you've reached this limit, marking additional events as key events will fail silently — the toggle may appear to activate, but the event won't be counted as a conversion.

Practical tips for staying within the limit:

  • Consolidate similar events: instead of separate key events for form_submit_contact, form_submit_demo, and form_submit_newsletter, use a single generate_lead event with a parameter (e.g., form_type) to distinguish them. Filter by the parameter in reports.
  • Reserve key event slots for actions that drive business decisions: page views and scrolls rarely need to be key events.
  • Audit periodically: remove key events you no longer use. GA4 does not automatically retire unused ones.

For e-commerce properties that need to track purchase value, currency, and item details, see GA4 e-commerce purchase event setup and Conversion value optimization.

Confirming it actually works

Once set up, always confirm "is it really being measured?" Verification maps to ①–③ above.

  • Tag checks (① installed, ② fires): use Tag Assistant, the …/g/collect request in the DevTools Network tab, or GTM Preview. For the step-by-step, see How to confirm your GA4 tag is working.
  • DebugView / Realtime (closest to ③ recorded): in GA4 "Admin → DebugView" or "Reports → Realtime," watch whether the event actually arrives and appears.
  • Check the completion page: conversions usually happen on the "thank-you page." Even if it works on the homepage, it's meaningless if the tag is missing on the completion page. Completion-page–specific gaps are covered in Missing conversion tracking on the thank-you page.

Common problems and how to isolate them

Where people get stuck with GA4 conversion tracking follows a fairly fixed set of patterns. Here's the gist; see each article for details.

No conversions / stuck at zero

You've set it up, but conversions stay at zero. Causes include an unregistered key event, unpublished GTM, consent-mode restrictions, internal-traffic exclusion, and processing delay. For a step-by-step way to isolate it top to bottom, see No conversions? Causes and a diagnostic guide.

It fires but isn't recorded

DevTools shows …/g/collect going out (firing), yet it doesn't appear in reports (not recorded) — the most confusing pattern. It happens precisely because firing (sent to Google) and recording (accepted and stored) are separate stages. For the detailed causes and how to check, see Why it fires but isn't recorded.

Google Ads and GA4 counts don't match

Numbers in the ads interface not matching GA4 reports is a classic. Usually nothing is "broken" — it happens because the attribution model, timing of measurement, and deduplication rules differ. For the breakdown, see Why Google Ads and GA4 counts don't match.

Duplicate tracking

The same event is sent twice for one action. Typical causes: loading the tag in two places (both gtag hardcoded and via GTM), or the same event repeating on a reload or redirect. Count how many times …/g/collect fires per action in the DevTools Network tab to isolate it. See Causes and fixes for duplicate tracking.

Consent mode reduces conversions

If you use a cookie consent banner, the setup may restrict or stop measurement when a user denies consent. You need to check behavior in the Allow, Deny, and undecided states. For how it works and how to verify, see When consent mode reduces conversions.

Cross-domain tracking breaks conversions

If your conversion path spans multiple domains (e.g., your main site hands off to a separate checkout or booking system), GA4 will treat the domain change as a new session by default. This means the conversion on Domain B won't be attributed to the traffic source that brought the user to Domain A, and your conversion counts will appear lower than reality.

The fix is to configure cross-domain measurement so all domains share the same session via the _gl linker parameter. Key requirements:

  • All domains must collect data to the same GA4 data stream (same Measurement ID)
  • Add every domain to the cross-domain configuration in Admin → Data streams → [your stream] → Configure tag settings → Configure your domains
  • Verify that the _gl parameter is appended to outbound links and that the destination domain reads it

A broken cross-domain setup is one of the most under-diagnosed causes of "low conversions." For the full walkthrough and common failure modes, see Cross-domain tracking broken.

Pre-launch checklist (the essentials)

Before going live, confirm at least the following, top to bottom. The full version is in The Complete Conversion Tracking Verification Checklist.

  • Is the GA4 tag on every page you want to measure (especially the completion page)?
  • Does the …/g/collect request fire on the target action?
  • Does the event arrive and appear in DebugView / Realtime?
  • Have you registered the target event as a key event?
  • If using GTM, are your changes published (Submitted)?
  • Does it fire exactly once per action (no duplicates)?
  • Are the contents — value (value), currency — correct?
  • Does measurement hold up across Allow / Deny / undecided consent?
  • Are you or your office wiped out by internal-traffic exclusion?

Sister guide: cover the Google Ads side too

If you import GA4 key events into Google Ads and run on that, understanding the ads side of conversion tracking as well will help you avoid getting lost over count gaps and optimization decisions. To learn Google Ads conversion tracking from the ground up, head to the sister guide, The Complete Guide to Google Ads Conversion Tracking.

Frequently asked questions

Q. What's the difference between "conversions" and "key events"? A. Since 2024, GA4 calls the old "conversions" by the name "key events." The substance is largely the same — the important events for your business. However, the Google Ads interface still uses "conversions," and importing a GA4 key event makes it appear as a "conversion" on the ads side.

Q. I set up GA4, so why are conversions zero? A. In rough order of frequency: ① the target event isn't registered as a key event, ② GTM isn't published, ③ processing delay (standard reports lag), ④ consent mode or internal-traffic exclusion is stopping measurement. For details, see No conversions? Causes and a diagnostic guide.

Q. How long from setup until it shows in reports? A. Realtime / DebugView can be confirmed in seconds to a few minutes, but standard reports lag — sometimes up to 24–48 hours. Don't immediately conclude "it doesn't show right away, so it's broken."

Q. Should I set up both GA4 key events and Google Ads conversions? A. It depends on your goal. For analysis in GA4 alone, key events are enough; to use them for ad optimization (bidding), you need to import to Google Ads (or measure directly on the ads side). If you use both, also understanding why the counts don't match will save you grief.

Q. What are enhanced conversions and do I need them? A. Enhanced conversions send hashed first-party data (like email addresses) alongside conversion events so Google can match conversions that cookies alone would miss. If you import GA4 key events into Google Ads, enabling enhanced conversions is the single most effective way to improve measurement accuracy under current browser restrictions. See How to verify enhanced conversions.

Q. How many key events can I create in GA4? A. You can mark up to 30 events as key events per property (50 for GA4 360). Plan ahead — consolidate similar actions into one event with distinguishing parameters rather than consuming a slot for each variation.

Q. Why is the same conversion counted twice? A. Typical causes are loading the tag in two places (both gtag hardcoded and via GTM), or the same event repeating on a reload or redirect. See Causes and fixes for duplicate tracking.

Conclusion: don't stop at setup and firing — confirm it's recorded in production

GA4 conversion tracking, starting from sorting out the terminology (key events) and thinking in terms of installed → fires → recorded → contents, lets you handle both setup and troubleshooting with clear sightlines. Always confirm after setup, and when something breaks, isolate "which stage is the problem" — that's the shortcut.

But there's a limit to checking on your own machine. Your environment isn't the same as a real visitor's, and the denied-consent state or the ad-click path are hard to fully reproduce yourself. Judging "it fires, so it's fine" tends to hide problems where data goes missing on the real path your visitors take.

ConversionOK runs your live page in an independent, isolated browser and intercepts the events actually sent, then verifies them — with no need to click your own ad and no interference from your office environment. Start with a free static check to confirm the entry point of your measurement.