Three things are true at once: GA4 is the worst analytics tool most teams use, it is also the most important data source in their marketing stack, and the gap between an account that is set up properly and one that is not is somewhere between 25% and 60% of all the conversions the business actually produces. The cost of getting this wrong is enormous, and most accounts are getting it wrong quietly.
This is what we set up on every account we touch — and what we deliberately do not.
The data loss problem, briefly
Modern web tracking loses data at five layers: ad blockers (15-30%), iOS Intelligent Tracking Prevention (10-25%), cookie consent rejection (20-50% in the EU), Firefox/Safari enhanced privacy (5-10%), and outright network failures. By the time a purchase event reaches GA4 through standard client-side tracking, you are typically seeing 50-70% of the real volume. The ad platforms see even less.
Server-side tracking does not fix this entirely — but it recovers 20-40% of the loss, and that is usually the difference between an account that can scale on tROAS and one that cannot.
The minimum viable stack
- GA4, configured properly. Custom events for every business-critical action, parameters with values, enhanced measurement on. Skip the recommended events that do not apply to your business; their reports just clutter the navigation.
- A server-side GTM container. Hosted on your own subdomain (data.yourdomain.com) so it is not blocked as third-party. Routes hits to GA4, Google Ads, Meta CAPI, and TikTok Events API from one source of truth.
- Consent Mode v2, properly implemented. Without it, EU traffic gets stripped from your conversion modeling and your ad accounts. With it, Google reconstructs the missing data probabilistically — which is far better than nothing.
- Offline conversion uploads. The closer the conversion event lives to revenue, the more useful it is for bidding. Push CRM stages back into Google Ads and Meta via API.
What server-side tracking actually does
The misconception: server-side GTM is more accurate. That is not exactly right. It is that server-side hits:
- Are not blocked by ad blockers (the request originates from a first-party subdomain you control)
- Can be enriched server-side with first-party data the browser does not have (user IDs, hashed emails, deal values)
- Survive cookie-clearing because you can deduplicate against server-side identifiers
- Can fan out to multiple destinations from one event, so you are not maintaining six different pixel implementations
The trade-off: it costs money to run (typically €50-200/month on GCP or AWS), it is another moving piece to maintain, and the setup takes 2-3 weeks for an experienced team. Worth it for any account spending over €15k/month on paid media. Optional below that.
The conversions that actually need to be set up
- One primary conversion — the action closest to revenue (purchase, qualified lead, demo booked)
- Two to three secondary conversions — leading indicators with assigned values
- Engagement events for audience-building — viewed 75% of pricing page, spent 60+ seconds on product page
- A single deduper event with a transaction ID — so server-side and client-side hits do not double-count
Anything beyond this list is usually noise. Resist the urge to track everything.
The dashboard you actually need
Skip the GA4 default reports — they are built for ten different jobs and good at none. Build one Looker Studio dashboard with: blended ROAS, channel-level CAC, conversion trend by week, and creative/keyword winners. That is the report leadership will look at. The rest is for debugging.
What we deliberately do not set up
- Cross-domain tracking unless there is actually a cross-domain flow that matters.
- BigQuery export below €30k/month in ad spend. The data is there, but the team usually does not have anyone who will query it.
- Custom dimensions for every CRM field. Pick five. Use them.
- A/B testing tools as analytics tools. Optimizely or VWO data should live in their own dashboards.
The migration path if you are starting from scratch
- Week 1: Audit current tracking. Compare GA4 to ad platforms to backend. Quantify the data loss.
- Week 2-3: Implement Consent Mode v2 and clean up the event taxonomy. This alone usually recovers 10-15% of conversion volume.
- Week 4-6: Stand up server-side GTM on a first-party subdomain. Migrate the primary conversion event first; run client-side and server-side in parallel for two weeks to validate.
- Week 7-8: Migrate the rest of the events. Wire up CAPI for Meta, Events API for TikTok, Enhanced Conversions for Google Ads.
- Week 9+: Offline conversion uploads from CRM. This is when the tROAS bidding becomes genuinely intelligent.
The honest assessment
If you are spending under €5k/month, the GA4 default setup is fine. Do not over-engineer. If you are between €5k and €15k/month, fix Consent Mode and tighten your event taxonomy — that is 80% of the value. Above €15k/month, the server-side stack pays for itself within a quarter and never stops paying.
Want a second opinion on your tracking setup? Send us your account — we will do a free audit and show you where the data is leaking.