Beta Position Eleven is live and still being built.
Home › Writing › Analytics

Event names are an API you cannot version

Analytics event names behave like a public API with no versioning: once data is collected under a name, that name is load-bearing forever.

Rename contact_form to form_submit and you now have two events, each holding half the history, with no way to merge them retrospectively in the source data.

The rules that prevent regret

Lowercase with underscores. GA4 event names are case-sensitive, so Form_Submit and form_submit are different events. Pick one convention and never deviate.

Verb or noun_verb, consistently. form_submit, phone_click, video_start. Not submitted_form in one place and form_submit in another.

Generic name, specific parameters. form_submit with form_id: contact beats contact_form_submit. The first aggregates by default and segments on demand; the second requires you to know every variant in advance.

Never encode a value in a name. purchase_over_100 is a name that will need a sibling next quarter.

Reserved and automatic names

GA4 collects a set of automatic events and reserves certain names. Using a reserved name for your own purpose either fails silently or produces data that behaves unexpectedly.

Check the reserved list before naming anything. It is short, and discovering the conflict after three months of collection is expensive.

The limits

There are caps: distinct event names per property, parameters per event, and distinct values per parameter before high-cardinality bucketing begins.

Accounts hit these by creating an event per variation. Once you pass the limit, new events are silently dropped, which is exactly as much fun as it sounds.

The document

One page, in the repository, listing every event, its parameters, when it fires, and what it means. Not in a wiki nobody can find — next to the code that fires it.

Every measurement setup that survives a change of personnel has this document. Every one that does not becomes archaeology within a year, at which point somebody proposes starting fresh with better names, and the cycle repeats.

Read next

Reading about it is slower than looking

Run the free audit on your own site. Public data, about ten seconds, no account.

Audit my site

Stop reporting what happened.

Start telling clients what to change — and prove it moved.

Get started
Beta · help shape it

What would make this worth paying for?

Everything on this site works today. It is early, so the roadmap is still genuinely movable — tell us what is missing and we will build it. Testers who give us something useful get a lifetime deal on whatever plan they end up on.

No account needed. Email is optional.