Skip to main content
Engineering

What counts as an event (and what you should not track)

Most analytics setups drown in events nobody asked for. A short, opinionated guide to defining events, naming them like an API, and keeping PII out.

The leatmap team2 min read
A dense web of black nodes and connecting threads on a soft white background, a calm, ordered network.

Open most analytics accounts and you will find hundreds of event names, half of them fired once, a third of them near-duplicates, and a handful nobody can explain. The data is technically there. It is also unusable.

The fix is not a bigger tool. It is a definition and a little discipline.

An event is something you call track() on

In leatmap, an event is anything you record: a pageview, a custom event, an identify call. You are billed on ingested events, never on monthly active users. That pricing model has a useful side effect. It makes every event a deliberate choice instead of a reflex.

So before you add one, ask a simple question: what decision will this event help someone make?

Track outcomes, not noise

Good events map to things your team actually acts on:

  • A signup, a trial start, a subscription.
  • A key activation step (created first project, invited a teammate).
  • A checkout step, an upgrade, a cancellation.

Noise is everything you add just because you can:

  • Every hover, scroll tick, and mouse move as its own event.
  • A new event name for each button when one event with a property would do.
  • Debug events you meant to remove before launch.

If you cannot name the decision an event supports, you do not need the event yet.

Never put PII in an event

Emails, names, raw tokens, and full addresses do not belong in event properties. leatmap enforces PII rules server-side at the collector, so a stray field is caught before it is stored. But enforcement is a safety net, not a substitute for the habit. Send identifiers you control (a hashed user id), not the person.

Name events like an API

Treat your event names the way you treat a public API: stable, consistent, and reviewed.

  • Pick one shape and hold it. checkout_completed, not Checkout Done next to purchase-complete.
  • Put the variable part in a property, not the name. One button_clicked with a label beats fifty named buttons.
  • Write it down. A tracking plan is the contract; enforcement at the collector (off, warn, or block) is how you keep it honest.

The short version

Fewer events, named well, with no PII, beat a firehose every time. Decide what each event is for, keep the person out of the payload, and let the collector enforce the plan.

See how enforcement works on the pricing page, or read why we keep consent and PII at the collector instead of the browser at leatmap.com/blog/consent-and-pii-at-the-collector.

Stop measuring with crossed fingers.

Get a tracking plan you can trust, a collector that enforces it, and a dashboard you actually want to open.