# PhoenixKitWebAnalytics v0.5.0 - Table of Contents

> Privacy-first, cookieless web analytics module for PhoenixKit — server-side page view tracking with no client-side JavaScript required

## Pages

- [PhoenixKitWebAnalytics](readme.md)
- [Changelog](changelog.md)

## Modules

- [PhoenixKitWebAnalytics](PhoenixKitWebAnalytics.md): Web analytics for PhoenixKit sites, recorded by the server — who comes,
where from, what they do, and when they leave.
- [PhoenixKitWebAnalytics.Admin](PhoenixKitWebAnalytics.Admin.md): Every change an operator can make to the module — settings, the tracking
switch, a manual retention pass, a salt rotation — in one place, each logged
to `PhoenixKit.Activity` with the acting user.
- [PhoenixKitWebAnalytics.Alerts](PhoenixKitWebAnalytics.Alerts.md): Tells the site's staff when something happens on the site — a visitor
arriving, someone signing up, an event you care about — through PhoenixKit's
notification system, so it reaches the in-app inbox, email, or Telegram
with no per-project code.
- [PhoenixKitWebAnalytics.BotSignals](PhoenixKitWebAnalytics.BotSignals.md): Spotting automated visitors by what they do, not only by what they call
themselves.
- [PhoenixKitWebAnalytics.Collector](PhoenixKitWebAnalytics.Collector.md): The write path: takes a raw hit, enriches it, and stores one
`PhoenixKitWebAnalytics.Schemas.Event`.
- [PhoenixKitWebAnalytics.Config](PhoenixKitWebAnalytics.Config.md): Settings-backed configuration for the Web Analytics module.
- [PhoenixKitWebAnalytics.Geo](PhoenixKitWebAnalytics.Geo.md): Optional behaviour for resolving a request IP to a coarse location.
- [PhoenixKitWebAnalytics.Gettext](PhoenixKitWebAnalytics.Gettext.md): Gettext backend for phoenix_kit_web_analytics — every string the module
shows: admin pages, tab labels, notification text.
- [PhoenixKitWebAnalytics.LiveHook](PhoenixKitWebAnalytics.LiveHook.md): Everything a visitor does on a LiveView page, recorded server-side from the
socket — no client-side script.
- [PhoenixKitWebAnalytics.LivePresence](PhoenixKitWebAnalytics.LivePresence.md): Who is on the site right now, and when they leave — from the LiveView
processes themselves, with no client-side script.
- [PhoenixKitWebAnalytics.Migrations](PhoenixKitWebAnalytics.Migrations.md): Versioned migration coordinator for `phoenix_kit_web_analytics` — the module
returned from `PhoenixKitWebAnalytics.migration_module/0`.
- [PhoenixKitWebAnalytics.Paths](PhoenixKitWebAnalytics.Paths.md): Centralized path helpers for the Web Analytics module.
- [PhoenixKitWebAnalytics.Plug](PhoenixKitWebAnalytics.Plug.md): Records one page view per HTML response — the whole tracker, server-side.
- [PhoenixKitWebAnalytics.Recordings](PhoenixKitWebAnalytics.Recordings.md): Session recordings: how a visitor moved the pointer, what they clicked and
hovered, how the page scrolled — enough to replay a visit over the page it
happened on.
- [PhoenixKitWebAnalytics.Referrer](PhoenixKitWebAnalytics.Referrer.md): Turns a raw `Referer` header into a `{source, medium}` pair for reporting.
- [PhoenixKitWebAnalytics.ReportCache](PhoenixKitWebAnalytics.ReportCache.md): A short-lived cache for report results, so a busy site's admin pages don't
re-run the same aggregates for every viewer and every refresh.
- [PhoenixKitWebAnalytics.Reports](PhoenixKitWebAnalytics.Reports.md): Read-side aggregation — every number the admin pages show.
- [PhoenixKitWebAnalytics.Retention](PhoenixKitWebAnalytics.Retention.md): Keeps the events table from growing without bound.
- [PhoenixKitWebAnalytics.Routes](PhoenixKitWebAnalytics.Routes.md): Route macros for the module's admin pages and two public collection
endpoints. Returned from `PhoenixKitWebAnalytics.route_module/0`; PhoenixKit
splices the admin routes inside its own `live_session :phoenix_kit_admin`
(auth + admin layout applied automatically) and the public ones near the top
of the host router.
- [PhoenixKitWebAnalytics.Schemas.DailyDim](PhoenixKitWebAnalytics.Schemas.DailyDim.md): One day of one breakdown value per site — "`/pricing` had 812 views from
640 visitors on 2026-09-30", "Google sent 212 views".
- [PhoenixKitWebAnalytics.Schemas.DailyStat](PhoenixKitWebAnalytics.Schemas.DailyStat.md): One day of pre-aggregated totals per site — what survives after raw events
are pruned.
- [PhoenixKitWebAnalytics.Schemas.Event](PhoenixKitWebAnalytics.Schemas.Event.md): One analytics hit — a page view or a custom event.
- [PhoenixKitWebAnalytics.Schemas.Recording](PhoenixKitWebAnalytics.Schemas.Recording.md): One chunk of a session recording — a few seconds of one page view: where
the pointer went, what was clicked and hovered, how the page scrolled.
- [PhoenixKitWebAnalytics.UserAgent](PhoenixKitWebAnalytics.UserAgent.md): A deliberately small User-Agent classifier: browser, OS, device class, and
"does this look automated".
- [PhoenixKitWebAnalytics.Visitor](PhoenixKitWebAnalytics.Visitor.md): Cookieless visitor identification.
- [PhoenixKitWebAnalytics.Web.Beacon](PhoenixKitWebAnalytics.Web.Beacon.md): The optional client-side snippet — around 300 bytes, inline, no file to load.
- [PhoenixKitWebAnalytics.Web.BeaconPayload](PhoenixKitWebAnalytics.Web.BeaconPayload.md): Turns an untrusted beacon payload into a hit map for
`PhoenixKitWebAnalytics.Collector`.
- [PhoenixKitWebAnalytics.Web.Components](PhoenixKitWebAnalytics.Web.Components.md): The shared building blocks of the six report pages: the filter bar, stat
tiles, the trend chart, and the ranked breakdown card.
- [PhoenixKitWebAnalytics.Web.DashboardLive](PhoenixKitWebAnalytics.Web.DashboardLive.md): Overview — the page you land on: headline numbers with period-over-period
change, the traffic trend, and the breakdowns worth seeing first.
- [PhoenixKitWebAnalytics.Web.EventsLive](PhoenixKitWebAnalytics.Web.EventsLive.md): What visitors do — interactions (LiveView events, and the client script's
clicks), custom events, and the live hit feed.
- [PhoenixKitWebAnalytics.Web.Filters](PhoenixKitWebAnalytics.Web.Filters.md): Shared period/site filter handling for the report LiveViews.
- [PhoenixKitWebAnalytics.Web.LiveNowLive](PhoenixKitWebAnalytics.Web.LiveNowLive.md): Right now — who is on the site this moment, and what they're looking at.
- [PhoenixKitWebAnalytics.Web.PagesLive](PhoenixKitWebAnalytics.Web.PagesLive.md): Pages report — every path that received traffic, with how long visitors
stayed on it and how often they left the site from it, plus the
response-time table that comes free with server-side tracking.
- [PhoenixKitWebAnalytics.Web.SessionLive](PhoenixKitWebAnalytics.Web.SessionLive.md): One visit, replayed — every page view, interaction, custom event and exit,
in order, with the time since the visit began. The summary on top says who
(a signed-in user's name, otherwise anonymous), where from, on what, and for
how long.

- [PhoenixKitWebAnalytics.Web.SessionsLive](PhoenixKitWebAnalytics.Web.SessionsLive.md): Sessions — every visit in the period, newest first: who (a signed-in user's
name, otherwise anonymous), where they landed and where they left, how many
pages, how many actions, how long, and where they came from. Each opens the
visit's full timeline.
- [PhoenixKitWebAnalytics.Web.SettingsLive](PhoenixKitWebAnalytics.Web.SettingsLive.md): Settings — what is collected, how long it's kept, which alerts go out, and
the installation checklist.
- [PhoenixKitWebAnalytics.Web.SourcesLive](PhoenixKitWebAnalytics.Web.SourcesLive.md): Acquisition — where traffic came from: channels, referring sites, and UTM
campaigns.
- [PhoenixKitWebAnalytics.Web.TechnologyLive](PhoenixKitWebAnalytics.Web.TechnologyLive.md): Technology — browsers, operating systems, device classes, languages, and
(when available) countries.
- [PhoenixKitWebAnalytics.Web.TrackController](PhoenixKitWebAnalytics.Web.TrackController.md): Two optional client-side entry points, for the cases the plug can't see.

