Solid write up. Anyone who has worked with product analytics or event tracking to any significant degree goes through a similar epiphany, in my experience.

It usually comes down to context vs consistency - client-side provides more context (IP, referrers, etc) and server-side provide more consistency (data integrity, events always firing, etc).

Pushing for server-side implementation for the events also helps with reducing the number of events, since it forces PMs/ biz/ whoever to identify the activities they care about. Usually it translates directly to engineering work, too, so there is a cost-benefit component to reducing the number of events to a more meaningful number. Also, it allows for "generic" events, where the fundamental event is the same - signed_up, for instance - but the mechanism through which it occurs can have many different flavors

Expand full comment