Analytics
Understanding click events
What we record on each click, what we don't, and how the data flows through our analytics pipeline.
Updated 2026-05-09
Every click on an Elido short link generates a single click event in ClickHouse. Knowing what's in the event — and what isn't — is the difference between fast dashboards and frustrated support tickets.
What we record#
For each click, we store:
- Link ID — which short link was clicked.
- Workspace ID — for multi-tenant isolation in queries.
- Timestamp — UTC, microsecond precision.
- Country — derived from the visitor's IP via MaxMind GeoLite2. The IP itself is not stored.
- Device class — desktop / mobile / tablet, derived from the User-Agent.
- Browser family — Chrome, Firefox, Safari, etc. No version-level granularity by default.
- Operating system family — Windows, macOS, Linux, iOS, Android.
- Referrer host —
t.co,linkedin.com, etc. Just the host, not the path. - UTM parameters —
utm_source,utm_medium,utm_campaign,utm_content,utm_termif present in the destination URL or appended to the short URL. - Bot flag — true if the User-Agent matches our bot list (Slackbot, Twitterbot, security crawlers).
What we don't record#
- Full IP address — discarded after the geo lookup.
- User-Agent string verbatim — we extract the family fields and discard the raw string.
- Click coordinates / mouse movement / dwell time — we're a redirect service, not a heatmap tool.
- Cookies on the redirect — we don't set any.
The pipeline#
- The edge POP (Hetzner FRA / OVH FRA / OVH SGP) handles the redirect in under 20ms.
- The click event is fire-and-forget into Redpanda — the redirect doesn't block on it.
click-ingesterconsumes the topic and batches inserts into ClickHouse (~5s lag in steady state).- The dashboard's analytics tab queries ClickHouse via
analytics-api.
This means a click you just made won't appear in the dashboard for a few seconds. If you're testing and don't see your click immediately, wait 30 seconds and refresh.
Retention#
Click events are retained for 365 days by default. Pro+ workspaces can configure shorter retention (60 / 90 / 180 days) for GDPR data-minimisation. Business workspaces can extend retention to 7 years for regulated industries.
After retention, we delete the row entirely — there is no "soft-delete" or aggregated archive that still ties events to a user.