Plan and track

Event Tracking Plan: Name Events Once

A tracking plan is a simple table of every event you track: its name, when it fires, its properties and who owns it. It stops each tool from inventing its own names, and it makes reports trustworthy when people change.

ShoutEx Team · Data checked October 3, 2026
One name per action, everywhere.Website Analytics for founders · Data checked October 3, 2026
1
Plan shared by every analytics and ad tool
10–20
Events most early SaaS products need
snake_case
One naming style, used everywhere

What is an event tracking plan?

A shared document listing each event, when it fires, the properties it carries and where it is sent. Engineers implement it, marketers and product use it, and it keeps GA4, PostHog and ad pixels consistent.

Example · Tracking plan excerpt
Tracking plan · v3
EventFires whenPropertiesSent to
sign_upAccount createdmethod, planGA4, PostHog, Meta, LinkedIn
generate_leadDemo form submittedform_id, company_sizeGA4, CRM, ad pixels
project_createdFirst project savedtemplatePostHog
invite_sentTeammate invitedcountPostHog
purchasePlan paidplan, value, currencyGA4, PostHog, ad pixels
Illustrative example for a fictional SaaS company.

How should you name events?

  • Use object and action in snake_case: project_created, invite_sent.
  • Use GA4’s recommended names where they fit, such as sign_up, generate_lead and purchase.
  • Never put values in names: plan as a property, not sign_up_pro.
  • Keep one list of allowed property values.
  • Version the plan and log changes.

Which events should you track?

Marketing events for the site: sign-up, lead, pricing view. Activation events that show a user got value: the first project, the first invite, the first integration. Revenue events: trial start, purchase, upgrade. Activation events come from your onboarding work; see free trial activation. Campaign source comes from UTM tracking, not events.

How do you implement it?

Push events to the data layer from site code, then route them with Google Tag Manager to GA4 and ad pixels. Send product events from the app with the PostHog SDK, ideally from the backend for reliable counts. Check each event against the plan before release.

Founder rule

If it isn’t in the plan, it isn’t tracked.

A shared plan stops tracking from drifting into a mess nobody trusts.

How do you start a plan?

  1. List the five questions analytics must answer.
  2. Write the events and properties needed to answer them.
  3. Agree on names with engineering and marketing.
  4. Implement, test in debug tools and mark key events.
  5. Review the plan every quarter and remove dead events.

Frequently asked questions

What is an event tracking plan?

A shared document listing every tracked event, when it fires, its properties and where it is sent.

How should I name analytics events?

Object and action in snake_case, using GA4’s recommended names where they fit.

How many events should a SaaS product track?

Usually 10 to 20 at first: marketing, activation and revenue events.

Should event names include values?

No. Put values such as plan or source in properties.

Who owns the tracking plan?

One person, often in growth or product, with input from engineering and marketing.

Can one plan feed GA4 and PostHog?

Yes. Use the same names and properties in every tool.