Home/Resources/GA4/A clean GA4 setup, end-to-end (without the headache)

A clean GA4 setup, end-to-end (without the headache)

Set up GA4 the right way the first time — clean property, sensible events, and a data layer you'll actually trust.

GA4 isn't hard. What makes it feel hard is starting in the wrong place. The default trap is jumping straight into events without thinking about the underlying model.

Let's do this properly.

Step 1: Think in events, not pageviews

GA4 is event-based. A pageview is just one event among many. Once that clicks, everything else gets easier.

Every meaningful user action — a form submit, a video play, an outbound click — is an event with parameters. Start the project by listing the events that matter to your business, before you set up a single tag.

Keep this list short. 8–15 well-defined events beat 60 messy ones — every time.

Step 2: Create a clean property

In Google Analytics:

  1. Create a new GA4 property (or audit your existing one — you may want a fresh start).
  2. Add a single web data stream for now. Multiple streams add complexity you usually don't need at the start.
  3. Turn on Enhanced Measurement, but understand what it covers — pageviews, scrolls, outbound clicks, site search, file downloads, and video engagement. It's a good baseline, not your full event model.

Step 3: Set up GTM as the source of truth

Even if you don't think you need GTM, you do. Hard-coding tags inside your site means every change is a dev ticket. GTM means you and your team can move.

A simple, clean container looks like this:

Tags

  • GA4 Configuration (one per property)
  • GA4 Event tags — one per custom event

Triggers

  • A trigger per meaningful event (form submit, key CTA click, video play, etc.)

Variables

  • A few Data Layer Variables for things like form_id, value, user_type

Naming

Pick a convention and stick with it. I use:

[Tag Type] - [Event Name] - [Where]

For example: GA4 Event - generate_lead - Contact Form

Step 4: Define conversions deliberately

In GA4, "Conversion" is a label you apply to specific events. Don't mark everything as a conversion — that defeats the point.

Common conversion events:

  • generate_lead — form submit on a real lead form
  • purchase — completed checkout
  • sign_up — account creation

Each conversion should map to a real business outcome, not just engagement.

Step 5: QA in preview mode

Before you publish:

  1. Use GTM Preview Mode.
  2. Open the DebugView in GA4.
  3. Walk through each event and confirm it fires once, with the right parameters.

Most "weird GA4 data" you'll ever debug comes from events firing twice or with the wrong parameters. Catch it now, save yourself months of cleanup.

Step 6: Document the measurement plan

A measurement plan is a one-page doc that lists:

  • Each event name
  • When it fires
  • Required parameters
  • Whether it's a conversion
  • Which report or audience uses it

Save it in your team's docs. Update it whenever a new event ships. This single document is the difference between data you trust and data you guess at.

What's next

Once your GA4 + GTM stack is clean, the real fun begins — exploration reports, audiences, Looker Studio dashboards, and (eventually) BigQuery exports. But none of those matter if the foundation is shaky. Build that first.

Next up
Product Owner basics: what the role actually is
Read next
Need this on your site?

I take this from theory
to done.