By Alex Hakman
Table Of Contents
- GA4 conversions: measuring with a cookie banner (without data loss)
- Why your tracking "collapses" after a cookie banner (in plain English)
- Quick check: is it a consent issue, or is your tracking broken? (10-minute test)
- The baseline setup that (almost) always works: cookie banner + Tag Manager + GA4
- Track conversions properly (reservations / online orders) without "gaps"
- Extra important for restaurants: measuring across multiple domains (reservation module/ordering module)
- Debug & fix: the 7 most common causes (with a quick fix for each)
- Frequently asked questions / objections
- Mini action plan: how to tackle this this week (without stress)
GA4 conversions: measuring with a cookie banner (without data loss)
- Since adding a cookie banner, reservations or orders suddenly look much lower in GA4. Sound familiar?
- The annoying part: you are now steering on the wrong numbers. You think marketing is not working, you pause campaigns, you get stressed on busy days, while the issue is often measurement, not sales.
- The good news: in 30 to 60 minutes you can usually spot where things go wrong and (mostly) fix it. Think consent, Tag Manager, and especially: measuring across your website and your reservation or ordering module.
This article is intentionally restaurant-proof: reservations/orders, often via an external module, and therefore extra sensitive to consent and cross-domain tracking. You will get a quick diagnosis (10 minutes), and only then the fixes.
Why your tracking "collapses" after a cookie banner (in plain English)
What a cookie banner does and does not do (and why GA4 sometimes goes quiet)
A cookie banner asks your visitor for permission. If someone says "no" (or clicks nothing), you cannot just track everything like you used to. Many systems then (partly) disable tracking.
The problem: some websites do not just disable extra tracking, they accidentally disable the basics too. Then it looks like your restaurant suddenly gets no inquiries, reservations, or orders anymore. While your POS system and your phone tell a different story.
The difference between "tracking less" and "broken tracking"
- Tracking less (normal): if people refuse, you miss part of the measurements. You see a drop, but not down to zero. And behavior still looks logical.
- Broken tracking (wrong): suddenly you see almost nothing anymore, or conversions disappear exactly where the money comes in (reservations, orders, gift cards).
A common red flag: you still see visitors, but you hardly see any reservations/orders in your tracking.
Typical restaurant flow: website -> reservation module / ordering module -> confirmation
In hospitality it often goes like this:
- Someone lands on your website (checks the menu, gets a feel for the vibe).
- Clicks "Reserve" or "Order online".
- Lands in a different environment (sometimes even a different website from your reservation or ordering provider).
- Completes the flow and sees a confirmation.
That step into the module is where measurement often breaks. Even more so since cookie banners have become stricter and browsers also block more aggressively.
Goal of this article: you understand why this happens, so you do not randomly flip things on and off.
Quick check: is it a consent issue, or is your tracking broken? (10-minute test)
Checklist: which numbers are you comparing (GA4 vs Search Console vs reservation system)
Grab these three things:
- Your reservation system or ordering system: how many reservations/orders came in today?
- GA4: how many conversions do you see there?
- Search Console: do you still see clicks to your site from Google?
If your reservation system is running normally and Search Console still shows clicks, but GA4 shows almost nothing, your tracking is probably broken.
Test 1: place 1 reservation/order in your browser (with accept/decline)
Do this on your own phone or laptop, preferably in a private window (so old cookies do not interfere).
- Go to your website.
- Decline cookies (or choose "necessary only").
- Complete a reservation/order through to the confirmation.
- Repeat the same flow, but this time accept.
What you want to learn:
- If you truly see zero when declining: that can be partly normal.
- If you also see no conversion when accepting: then it is not privacy, it is a measurement setup problem.
Test 2: check whether tags fire at all (Tag Manager preview / Tag Assistant)
This sounds technical, but it is basically checking whether the tracking switch is actually on.
- In Tag Manager you can start preview mode and then see whether measurements are being sent.
- There is also a browser helper that shows whether GA4 is sending anything.
If you see nothing happening when your page loads, you know: tracking starts too late or not at all.
The baseline setup that (almost) always works: cookie banner + Tag Manager + GA4
Order is everything: consent first, then measure (otherwise you miss the landing)
The first page someone sees (the landing page) is often the most important one: that is where your guest arrives via Google, Instagram, or an ad.
If your site only starts measuring after someone clicks the cookie banner, you miss that first page. And then things break:
- attribution is wrong
- visitors look like they came in directly
- conversions are disconnected from the journey
The right order is: clearly define what is and is not allowed, and then start baseline measurement as early as possible (in a way that stays within the rules).
Make sure GA4 starts properly (so you do not miss data on the first page)
Make sure GA4 can attach immediately when the page opens. Not after 5 seconds, not after a click.
In plain English: if your tracking light only turns on when someone hits accept, you are missing half the movie.
Common mistake: only measuring after the banner click (which guarantees gaps)
This is the classic restaurant setup:
- A cookie banner gets installed.
- Everything is made "safe" by only tracking after consent.
- Result: gaps in data, weird spikes, lots of unknown, and conversions that disappear the moment someone goes to the ordering or reservation module.
Track conversions properly (reservations / online orders) without "gaps"
Which conversions do you really want to measure? (reservation confirmed, order paid, click to call/WhatsApp)
For restaurants, these are usually the conversions that truly matter:
- Reservation confirmed (not just the click to reserve)
- Order paid or order placed
- Click to call (especially for last-minute)
- Click to WhatsApp (if you use it a lot)
Tip: choose 2 to 4 that actually represent revenue. Otherwise it becomes a mess.
When does GA4 count a conversion reliably? (moment + page/event)
A conversion should happen at a moment you are certain: this worked.
- For reservations: on the confirmation page, or on the screen that says "Reservation confirmed".
- For ordering: after payment or after the order is truly placed.
If you measure too early (for example on the Next button), you also count people who drop off. If you measure too late (when tracking only starts after the cookie choice), you miss the moment.
Confirmation page vs "thank you" popup: what is most stable?
- Confirmation page (recommended): a real page with its own URL. This is usually the most stable way to measure.
- "Thank you" popup (harder): looks nice, but is more fragile. Sometimes the popup is blocked, or the measurement trigger does not fire correctly.
Quick reality check: if your module does everything in a popup, you can still measure fine, but you then depend on events. In practice, that is where things often go wrong when consent or triggers are not 100% correct.
Extra important for restaurants: measuring across multiple domains (reservation module/ordering module)
Signal this is your problem: lots of "Direct" or conversions with no source
Do you see this in GA4?
- lots of visitors from Direct
- lots of unknown source/medium
- conversions that do not seem connected to your ads or Google
Then something often breaks when someone moves from your website to the reservation or ordering environment. You may still measure something, but the journey falls apart.
Cross-domain basics: what must match on both domains
In plain words: both places must recognize each other.
That usually means:
- tracking is correctly installed on your site
- tracking is also correctly installed in the module (or there is a proper handoff)
- the transition is configured so the visit does not restart as if someone just landed fresh on the module
On many restaurant websites, this is exactly where cookie banner settings mess things up: one environment asks for consent, the other asks too, and in the meantime tracking loses the thread.
If your module will not cooperate: 2 practical alternatives (without complicated setup)
Sometimes your reservation or ordering provider says: "We do not do that" or "We do not support it". Then you still have options:
Track the click to reserve/order on your website as an extra signal.
Not perfect (a click is not a confirmation), but at least you see how many people take the step. Combine that with counts from your reservation system.Use a simple intermediate page on your own site.
For example: "You are now going to make a reservation" and then forward. That gives you a stable measurement point on your domain before sending people to the module.
This is not theory. I see this work especially for businesses that want to steer campaigns going into the weekend, but do not want to be dependent on what an external module does or does not support.
Debug & fix: the 7 most common causes (with a quick fix for each)
Consent is not updated after a choice (banner says yes, GA4 stays no)
Symptom: you accept cookies, but nothing changes.
Quick fix: check whether the cookie banner actually passes consent to your tracking. Some banners show a choice but do not send anything through.
Tags fire, but GA4 sees nothing (wrong order / wrong trigger)
Symptom: you see things firing in Tag Manager, but GA4 stays quiet.
Quick fix: start GA4 as early as possible and make sure it does not wait for a later step.
Landing page not measured (tracking starts only after banner interaction)
Symptom: attribution is wrong, lots of direct, weird paths.
Quick fix: prevent tracking from starting only after the banner click. This is the number 1 cause of gaps.
Conversion event happens before tracking starts
Symptom: you see traffic, but the conversion does not show up.
Quick fix: make sure tracking is already active before the thank-you step happens. With fast modules, the confirmation can come very quickly.
Multiple containers/tags interfering with each other (double installs)
Symptom: double numbers, or chaos that makes you trust nothing.
Quick fix: check whether GA4 is installed twice (for example via your site builder and via Tag Manager).
External reservation provider blocks or isolates tracking
Symptom: everything works on your site, but the moment you go to the module it drops.
Quick fix: ask the provider what is possible. If it cannot be done: use the alternatives above (track clicks or an intermediate page).
Reporting looks broken due to settings (channels/identity)
Symptom: it feels wrong, but measurements are coming in.
Quick fix: check whether your reports are configured in a way that hides traffic in a corner. Sometimes everything looks like direct, while it is mainly a grouping method.
If you want to calmly read up on privacy rules and what you can and cannot measure, you can also check the cookie policy.
Frequently asked questions / objections
"Does this take a lot of time / do I need to rebuild my whole website?"
Usually not. In many cases it is mostly: the right order, the right settings, and a quick check of what happens during reservations/orders. Often it is clear within an hour. Sometimes it runs deeper (especially with external modules), but even then you can often use an intermediate solution to get more reliable numbers again.
"Roughly what does a fix cost (and when is it worth it)?"
If you spend money on promotion every month and you are steering on numbers that are wrong, it often costs you more than you think: bad decisions, turning off ads that do work, or continuing to pay for something that delivers nothing.
The real win is peace of mind: you know again which actions bring reservations or orders, especially going into busy weekends and holiday weeks.
"Can I do this myself or will I make it worse?"
You can absolutely do the 10-minute test yourself. Checking for double tracking is often doable too. But once it comes down to order and the handoff to the module, one wrong setting can break everything again.
If you have already spent two evenings getting frustrated: stop tinkering and have it checked with a clear plan.
"Can you still measure when people refuse cookies?"
You can measure less, but you can often still understand part of the behavior without storing personal data. The most important thing: your tracking should not go completely silent, and your conversions should at least come in reliably when people accept.
"Do I need to involve my reservation/ordering provider?"
Sometimes yes, sometimes no. If the module runs on its own domain and does not pass anything through, you often need the provider or you choose a practical workaround (track clicks, intermediate page). It depends on how your flow is built.
Mini action plan: how to tackle this this week (without stress)
Day 1: map your tracking and flows (what is "success")
- Write down what counts for you: reservation confirmed, order paid, calling, WhatsApp.
- Note the route people take: website -> module -> confirmation.
- Put the numbers side by side: reservation system versus GA4.
Day 2: baseline consent + GA4 check
- Do the 10-minute test (decline and accept).
- Check whether tracking starts when the page opens (not only after the banner click).
- Check whether you have double tracking.
Day 3: cross-domain / conversion check + wrap up
- Test the handoff to the module: does attribution stay logical?
- Test a real reservation/order through to confirmation.
- If needed, choose an alternative if the module will not cooperate.
You really want this working before a busy weekend, a holiday week, or a special day. That is when you make your best revenue, and you want to know which actions deliver the most.
Book a 30-minute consult: we will go through your website and reservation/order flow together, check where data drops (cookie banner/Tag Manager/GA4/cross-domain), and you will get a clear fix plan (DIY or done-for-you). Via: book a 30-minute consult.

Alex Hakman
Web developer and founder of HakmanDev.nl. I work daily on building and improving websites and online solutions for real users. In these blogs, I share practical insights and real-world experience, focusing on what works, what doesn’t, and why.
More about me →

