The 6 GA4 events SMBs should actually track (and the 30 they shouldn't)
GA4 ships with 30+ enhanced measurement events. Most are noise. The 6 that produce decision-grade data, and how to wire them.
GA4's enhanced measurement turned on by default tracks ~12 events out of the box: page_view, scroll, click, file_download, video_engagement, and a handful more. Add Google Tag Manager and most SMB GA4 installs end up with 30+ events firing. Almost none of them inform any actual decision.
Here's the short list of events that actually matter for an SMB and how to set them up.
The six events
| Event name | Fires when | What it tells you |
|---|---|---|
| lead_form_submit | User submits a contact / quote form | Top-of-funnel demand |
| lead_form_qualified | Form passes server-side validation (Turnstile + spam check) | Real-human demand |
| phone_click | User clicks a tel: link or calls a tracked number | Phone-preferring lead intent |
| booking_confirmed | Lead books a calendar slot via Cal/Calendly webhook | Self-served qualified lead |
| audit_started | Lead starts the lead-leak audit flow | Tool engagement |
| audit_completed | Audit report is delivered (server-side event) | Tool conversion |
Source: TNova analytics audits 2025; Google's GA4 e-commerce/lead docs
Why server-side beats client-side for the important ones
Client-side events fire from the browser via gtag.js or GTM. They're easy to set up. They're also blocked by an increasingly large share of users — per Statista 2024 data, ad-blocker usage in the US sits at ~37% of internet users and has been rising for five years. Among the 25–34 demographic it's higher.
Server-side events fire from your backend (Vercel Functions, your CRM webhook, the form-submit endpoint) directly to GA4's Measurement Protocol. They're not blockable by browser extensions because they don't run in the browser. For the high-value events (form_submit, booking_confirmed, audit_completed) server-side is the only way to get clean data.
What to remove
Scroll events, video-engagement events, file-download events on a marketing site, outbound-click events to social profiles, page_view events with custom parameters that nobody queries — all noise. They pollute exploration reports and slow down debugging when something real breaks.
The single dashboard
One Looker Studio dashboard. Four widgets: lead_form_qualified count (last 30 days, vs prior 30), cost per lead by channel, conversion rate from lead → booking_confirmed, and a channel breakdown of lead source. That's the executive view. Anything else lives in GA4's own reports, accessed when someone has a specific question.
Do I need GA4 if I have HubSpot / Pipedrive analytics?
If your CRM tracks lead source accurately and you don't run paid acquisition, you can skip GA4. If you run any paid (Google Ads, Meta, LSA), you need GA4 for Google Ads' conversion data — there's no clean substitute.
What about Plausible or Fathom instead of GA4?
They're great for privacy-respecting page-view analytics. They don't replace GA4 for the conversion-tracking integration with Google Ads. Many of our clients run both — Plausible for marketing-team reporting, GA4 only for ads conversion attribution.
How do I send server-side events to GA4?
GA4 Measurement Protocol — a POST to https://www.google-analytics.com/mp/collect with your API secret and measurement ID. Documented in Google's developer docs. Most server frameworks need ~20 lines of code to wire it.
See where you show up when customers search.
Free 24-hour Visibility Audit. Yours to keep — whether you hire us or not.