yala
← help

insights + analytics.

two dashboards: one workspace-wide, one per-link. five sub-tabs each (summary, sources, services, locations, devices). real- time refresh, range picker, CSV export on pro+.

how analytics works.

every fan tap fires an event from the cloudflare worker via QStash → our node worker → postgres (timescale hypertable). events carry: link id, destination resolved, geo (country + city), os + device + browser, channel, hashed IP, timestamp.

IPs are SHA-256 hashed and truncated to 24 bytes at the edge. we never store the original — only the hash, used for deduplication and bot/rate-limit. this means analytics are anonymized in the GDPR sense: you can’t reverse a hash to an IP.

summary tab.

4 KPIs, big chunky 48px values:

  • total visits — every page view of the link.
  • total clicks — DSP button clicks + conditional-redirect 302s.
  • ctr — clicks ÷ visits. percent.
  • unique fans — count of distinct hashed IPs in the range.

each KPI shows a small delta vs the previous equivalent range (24h vs prev 24h, 7d vs prev 7d, etc.) — green up arrow for better, red down for worse, gray dash for first-period.

below the KPIs, a time-series chart (visits + clicks dual-line, with a soft fill below). granularity adapts to the range: hourly for 24h, daily for 7d/28d, weekly for “all.”

sources tab.

three top-N tables: by channel, by referrer, by activity. sources tell you where fans came from — instagram, tiktok, an email blast, your own bio link, direct paste.

services tab.

which DSPs fans clicked. spotify usually wins. the bar visualizer next to each row makes the relative scale obvious without doing math.

locations tab.

by country + by city. country is from cloudflare’s edge geo (~99.5% accurate); city is from the same source (less accurate, depends on ASN data).

devices tab.

by device class (mobile / tablet / desktop), by OS (ios / android / mac / windows / linux), by browser.

CSV export.

every dashboard has an export to CSV button (pro+ tiers). exports the current range with the selected sub-tab’s data. handy for feeding into your label’s reporting.

next upteams + rolesinvite the band, set who can publish vs view-only, audit the room.