When GA4 stops showing conversions, the instinct is to rebuild everything. Don't. Most cases come down to one of a handful of causes, and checking them in a fixed order finds the problem faster than guessing. This guide gives you that order. For the full setup it assumes, see our GA4 setup guide for marketing websites.
Why is GA4 not tracking conversions?
GA4 is usually not tracking conversions for one of six reasons: the event isn't a key event, it never fires, consent blocks it, duplicate or conflicting tags interfere, the form lives in an iframe, or the session breaks across domains. Data delay and filters explain the rest.
Symptom | Likely cause | Check first |
|---|---|---|
Event shows in Events, not as a conversion | Not marked as a key event | Admin, key events list |
No event at all | Trigger never fires | GTM Preview and DebugView |
Conversions dropped after a banner launch | Consent default or update broken | Tag Assistant consent tab |
Conversions roughly doubled | Two tags or two triggers | Network requests on submit |
Form submits, nothing tracked | Form or booking tool in an iframe | Where the success message renders |
Conversions credited to a payment site | Cross-domain or referral gap | Traffic source of converting sessions |
Only page views on route changes missing | Single-page app routing | Enhanced measurement history setting |
How do you troubleshoot missing GA4 conversions step by step?
Troubleshoot missing GA4 conversions from the source outward: first prove the event fires, then that GA4 receives it, then that it counts as a key event and is attributed correctly. Each step rules out a whole group of causes.
Check it's a key event
In GA4 admin, open the key events list. GA4 renamed conversions to key events, and only events marked there count. Check the name matches exactly, since GA4 is case-sensitive.
Watch it fire in GTM Preview
Run Tag Assistant, complete the conversion yourself and confirm the trigger and tag fire once, on success, not on click.
Confirm it in DebugView
Open GA4 DebugView during the same test and check the event name and parameters arrive. Realtime works too. Standard reports lag, so don't judge a fix by them on the same day.
Check consent on the first event
In Tag Assistant's consent view, look at analytics_storage and ad_storage on the first hit. If the default fires late or the update never arrives, see our Consent Mode v2 guide.
Look for duplicates
In your browser's network tab, filter for collect requests on submit. Two requests for one action means two tags or two triggers.
Check iframes and embeds
If the form or booking widget is embedded, your GTM can't see inside it. Listen for its completion message on your page and push your own event.
Review domains and referrals
List every domain in the journey under cross-domain measurement, and add payment or booking domains you don't control to unwanted referrals.
Can consent settings stop GA4 from tracking conversions?
Yes. If analytics_storage is denied, GA4 doesn't set cookies, and in basic consent mode the tag doesn't send anything. A banner that defaults everyone to denied, or a consent update that never fires, makes conversions disappear without any error.
The pattern is easy to spot: conversions drop on the day a banner or consent platform changes, often more in some countries than others. Check that the default runs before the Google tag, that all four v2 parameters are set and that accepting the banner sends an update before the next event. Banner design affects acceptance too, which our guide to cookie banner design covers.
Why don't embedded forms and booking tools show up as GA4 conversions?
Embedded forms and booking tools often run inside an iframe on another domain, so your GA4 and GTM can't see the submit or the confirmation. The visitor converts, but nothing on your page knows about it.
Most scheduling and form tools post a message to the parent page when a booking or submission completes, or offer a callback in their embed code. Listen for that on your page, push a dataLayer event such as meeting_booked, and fire your GA4 event from it. If the tool redirects to its own thank-you page instead, change the redirect to a page on your domain. Our guide to conversion tracking for lead-gen websites shows both patterns.
For example, suppose demo bookings went to zero after a redesign
For example, suppose a startup moves its demo form from a native form to an embedded scheduling widget during a redesign. The old key event fired from a thank-you page that no longer exists. The new widget confirms bookings inside its own iframe.
GA4 still receives page views, so dashboards look healthy until someone notices zero demo requests for the month. The fix is to listen for the widget's booking-complete message, push meeting_booked to the dataLayer, mark it as a key event and add the widget's domain to unwanted referrals. Our analytics continuity guide for migrations is built to catch exactly this before launch.
How do cross-domain and referral issues break GA4 attribution?
Cross-domain and referral issues break attribution by starting a new session when a visitor moves to another domain. The conversion then gets credited to that domain, such as a payment or booking site, instead of the ad, search or email that brought the visitor in.
Fix domains you control with GA4's cross-domain measurement setting, which passes an identifier between them. For third-party domains you can't tag, add them to the unwanted referrals list so they don't take credit. Then check the traffic source of a few recent converting sessions to confirm it now shows the original channel.
Why do GA4 and other tools show different conversion numbers?
GA4, Google Ads and your CRM count conversions differently, so some gap is normal. They use different attribution models, time zones, counting rules and consent handling, and ad blockers hide some visits from GA4 entirely.
- GA4 vs Google Ads: Ads uses its own attribution and conversion windows, and can count by click date.
- GA4 vs CRM: your CRM counts every lead, including ones from browsers that block analytics or deny consent.
- Duplicate conversion actions: importing GA4 key events into Ads while also running an Ads conversion tag counts twice.
- Filters and thresholds: internal traffic filters and data thresholds can hide rows in reports.
Use your CRM as the source of truth for lead counts and GA4 for trends and channel comparisons. A consistent gap is fine. A gap that suddenly widens means something broke. If the problem is wider than conversions, compare lab and field data in our guide to PageSpeed Insights scores, or check whether form emails arrive with our form deliverability guide.
