You had forty orders last month, but GA4 shows twenty-five. Or the conversion report stays at zero while the enquiries keep coming in. This is one of the most common problems we come across with new clients.
First, let’s set expectations: no web analytics tool measures everything. Some of your visitors decline cookies, use an ad blocker or switch devices. Your order system is the truth; GA4 shows you where those orders came from. So the goal is not to measure everything, but to measure as much as possible, consistently, and to know where the gap is.
The six most common reasons GA4 misses conversions
| Cause | How to recognise it | Fix |
|---|---|---|
| Consent declined | Many sessions, but few events after the cookie banner | Set up Consent Mode v2 correctly, configure the banner properly |
| Tag or event not set up correctly | Event does not appear in DebugView | Check trigger and tag in Tag Manager |
| Wrong event marked as a conversion | Conversions count on the wrong page or not at all | Mark the right event as a key event (conversion) |
| Redirect via payment provider | Conversions are attributed to “referral” from the payment page | Add the payment provider to the unwanted referrals, set up cross-domain measurement |
| Ad blockers | Structurally fewer sessions than your server logs | Consider server-side tagging |
| Thank-you page does not load or is skipped | Orders without a matching purchase event | Tie the event to the confirmation instead of the page |
Cause 1: consent declined, and what consent mode does about it
If you use a cookie banner, some of your visitors choose “decline”. Without a proper setup, your tags either fire anyway (which you do not want), or they do not fire at all and you miss every conversion from that group.
Google Consent Mode is the way you tell your Google tags (GA4, Google Ads) what permission the visitor has given. In Consent Mode v2 there are four signals:
| Signal | What it controls |
|---|---|
analytics_storage | May GA4 set cookies to recognise visitors and sessions? |
ad_storage | May advertising cookies be set, for example for Google Ads conversion tracking? |
ad_user_data | May user data be sent to Google for advertising purposes? |
ad_personalization | May that data be used for personalised advertising, such as remarketing? |
The first two already existed in the first version; ad_user_data and ad_personalization were added in v2 and are required for Google Ads features such as remarketing.
How consent mode works technically
Consent mode works in two steps:
- Default. Before any tag loads, you set the default status. For visitors in Europe that is usually
deniedfor all four signals. - Update. As soon as the visitor makes a choice in the cookie banner, the banner sends an update:
grantedordeniedper signal. The tags respond to that immediately.
The order is crucial. If the GA4 tag loads before the default status is set, cookies get placed anyway. In Google Tag Manager you use the “Consent Initialization” trigger for this, which always fires first.
Basic or advanced consent mode: the difference
There are two ways to implement consent mode.
Basic consent mode. Your Google tags only load after the visitor has given consent. If someone declines, nothing goes to Google. Simple, but you know nothing about those who decline.
Advanced consent mode. The Google tags always load, but adjust their behaviour. On denied they set no cookies and only send cookieless pings: a signal that a page was viewed or a conversion took place, without the visitor being identifiable. Based on those pings, Google can model how many conversions you probably missed.
| Basic | Advanced | |
|---|---|---|
| Tags load before consent | No | Yes, without cookies |
| Data from visitors who decline | None | Cookieless pings |
| Modelling of missed conversions | No | Yes, with enough data |
| Complexity | Low | Higher, needs proper testing |
Which variant you choose is partly a technical and partly a legal decision. We do not give legal advice; discuss that with your own adviser. Technically, advanced gives the most complete picture.
Setting up consent mode v2 in Tag Manager: the steps
Most cookie banners (also called consent management platforms or CMPs) have a ready-made integration with Google Tag Manager. Choose a banner that explicitly supports consent mode v2. The implementation then looks like this:
- Install the CMP template in GTM and have it fire on the Consent Initialization trigger. This is where the default status is set.
- Check the default statuses. All four signals on
deniedfor European visitors, unless you deliberately deviate from that. - Connect the banner choice to the update. The CMP passes on the new statuses when someone accepts or declines. Test this, because not every banner does it correctly by default.
- Set the consent settings per tag. For advanced, you let Google tags load and consent mode controls their behaviour; for basic, you add the signals as an extra condition.
- Test in preview mode. Look at the Consent tab in Tag Assistant and check whether the statuses change as soon as you click in the banner.
From our own experience: with almost every new client we audit at Stijgt, the measurement is wrong. Sometimes tags fire before the banner, sometimes the wrong event is set as a conversion, sometimes the v2 signals are missing entirely. That is why we start every engagement with a baseline measurement and a check of all tracking. Without proper measurement you are optimising on sand.
Causes 2 and 3: wrong tags, triggers or conversion events
Consent is far from always the culprit. Often it goes wrong in the setup itself:
- The event does not fire. The trigger is set to a URL that is slightly different from the real thank-you page, or the form submits without a page change and the trigger does not respond to that.
- The event fires twice. A GA4 tag via GTM and a hard-coded script in the website. Then you see too many conversions instead.
- The wrong event is marked as a conversion. For example
form_startinstead ofform_submit. - The event is not marked as a key event. GA4 now calls conversions “key events”. If you do not explicitly switch an event on there, it does not appear in your conversion reports.
Cause 4: the detour via a payment provider
For online shops this is a classic. The customer goes to the payment provider’s checkout environment and then returns to your thank-you page. GA4 sees that as a new session with the payment provider as the source. The conversion is there, but it is attributed to “referral” instead of to Google Ads or organic traffic.
The fix is in GA4, in the settings of your data stream: add your payment provider’s domain to the unwanted referrals. If you work with several domains of your own, for example a separate checkout, set up cross-domain measurement.
Cause 5: ad blockers
Some of your visitors block scripts from Google. Those visitors do not appear in GA4, even if they order. Consent mode does not solve this. Server-side tagging, where the data goes to Google via your own domain, reduces the effect.
How to check for yourself whether your conversion tracking is correct
Place a test order and check in DebugView whether the conversion event comes in with the right value. Then compare the conversions in GA4 over a month with your order system: a difference is normal, but if more than half is missing, something else is going on. Finally, decline the cookies and repeat the test. Are the tags still firing with cookies? Then consent mode is not set up correctly.
Proper measurement is the foundation of everything that follows: conversion rate optimisation, adjusting Google Ads and judging whether your SEO is paying off. Not sure whether your tracking is correct? Get in touch and we at Stijgt will take a look with you.