Skip to main content
Moonira
How-To

How mid-market marketing teams actually use GA4

Most teams install GA4, watch the traffic chart, call analytics done, and miss the actual leverage.

8 min read
Julius Forster

Julius Forster

CEO

GA4 analytics dashboard with conversion charts and traffic data displayed on a laptop screen in a marketing operations workspace

Almost every mid-market website runs GA4. Almost none of them use it for anything that moves revenue. The tag is on the page, the standard reports load, someone glances at sessions on Monday morning, and that is the entire analytics function for the company.

That is fine if the goal is a quarterly board slide. It is not fine if the goal is to know which channel is profitable, retarget the right buyers, recover the conversions Apple and ad blockers are quietly killing, or feed a real attribution model. GA4 can do all of that, but only if someone configures it to.

The teams that get value out of GA4 stop treating it as a dashboard and start treating it as the conversion data layer for the whole stack. Below are the gaps we see in nearly every mid-market install, the plays we build on top of them, and what the numbers tend to look like when the work is done.

The Tracking Gaps Most GA4 Customers Have

The same symptoms show up across companies we audit. None of them are obvious from the GA4 home screen. All of them quietly distort what marketing, finance, and the CEO believe is happening.

  • Conversions are 20 to 40 percent lower than the source-of-truth in Stripe or the CRM, because client-side tags fire before consent or get blocked by browser tracking protection.
  • Google Ads is bidding on "conversions" that are really form starts or button clicks, because nobody marked the real revenue event as a key event.
  • The BigQuery export is either off or on but unused. Raw event data is sitting in a Google project nobody queries, with nothing joined to it.
  • Audiences exist but were built once during setup and never updated. Retargeting still runs against "all visitors last 30 days" instead of buyers with real intent signals.
  • Consent Mode v2 is not configured, so EU traffic shows up as a sudden 30 to 50 percent drop in measured conversions and modeled data is missing entirely.

Automation Plays We Build with GA4

1. Server-Side GTM with Enhanced Conversions

Trigger: a user converts on the site (form submit, purchase, demo booked). Workflow: the event goes through a server-side Google Tag Manager container hosted on a first-party subdomain. We hash the user's email and phone in the container, forward the event to GA4 with the full payload, and pass Enhanced Conversions data into Google Ads. The conversion is also forwarded to Meta CAPI and LinkedIn Conversions API in the same step. Outcome: 10 to 30 percent more conversions captured in GA4, cleaner signal back to Google Ads for Smart Bidding, and a measurable lift in ROAS because the bidder is now optimising against real revenue events instead of a fraction of them.

2. GA4 to BigQuery to CRM Attribution Pipeline

Trigger: GA4 raw events landing in BigQuery on the daily and streaming export. Workflow: we set up scheduled queries that join GA4 events with Stripe charges, HubSpot or Salesforce deals, and ad spend pulled from Google Ads and Meta Marketing API. The output is a single table that maps every closed deal to its first-touch, last-touch, and data-driven attributed source. We pipe that into Looker Studio for marketing and into a finance dashboard for the CFO. Outcome: marketing stops arguing with finance about which channels work. Spend gets reallocated based on actual customer acquisition cost by source, usually within one or two quarters of the data being clean.

3. Behavioural Audience Sync into Ads and CRM

Trigger: a visitor hits a high-intent surface (pricing page twice, demo page, configurator, ROI calculator) without converting. Workflow: GA4 audiences capture the behaviour and sync to Google Ads for retargeting, to Meta via Customer Match for warm-pool campaigns, and via webhook to HubSpot for a sales play. SDRs see the account light up in their daily list, marketing sees the audience flowing through paid channels, and we add an exclusion audience for buyers who already converted so they stop seeing acquisition ads. Outcome: typically a 2x to 4x lift in retargeting click-through rate, a meaningful drop in cost per qualified lead, and fewer wasted impressions on existing customers.

4. GA4 Anomaly Detection into Slack

Trigger: conversion rate, form completion rate, or core event volume drops outside a defined range, or GA4's built-in anomaly detection flags an unusual movement. Workflow: a scheduled BigQuery query checks the rolling 7-day baseline against the last 24 hours. When it trips, an n8n workflow posts to a Slack channel with the affected page, channel, and a link to the GA4 exploration. The on-call marketer or developer responds the same day. Outcome: broken forms, busted tracking, bot traffic spikes, and landing page regressions get caught within hours instead of at the end of the month when revenue is already short.

How GA4 Should Integrate With Your Stack

  • Google Tag Manager (server-side) sits between the site and GA4, hosting the container on a first-party subdomain so events survive ad blockers.
  • BigQuery is the analytical home for raw events. Everything downstream (dashboards, attribution, audiences from SQL) reads from here, not from the GA4 UI.
  • Google Ads, Meta, and LinkedIn receive conversions via Enhanced Conversions, CAPI, and CAPI for LinkedIn, all routed through server-side GTM.
  • HubSpot or Salesforce gets behavioural signals via webhook for lead scoring and SDR routing, with the GA4 client ID stored against the contact record.
  • Looker Studio or Power BI sits on the BigQuery export for marketing and finance dashboards, with refresh times measured in seconds rather than GA4's UI lag.
  • n8n or Cloud Functions handle the glue: anomaly alerts, audience exports to non-Google ad platforms, and reverse-ETL from BigQuery back into operational tools.

What ROI Actually Looks Like

These ranges are indicative, not promised. They land based on the size of the ad spend, the maturity of the existing setup, and how dirty the data was when we started. They are also typically observable within one quarter of the work going live, not six.

  • Conversion recovery from server-side GTM and Enhanced Conversions: usually 10 to 30 percent more measured conversions, with the lift biggest on Safari and iOS traffic.
  • Paid media efficiency: cost per acquisition typically drops 15 to 35 percent within two months once Smart Bidding has clean conversion signal to optimise against.
  • Attribution clarity: most teams reallocate 20 to 40 percent of paid budget in the first quarter after the BigQuery model goes live, away from channels that looked good in last-click and into ones that actually assist.
  • Issue detection: typical time to detect a broken funnel drops from 14 to 28 days (monthly review) to under 24 hours, which alone usually pays for the build.

What This Costs to Run

Server-side GTM runs on a Cloud Run instance, which costs roughly $40 to $120 per month for most mid-market traffic volumes. BigQuery storage for the GA4 export is effectively free under 10GB and pennies on the dollar beyond that. n8n can self-host for the price of a small VPS, or run on the cloud version for under $50 per month. Most of the cost in this whole stack is the one-time configuration. Once it is running, the marginal cost for the next three years is closer to a Netflix subscription than an enterprise SaaS contract.

Treat the build like infrastructure, not a marketing experiment. The same way you would not run production without logs and alerts, you should not run a paid media program without server-side tracking and a real attribution model. That framing is what gets the engineering and finance buy-in the work usually needs.

Where Teams Go Wrong

  • Marking everything as a key event. If 14 different things count as a conversion, none of them tell Smart Bidding anything useful. Keep it to one or two real revenue events per property.
  • Leaving the default 2-month data retention on. It is in settings and it is the single highest-value 30-second change in GA4. Move it to 14 months on day one.
  • Running client-side GTM only. Anything that touches revenue should be routed through a server container, otherwise 20 to 40 percent of conversions never land in GA4 or Google Ads.
  • Treating GA4 reports as the source of truth. The UI is for quick checks. BigQuery is where the actual numbers live, and where finance, marketing, and ops should agree.
  • Skipping Consent Mode v2. Without it, EU conversions disappear instead of being modeled, and the gap is invisible until ad spend stops working in Q3.

Where Moonira Comes In

Most teams know GA4 should be doing more. The blocker is that the work spans developers, marketers, finance, and ad platforms, and nobody owns the whole picture. We do.

We come in, audit the current install, build the server-side GTM container, wire up the BigQuery pipeline, configure the audiences, hook in Enhanced Conversions, set up the dashboards, and run the anomaly alerts. The marketing team gets clean data, the finance team gets defensible attribution, and the ad platforms get the signal they need to spend efficiently.

If your GA4 is still a dashboard nobody opens, we can turn it into the part of the stack that actually moves the number on the board.

Want us to build this for you?

We build custom automation systems for mid-market companies. You don't pay until you're blown away with the results.

© 2026 Moonira. All rights reserved.

Logos provided by Logo.dev