Notes on Umami Analytics

I recently tried out the self-hosted version of the Umami analytics (v2 specifically). It is a breath of fresh air for anyone used to Google Analytics. Features like individual user session drill-downs and other context related explorations are super simple and straight forward.

Here are my notes on the implementation details and reasons for why I eventually decided to not use it:

  1. It relies on data attributes on the script tag for passing the configuration (script ID, delayed loading, etc.) instead of using a global array collector like window.dataLayer = [] for configuration and impression/event context (see source code). This complicates the setup and will not be flexible in the long-run (can’t inline the tracker JS, values can be only strings).
  2. You can’t attach additional context or meta data about the initial page view event (view source code). The only option is to completely disable the default impression tracking (which can only be done using the data-auto-track="false" attribute and then configure a custom one.
  3. Tracking outbound link clicks is really complicated — you have to add data-umami-event attribute to all external links to use the built-in tracking (source code) or implement a custom solution that captures all link events, accounts for all the modifier logic (new tab, mouse up) and sends a custom event.

Likes

Leave a Reply

Reply on Mastodon or search for ️this permalink in your ActivityPub client, and it will show up here too (also follow this blog). Or simply leave a comment below: