GA4 conversion not showing: the most common causes

The event fires and the report still shows zero. The six most common causes and the order in which to check them.

18 minute readUpdated September 3, 2026Read in German

You set up an event, marked it as a conversion, submitted the form yourself, and the report still shows zero. It is one of the most common frustrations with GA4, and in the vast majority of cases it comes down to one of six causes that you can check in a fixed order.

The order matters more than the list. Five of the six are invisible from inside the conversion report, so if you start by rebuilding your tag you will spend an afternoon fixing something that was never broken. Work from the top down instead.

Check these six in this order

  1. Has enough time passed? Standard reports lag 24 to 48 hours behind. Realtime and DebugView do not.
  2. Does the event fire at all, and into the right property? DebugView answers this in under a minute.
  3. Is the event marked as a key event? The single most common cause, and it does not work retroactively.
  4. Are you in the right report, with the right event name and the right date range? GA4 remembers your last date range across reports.
  5. Is a filter, a consent banner or data thresholding swallowing the data? These produce a clean, silent zero.
  6. Is the attribution window or a second tag distorting the number? This is the one that makes conversions appear under the wrong date or the wrong channel.

Everything below works through them in that order, with the exact place in GA4 to look.

If you would rather start from what the report is showing you, this is the same list sorted by symptom:

What you seeMost likely causeWhere to check
Zero everywhere, even in DebugViewThe event never fires, or fires into a different propertyCause 1 — DebugView
In DebugView, but the conversion report stays at zeroKey-event box unticked, or still inside the 24-to-48-hour processing windowCause 2, and the patience test
In the events report, but never as a conversionThe marking is missing, and it does not work retroactivelyCause 2 — Admin → Events
Counted, but lower than the event countCounting method set to once per session, declined consent, or thresholdingCause 2 and cause 5
Total is right, one channel or segment shows zeroThe attribution window and model shift the creditCause 4 — Attribution settings
Worked for weeks, now suddenly zeroA data filter switched to Active, or the trigger no longer matchesCause 5, then cause 1

First, the patience test: GA4 processes with a delay

Before you rebuild anything, look at the clock. GA4's standard reports process data with a noticeable delay, usually 24 to 48 hours. A conversion you triggered an hour ago does not belong in the Key events report yet. Start tinkering here and you are chasing a ghost.

The delay is not evenly spread either. Today's row is always incomplete, and yesterday's can still be filling in. If you compare "today" against a past average and conclude that conversions have collapsed, you are reading a partial day against full ones.

A new conversion is visible immediately in only two places:

  • Reports → Realtime, which covers the last 30 minutes and has a Key events card near the bottom.
  • Admin → DebugView, which shows a single debug-enabled device's events second by second.

Those two are where you test. The conversion report is where you check a week later whether the thing you tested is still working.

One more piece of patience: after you tick the key-event box, GA4 itself warns that it can take up to 24 hours for the marking to take effect in reporting. A checkbox ticked five minutes ago and an empty report are not a contradiction.

Cause 1: the event does not fire, or it fires into a different property

Everything else is pointless if the underlying event never arrives. Check it directly rather than inferring it:

  1. Open Admin → DebugView. It sits in the property column, under Data display.
  2. Put your own browser into debug mode. Either open Google Tag Manager and click Preview, or install Google's GA Debugger extension for Chrome, or send debug_mode: true with your gtag config. Without one of the three, DebugView stays empty no matter how well your tracking works.
  3. Load the page and perform the action yourself. Your device should appear in the Debug device selector at the top left within a few seconds.
  4. Watch the timeline in the middle column. Every event arrives there by name, and clicking one opens its parameters.

If the event never appears, the problem sits upstream of GA4 and no setting inside GA4 will fix it. The usual suspects:

The trigger does not catch. In Tag Manager, the click trigger's CSS selector no longer matches because the button markup changed, or the trigger is set to All Elements where the click lands on a child span.

The page navigates before the hit is sent. A classic form submit loads the thank-you page so quickly that the browser cancels the outgoing request. The fix is to track the thank-you page view instead, or to use Tag Manager's Form Submission trigger with a wait, rather than a click on the submit button.

The tag is there but the consent gate is closed. Covered under cause 5, but worth ruling out here: if you have never clicked "accept" on your own banner, you may simply not be measuring yourself.

It fires into a different property. The one that costs people the most time. Your site carries a measurement ID from an older property, or from staging, and the events are landing perfectly — just not in the property you have open. In DebugView the events would then be missing here and present there. Compare the G- ID in your page source against the one under Admin → Data streams, character by character.

How to define an event cleanly in the first place is in setting up conversion tracking.

Cause 2: the "mark as key event" box is unchecked

This is the classic, and it is worth being precise about why. GA4 collects events. An event becomes a conversion only once you explicitly mark it as a key event — the name Google gave conversions in 2024. The event can fire perfectly, appear in DebugView, appear in the events report, and stay invisible in the conversion report for as long as that box is unticked.

Where to tick it:

  1. Admin → Events (under Data display). The table lists every event GA4 has seen in this property.
  2. Find your event name in the list and switch on the toggle in the Mark as key event column on the right.
  3. Reload the Key events screen next to it. The event now appears there as well.

Four things about this box that catch people out:

It is not retroactive. Conversions are counted from the moment you tick it. The days before stay at zero, even if the event itself was firing the whole time. There is no backfill and no way to recalculate. That is why the marking belongs at the very start of a measurement setup, not on the someday list.

You cannot tick a box for an event GA4 has never seen. The list under Admin → Events only holds event names that have actually arrived. If you built a brand new event this morning and cannot find it, either it has not fired yet, or it has not been processed yet, or it is not arriving at all — back to cause 1. To mark something ahead of time, you have to create it under Create event first.

There is a limit of 30 key events per property. Nobody trips over this with one form, but properties that have grown for years sometimes have the slots full, and the toggle then refuses politely. Turning off two you never look at frees the space.

The counting method can shrink the number without hiding it. Every key event has a counting method: once per event (the default) or once per session. It sits under Admin → Key events, in the three-dot menu at the end of the event's row. Set to once per session, three form submissions in one visit count as one conversion. If the conversion shows up but sits stubbornly below the number in the events report, this switch is usually the reason — not a broken tag.

Cause 3: wrong report, wrong event name, wrong date range

Three variants of the same mistake: the data is there and you are not looking at it.

The date range is sticky. GA4 remembers the last range you chose and carries it across reports. Set last 7 days yesterday, go looking for an event from an hour ago today, and you see nothing. Worse, the default in many reports is last 28 days, which averages a single new conversion into invisibility. Set the range explicitly before you conclude anything.

The event runs under a different name. GA4 collects a set of events automatically, and Tag Manager templates come with their own naming. Your "contact form" may be arriving as generate_lead, form_submit or contact_form_submitted, and you are searching for the one name you invented. Open the events report and read the actual list rather than trusting your memory of it.

You are in a report that does not carry the column. In Reports → Engagement, the old Conversions entry is now called Key events. Acquisition reports show a Key events column that has to be set to a specific event in the dropdown at the column head — left on All events, it aggregates, and a filter on the wrong one shows zero. Explorations are a separate case again: they can sample, and a conversion counted at session scope looks different from one counted at user scope.

Cause 4: the attribution window puts the conversion somewhere you are not looking

This is the cause that survives all the obvious checks. The conversion is counted. It just is not counted where you expect, and the reason is attribution.

GA4 credits a conversion to a traffic source using a lookback window. Under Admin → Attribution settings you find two of them: a window for acquisition key events (first_open and first_visit), default 30 days, and a window for all other key events, default 90 days. Inside that window, GA4 looks backwards from the conversion for the campaigns and channels that contributed, and shares the credit out according to the reporting attribution model — data-driven by default, unless somebody switched it to last click.

Three practical consequences:

A conversion can be booked to a channel you did not expect. Somebody arrives via organic search in March, comes back through a direct visit in April and converts. The conversion appears under organic search, because the earlier touch is inside the lookback window and gets its share. Filter your report to direct traffic and the conversion looks missing.

Acquisition reports and event reports disagree, correctly. The events report counts events on the day they happened. The traffic-acquisition report attributes them to a source, which shifts credit across sessions and, with a data-driven model, across fractions of a conversion. Two different numbers for the same conversion is normal, not a bug.

Changing the attribution model rewrites history. Both the model and the lookback windows apply retroactively to reports the moment you change them. If your conversions "moved" overnight and nobody touched the tracking, somebody touched this screen.

None of this makes conversions vanish altogether. But if your total is right and one segment shows zero, this is usually why.

Four quiet data eaters, all of which produce a clean zero rather than an error. Each gets its own check, because they hide in four different corners of GA4.

The internal traffic filter eats your own tests

If somebody set up an internal-traffic filter for the office IP, your test conversions are discarded exactly when you make them. Look under Admin → Data filters. A filter in Active state removes the data permanently — it cannot be recovered afterwards. A filter in Testing state marks the data without excluding it, which is the state you want while you are still checking. Your own IP address, incidentally, changes more often than you think; a filter that was right two years ago may be filtering a stranger today.

The consent banner blocks the event before GA4 ever sees it

A banner that loads no tracking without agreement blocks the event for everyone who declines — and often for you too, because you have clicked "decline" on your own site out of habit for months. Test in an incognito window and explicitly accept.

The pattern to recognize: conversions did not stop, they dropped by roughly your decline rate on the day the banner went live. A zero that arrived together with a new cookie banner is not a tracking bug, it is the banner working.

Consent Mode models the missing share, and small sites fall below the threshold

With Consent Mode, visitors who decline send cookieless pings and Google models the missing conversions from them. But modeling only kicks in above a traffic threshold in the thousands of daily events. Below it, Google models nothing, and the declined share is simply absent. On a small site that can be most of your conversions. What Consent Mode actually sends, what gets modeled and what is gone for good is laid out in Consent Mode and your GA4 data.

Data thresholding hides small numbers

If Google Signals is on and your report includes anything identity-related — demographics, interests, a user-scoped comparison — GA4 withholds rows whose numbers are small enough to identify individuals. An orange triangle appears next to the date range, and the row you are looking for is gone. Hover it to confirm, then remove the demographic dimension or switch the reporting identity to Device-based and look again.

If your tracking runs through several paths at once — a hardcoded gtag snippet plus a Tag Manager tag doing the same job — an event can arrive twice. Duplicated conversions are the mirror image of this article's problem, but they come from the same confusion, and the fix is the same: decide on one path and remove the other. In DebugView duplication is obvious, because the same event name appears twice within the same second.

The missing-link version: a conversion from search only shows up cleanly attributed when Analytics and Search Console are linked. How that link is made, and which reports it unlocks, is in connecting GA4 and Search Console. And if you are comparing GA4 against Google Ads, expect the numbers to differ by design — Ads books a conversion to the date of the click, GA4 to the date of the conversion. Over a month those two totals converge; on any single day they will not match.

What to do when it is still zero

Work down the list once more, but with the timer running. Open DebugView, put your browser in debug mode, and complete the action yourself. If the event does not appear there, stop reading GA4 settings and go and fix the tag. If it does appear, check the box under Admin → Events, note the time, and come back in 48 hours to the Key events report with the date range set to today and yesterday.

That single loop resolves most cases. What it does not resolve is usually cause 4 or cause 5, both of which show up as a total that is right and a segment that is empty.

Which four reports actually say something once the number is trustworthy is in reading GA4. And if the conversion is being counted but the visits behind it look thin, the engaged-session side of the same reports is in GA4 engagement time.

Frequently asked questions

Why is my GA4 conversion not showing?

Most often because the event is not marked as a key event, or because the 24-to-48-hour processing time has not elapsed. First check in DebugView whether the event fires at all, then the toggle under Admin → Events, then the selected date range. If all three are fine, look at data filters, consent and the attribution window.

Why is GA4 not tracking conversions at all?

Because GA4 does not track conversions on its own — it tracks events, and an event only counts as a conversion once you mark it as a key event. A brand new property therefore shows an empty conversion column in every report until somebody ticks that box. If the box is ticked and the column is still empty, the event itself is not arriving; DebugView tells you within a minute.

How long does it take for a conversion to appear in GA4?

In the standard reports, usually 24 to 48 hours. In the Realtime report and in DebugView, a correctly triggered event is visible immediately. On top of that, GA4 needs up to 24 hours after you mark an event as a key event before the marking shows in reporting.

Does GA4 count conversions retroactively when I mark the key event?

No. An event is only counted as a conversion from the moment you mark it as a key event. The time before stays at zero, even if the event itself already fired earlier. There is no backfill, which is why marking the one event that matters belongs at the very start of a setup.

Why does GA4 count fewer conversions than events?

Usually because of the counting method. A key event set to once per session counts one conversion per session, however often the event fires within it — while the events report keeps counting every single occurrence, so the two numbers drift apart. Check it under Admin → Key events, in the three-dot menu of the event's row. If it already says once per event and the gap persists, look at consent (visitors who decline send no events at all) and at data thresholding.

Where do I find conversions in GA4?

Under the name key events — Google renamed conversions in 2024, which is why the word "conversions" barely appears in the interface anymore. The report sits under Reports → Engagement → Key events, the marking toggle under Admin → Events, and the list of marked events with their counting method under Admin → Key events. If you are searching the navigation for "conversions" and finding nothing, you are looking for the old name.

Why did my conversions drop after installing a cookie banner?

Because the banner is doing its job. Everyone who declines sends no events, so your conversions fall by roughly your decline rate from the day the banner went live — that is missing consent, not broken tracking. Consent Mode can model part of the gap back in, but only above a traffic threshold of thousands of daily events, which most small sites never reach. The full picture of what survives a declined banner is in Consent Mode and your GA4 data.

My conversion shows in Realtime but not in the reports. What now?

That is the normal state for the first day or two — Realtime reads unprocessed data, the standard reports read processed data. If it persists beyond 48 hours, the event is arriving but is not marked as a key event, or a data filter in Active state is removing it after the fact, or you are looking at a date range that does not include the day it happened.

Why do GA4 and Google Ads show different conversion numbers?

Because they book them to different days and count them differently. Google Ads attributes a conversion back to the date of the click; GA4 counts it on the date it happened. Ads also counts conversions per campaign across its own network, while GA4 shares credit across channels using the attribution model under Admin → Attribution settings. A gap of a few percent over a month is expected; a gap of an order of magnitude means one of the two is misconfigured.

Can a data filter make conversions disappear without any warning?

Yes, and permanently. A data filter in Active state discards matching hits before they are stored, so the data never exists and cannot be restored later. Internal-traffic filters set up around an office IP are the usual culprit, and they hit exactly the people who test the tracking. Check under Admin → Data filters before you assume the tag is broken.

I see an orange triangle next to my report. Is that why my conversions are missing?

Probably, yes. That icon means data thresholding: with Google Signals enabled, GA4 withholds rows whose counts are small enough to identify individuals, and it does so silently apart from that icon. Remove demographic or interest dimensions from the report, or switch the reporting identity to Device-based, and the rows come back.

Keep reading