Event-based analytics

From Hogpedia, the free encyclopedia

Event-based analytics records what people do as a stream of named events, each with properties and each tied to a person. It is a data model, not a product. Most modern analytics tools are built on it, including every PostHog product.

It contrasts with page-based analytics, where the unit of record is a page visit. A page visit answers "how many people saw this page". An event answers "how many people did this thing", which is a different and usually more useful question.

The model[edit]

Three record types carry almost everything.[1]

Event. A named thing that happened, with a timestamp. For example signed_up, or file_uploaded.

Property. A value attached to an event or to a person. An event property describes the occurrence – which plan, which browser, which file size. A person property describes the actor, and is the current value rather than a historical one.

Person. The identity that groups events together. A person is usually anonymous first and identified later, so a tool must be able to join the two sets of events when the identity becomes known.

From three record types, a surprising number of questions become one query: a count is a filter over events, a funnel is an ordered sequence of them, retention is the same event at two points in time, and a cohort is a rule over person properties.

Why it replaced page-based analytics[edit]

A page visit was a reasonable unit of record when a product was a set of pages. It stopped being one for two reasons.

A page stopped being a step. A single-page application changes without a navigation, so the interesting actions produce no page visit at all.

The question changed. A marketing team asks how many people arrived. A product team asks how many people succeeded. Success is an action, not a location.

How PostHog uses it[edit]

PostHog stores one event stream and builds every product on it.[2] This is the reason a session replay can be opened from a funnel step, and why an experiment metric is an ordinary insight: they are queries over the same table, not integrations between separate systems.

The same data can be queried directly in SQL, which matters because a fixed set of insight types will always exclude some question.[3]

See also

References

  1. ^PostHog glossary, "Event", "Property", "Person", "Autocapture"
  2. ^PostHog documentation, Product analytics
  3. ^PostHog documentation, SQL