# GoodAnalytics v0.1.1 - Table of Contents

> Visitor intelligence, link tracking, source attribution, and behavioral analytics for Phoenix

## Pages

- [GoodAnalytics](readme.md)

## Modules

- [GoodAnalytics](GoodAnalytics.md): Visitor intelligence, link tracking, source attribution, and behavioral analytics for Phoenix.
- [GoodAnalytics.Api.AnalyticsController](GoodAnalytics.Api.AnalyticsController.md): Read-analytics endpoints over the consolidated core read layer
(`GoodAnalytics.Core.Audience` and `GoodAnalytics.Core.Analytics`).
- [GoodAnalytics.Api.AuthPlug](GoodAnalytics.Api.AuthPlug.md): Authenticates API requests via a host-app-provided callback.
- [GoodAnalytics.Api.EventController](GoodAnalytics.Api.EventController.md): Workspace-scoped REST endpoints for recording server-side events.
- [GoodAnalytics.Api.LinkController](GoodAnalytics.Api.LinkController.md): Workspace-scoped REST endpoints for managing tracked links.
- [GoodAnalytics.Api.PartnerController](GoodAnalytics.Api.PartnerController.md): Workspace-scoped REST endpoints for referral partner management.
- [GoodAnalytics.Api.RequestLoggerPlug](GoodAnalytics.Api.RequestLoggerPlug.md): Plug that records API requests as `api_request` events.
- [GoodAnalytics.Api.Router](GoodAnalytics.Api.Router.md): REST API router for server-side event tracking, link management, and visitor queries.
- [GoodAnalytics.Api.Schemas.AnalyticsSummaryResponse](GoodAnalytics.Api.Schemas.AnalyticsSummaryResponse.md): Headline KPIs for a window: visitor/pageview/revenue counts, identification
rate, and session-grain rates. Backed by `GoodAnalytics.Core.Analytics.kpis/2`.

- [GoodAnalytics.Api.Schemas.AttributionResponse](GoodAnalytics.Api.Schemas.AttributionResponse.md): Attribution details for a visitor.
- [GoodAnalytics.Api.Schemas.BatchEventParams](GoodAnalytics.Api.Schemas.BatchEventParams.md): Request body for submitting multiple server-side events.
- [GoodAnalytics.Api.Schemas.BatchEventResponse](GoodAnalytics.Api.Schemas.BatchEventResponse.md): Per-event results from a batch event submission.
- [GoodAnalytics.Api.Schemas.BreakdownResponse](GoodAnalytics.Api.Schemas.BreakdownResponse.md): Audience breakdown response: the echoed dimension plus the metric rows.

- [GoodAnalytics.Api.Schemas.BreakdownRow](GoodAnalytics.Api.Schemas.BreakdownRow.md): One dimension bucket with its metric values.
- [GoodAnalytics.Api.Schemas.ClickResponse](GoodAnalytics.Api.Schemas.ClickResponse.md): Link click event resource returned by the API.
- [GoodAnalytics.Api.Schemas.ErrorResponse](GoodAnalytics.Api.Schemas.ErrorResponse.md): Standard API error response body.
- [GoodAnalytics.Api.Schemas.EventParams](GoodAnalytics.Api.Schemas.EventParams.md): Request body for recording a single server-side event.
- [GoodAnalytics.Api.Schemas.EventResponse](GoodAnalytics.Api.Schemas.EventResponse.md): Success response for a recorded event. Returns the persisted `event_id`.

- [GoodAnalytics.Api.Schemas.LinkParams](GoodAnalytics.Api.Schemas.LinkParams.md): Request body for creating a tracked link.
- [GoodAnalytics.Api.Schemas.LinkResponse](GoodAnalytics.Api.Schemas.LinkResponse.md): Full tracked-link resource returned by the API.
- [GoodAnalytics.Api.Schemas.LinkStatsResponse](GoodAnalytics.Api.Schemas.LinkStatsResponse.md): Aggregated performance metrics for a link.
- [GoodAnalytics.Api.Schemas.LinkUpdateParams](GoodAnalytics.Api.Schemas.LinkUpdateParams.md): Request body for partially updating a tracked link.
- [GoodAnalytics.Api.Schemas.PaginationParams](GoodAnalytics.Api.Schemas.PaginationParams.md): Shared pagination query parameters.
- [GoodAnalytics.Api.Schemas.PartnerParams](GoodAnalytics.Api.Schemas.PartnerParams.md): Request body for creating a referral partner.

- [GoodAnalytics.Api.Schemas.PartnerResponse](GoodAnalytics.Api.Schemas.PartnerResponse.md): Full referral partner resource returned by the API.

- [GoodAnalytics.Api.Schemas.PartnerUpdateParams](GoodAnalytics.Api.Schemas.PartnerUpdateParams.md): Request body for updating a referral partner. All fields optional.

- [GoodAnalytics.Api.Schemas.TimelineResponse](GoodAnalytics.Api.Schemas.TimelineResponse.md): Single event entry in a visitor timeline.
- [GoodAnalytics.Api.Schemas.TimeseriesPoint](GoodAnalytics.Api.Schemas.TimeseriesPoint.md): One zero-filled, timezone-aligned bucket.
- [GoodAnalytics.Api.Schemas.TimeseriesResponse](GoodAnalytics.Api.Schemas.TimeseriesResponse.md): Timeseries response: echoed metric + interval label + points.
- [GoodAnalytics.Api.Schemas.VisitorResponse](GoodAnalytics.Api.Schemas.VisitorResponse.md): Full visitor resource returned by the API.
- [GoodAnalytics.Api.VisitorController](GoodAnalytics.Api.VisitorController.md): Workspace-scoped REST endpoints for visitor lookup and inspection.
- [GoodAnalytics.ApiSpec](GoodAnalytics.ApiSpec.md): OpenAPI specification for GoodAnalytics.
- [GoodAnalytics.ApiSpec.Router](GoodAnalytics.ApiSpec.Router.md): Router that serves OpenAPI spec JSON and Swagger UI.
- [GoodAnalytics.Auth.ApiKey](GoodAnalytics.Auth.ApiKey.md): Two-tier API key authentication.
- [GoodAnalytics.Cache](GoodAnalytics.Cache.md): Nebulex cache for click deduplication and settings caching.
- [GoodAnalytics.Connectors.Adapters.Google](GoodAnalytics.Connectors.Adapters.Google.md): Google Ads offline conversions connector adapter.
- [GoodAnalytics.Connectors.Adapters.LinkedIn](GoodAnalytics.Connectors.Adapters.LinkedIn.md): LinkedIn Conversions API connector adapter.
- [GoodAnalytics.Connectors.Adapters.Meta](GoodAnalytics.Connectors.Adapters.Meta.md): Meta Conversions API (CAPI) connector adapter.
- [GoodAnalytics.Connectors.Adapters.TikTok](GoodAnalytics.Connectors.Adapters.TikTok.md): TikTok Events API connector adapter.
- [GoodAnalytics.Connectors.Config](GoodAnalytics.Connectors.Config.md): Compile-time and runtime configuration for the connector subsystem.
- [GoodAnalytics.Connectors.Connector](GoodAnalytics.Connectors.Connector.md): Behavior contract for outbound connectors.
- [GoodAnalytics.Connectors.Delivery](GoodAnalytics.Connectors.Delivery.md): Connector dispatch delivery engine.
- [GoodAnalytics.Connectors.Dispatch](GoodAnalytics.Connectors.Dispatch.md): Durable outbound connector dispatch record.
- [GoodAnalytics.Connectors.Dispatches](GoodAnalytics.Connectors.Dispatches.md): Context for connector dispatch record operations.
- [GoodAnalytics.Connectors.EventId](GoodAnalytics.Connectors.EventId.md): Derives stable connector event IDs deterministically.
- [GoodAnalytics.Connectors.EventMapping](GoodAnalytics.Connectors.EventMapping.md): Workspace-scoped mapping from a custom GoodAnalytics event to a connector event.
- [GoodAnalytics.Connectors.EventMappings](GoodAnalytics.Connectors.EventMappings.md): Context for workspace-scoped custom event connector mappings.

- [GoodAnalytics.Connectors.HTTP](GoodAnalytics.Connectors.HTTP.md): Behaviour-based HTTP adapter for connector delivery.
- [GoodAnalytics.Connectors.HTTP.ReqAdapter](GoodAnalytics.Connectors.HTTP.ReqAdapter.md): Req-based HTTP adapter for connector delivery.
- [GoodAnalytics.Connectors.Planner](GoodAnalytics.Connectors.Planner.md): Evaluates enabled connectors for an event and creates dispatch records.
- [GoodAnalytics.Connectors.PostCommit](GoodAnalytics.Connectors.PostCommit.md): Post-commit connector dispatch creation.
- [GoodAnalytics.Connectors.PostCommit.FlowRunner](GoodAnalytics.Connectors.PostCommit.FlowRunner.md): Default flow runner for post-commit connector dispatch.
- [GoodAnalytics.Connectors.Replay](GoodAnalytics.Connectors.Replay.md): Replays failed connector dispatches from stored source context.
- [GoodAnalytics.Connectors.Settings](GoodAnalytics.Connectors.Settings.md): Connector setting keys and configuration helpers.
- [GoodAnalytics.Connectors.Signals](GoodAnalytics.Connectors.Signals.md): Shared signal normalization layer for connector identifiers.
- [GoodAnalytics.Connectors.Telemetry](GoodAnalytics.Connectors.Telemetry.md): Telemetry event definitions for the connector subsystem.
- [GoodAnalytics.Core.Analytics](GoodAnalytics.Core.Analytics.md): Aggregate read surface over the library-managed `good_analytics`
event/visitor/session tables.
- [GoodAnalytics.Core.Audience](GoodAnalytics.Core.Audience.md): One shared, tested audience-breakdown query surface for every consumer.
- [GoodAnalytics.Core.Events](GoodAnalytics.Core.Events.md): Context for event queries.

- [GoodAnalytics.Core.Events.DeviceBackfill](GoodAnalytics.Core.Events.DeviceBackfill.md): Runtime API for backfilling event-grain device columns from stored user agents.
- [GoodAnalytics.Core.Events.Event](GoodAnalytics.Core.Events.Event.md): Unified event stream record.
- [GoodAnalytics.Core.Events.Recorder](GoodAnalytics.Core.Events.Recorder.md): Records events into the unified event stream.
- [GoodAnalytics.Core.Events.UrlNormalizer](GoodAnalytics.Core.Events.UrlNormalizer.md): URL normalization helpers for analytics grouping.
- [GoodAnalytics.Core.Funnels](GoodAnalytics.Core.Funnels.md): Context for funnel definition CRUD and analysis.

- [GoodAnalytics.Core.Funnels.CohortSourceFilter](GoodAnalytics.Core.Funnels.CohortSourceFilter.md): Embedded schema for funnel cohort source filtering.
- [GoodAnalytics.Core.Funnels.Filter](GoodAnalytics.Core.Funnels.Filter.md): Embedded schema for a funnel step filter.
- [GoodAnalytics.Core.Funnels.Funnel](GoodAnalytics.Core.Funnels.Funnel.md): Funnel definition entity.
- [GoodAnalytics.Core.Funnels.Query](GoodAnalytics.Core.Funnels.Query.md): Builds funnel analysis SQL queries.
- [GoodAnalytics.Core.Funnels.Step](GoodAnalytics.Core.Funnels.Step.md): Embedded schema for a funnel step.
- [GoodAnalytics.Core.IdentityResolver](GoodAnalytics.Core.IdentityResolver.md): Resolves incoming tracking signals to a single visitor record.
- [GoodAnalytics.Core.Links](GoodAnalytics.Core.Links.md): Context for link CRUD operations.

- [GoodAnalytics.Core.Links.Link](GoodAnalytics.Core.Links.Link.md): Short links, referral links, and campaign links.
- [GoodAnalytics.Core.Links.QR](GoodAnalytics.Core.Links.QR.md): Generates QR code images for short links.
- [GoodAnalytics.Core.Links.QRController](GoodAnalytics.Core.Links.QRController.md): Phoenix controller that serves QR code images for short links.
- [GoodAnalytics.Core.Links.Redirect](GoodAnalytics.Core.Links.Redirect.md): Handles short link redirects.
- [GoodAnalytics.Core.Links.Router](GoodAnalytics.Core.Links.Router.md): Phoenix router for short link domain redirects.
- [GoodAnalytics.Core.Links.Slug](GoodAnalytics.Core.Links.Slug.md): Slug generation for short links.
- [GoodAnalytics.Core.Partners](GoodAnalytics.Core.Partners.md): Context for partner CRUD operations.

- [GoodAnalytics.Core.Partners.Attribution](GoodAnalytics.Core.Partners.Attribution.md): Shared referral partner attribution logic.
- [GoodAnalytics.Core.Partners.Partner](GoodAnalytics.Core.Partners.Partner.md): Core-owned referral partner identity.
- [GoodAnalytics.Core.Sessions](GoodAnalytics.Core.Sessions.md): Server-side sessionization context.
- [GoodAnalytics.Core.Sessions.Acquisition](GoodAnalytics.Core.Sessions.Acquisition.md): Acquisition-change boundary rule for sessionization.
- [GoodAnalytics.Core.Sessions.Backfill](GoodAnalytics.Core.Sessions.Backfill.md): Runtime API for backfilling historical sessions.
- [GoodAnalytics.Core.Sessions.LiveCache](GoodAnalytics.Core.Sessions.LiveCache.md): Optional in-memory fast path for live-session lookup.
- [GoodAnalytics.Core.Sessions.Session](GoodAnalytics.Core.Sessions.Session.md): Aggregated visitor session record.

- [GoodAnalytics.Core.Sessions.SessionFields](GoodAnalytics.Core.Sessions.SessionFields.md): Pure per-event session field computation.

- [GoodAnalytics.Core.Tracking.BeaconController](GoodAnalytics.Core.Tracking.BeaconController.md): Handles beacon POSTs from the JS client and client-side click tracking.
- [GoodAnalytics.Core.Tracking.Deduplication](GoodAnalytics.Core.Tracking.Deduplication.md): IP-based click deduplication.
- [GoodAnalytics.Core.Tracking.JsController](GoodAnalytics.Core.Tracking.JsController.md): Serves GoodAnalytics JS snippet files from priv/static/js.

- [GoodAnalytics.Core.Tracking.Plug](GoodAnalytics.Core.Tracking.Plug.md): Phoenix Plug for server-side tracking.
- [GoodAnalytics.Core.Tracking.ReferralCookie](GoodAnalytics.Core.Tracking.ReferralCookie.md): Signs, verifies, and manages the `_ga_ref` referral attribution cookie.
- [GoodAnalytics.Core.Tracking.Router](GoodAnalytics.Core.Tracking.Router.md): Phoenix router for client-side tracking endpoints.
- [GoodAnalytics.Core.Tracking.ShareLinks](GoodAnalytics.Core.Tracking.ShareLinks.md): Generates social share URLs for all major platforms.
- [GoodAnalytics.Core.Tracking.SourceClassifier](GoodAnalytics.Core.Tracking.SourceClassifier.md): Classifies the source of an inbound request.
- [GoodAnalytics.Core.Visitors](GoodAnalytics.Core.Visitors.md): Context for visitor CRUD and lifecycle operations.

- [GoodAnalytics.Core.Visitors.Visitor](GoodAnalytics.Core.Visitors.Visitor.md): The central identity graph record.
- [GoodAnalytics.Devices](GoodAnalytics.Devices.md): User-agent intelligence for GoodAnalytics, wrapping `:ua_inspector`.
- [GoodAnalytics.Domains.Domain](GoodAnalytics.Domains.Domain.md): Custom short link domains.
- [GoodAnalytics.Flows.ConnectorDelivery](GoodAnalytics.Flows.ConnectorDelivery.md): pgflow Flow for immediate connector dispatch delivery.
- [GoodAnalytics.Flows.ConnectorPlanning](GoodAnalytics.Flows.ConnectorPlanning.md): pgflow Flow that plans connector dispatches after the source event commits.
- [GoodAnalytics.Flows.ConnectorReconciliation](GoodAnalytics.Flows.ConnectorReconciliation.md): pgflow Flow that reconciles missing connector dispatches.
- [GoodAnalytics.Flows.CreatePartitions](GoodAnalytics.Flows.CreatePartitions.md): pgflow Flow that creates monthly partitions for `ga_events`.
- [GoodAnalytics.Geo](GoodAnalytics.Geo.md): Facade for IP → geo lookup.
- [GoodAnalytics.Geo.Loader](GoodAnalytics.Geo.Loader.md): Starts and supervises the configured locus loader.
- [GoodAnalytics.Geo.Locus](GoodAnalytics.Geo.Locus.md): Locus-backed provider for `GoodAnalytics.Geo`.
- [GoodAnalytics.Geo.Normalizer](GoodAnalytics.Geo.Normalizer.md): Behaviour for translating provider-specific lookup results into the canonical
geo map stored in `ga_visitors.geo`.
- [GoodAnalytics.Geo.Normalizer.MaxMind](GoodAnalytics.Geo.Normalizer.MaxMind.md): Normalizes MaxMind GeoLite2-City / GeoIP2-City result maps into the canonical
`GoodAnalytics.Geo.Normalizer.normalized` shape.
- [GoodAnalytics.Geo.Provider](GoodAnalytics.Geo.Provider.md): Behaviour for GeoIP providers.
- [GoodAnalytics.Hooks](GoodAnalytics.Hooks.md): Event hooks for downstream consumers.
- [GoodAnalytics.Maps](GoodAnalytics.Maps.md): Small map helpers used across the library.

- [GoodAnalytics.Migration](GoodAnalytics.Migration.md): Manages database migrations for GoodAnalytics tables.
- [GoodAnalytics.Migrations.V01](GoodAnalytics.Migrations.V01.md): Initial GoodAnalytics schema — creates all core tables.
- [GoodAnalytics.Migrations.V02](GoodAnalytics.Migrations.V02.md): Connector dispatch persistence and signal columns.
- [GoodAnalytics.Migrations.V03](GoodAnalytics.Migrations.V03.md): Rename `customer_*` columns on `ga_visitors` to `person_*`.
- [GoodAnalytics.Migrations.V04](GoodAnalytics.Migrations.V04.md): Add composite indexes for workspace-scoped link/event and visitor first-click lookups.

- [GoodAnalytics.Migrations.V05](GoodAnalytics.Migrations.V05.md): Add ga_funnels table for workspace-scoped funnel definitions.

- [GoodAnalytics.Migrations.V06](GoodAnalytics.Migrations.V06.md): Add api_request to the chk_event_type constraint.

- [GoodAnalytics.Migrations.V07](GoodAnalytics.Migrations.V07.md): Add host and path columns with indexes to ga_events.

- [GoodAnalytics.Migrations.V08](GoodAnalytics.Migrations.V08.md): Add Core referral partner schema and partner attribution columns.

- [GoodAnalytics.Migrations.V09](GoodAnalytics.Migrations.V09.md): Add event-grain device columns and breakdown indexes to ga_events.

- [GoodAnalytics.Migrations.V10](GoodAnalytics.Migrations.V10.md): Add the ga_sessions table and ga_events.session_id.
- [GoodAnalytics.Migrations.V11](GoodAnalytics.Migrations.V11.md): Add per-dimension composite indexes to ga_sessions for session-grain audience
breakdowns (device_type, browser, os, source_platform, source_medium,
source_campaign), mirroring the ga_events dimension indexes from v04/v09.

- [GoodAnalytics.Migrations.V12](GoodAnalytics.Migrations.V12.md): Add a workspace-leading partial index on ga_events for per-session path
aggregation.
- [GoodAnalytics.Migrations.V13](GoodAnalytics.Migrations.V13.md): Add workspace-scoped custom event connector mappings.
- [GoodAnalytics.PartitionManager](GoodAnalytics.PartitionManager.md): Manages monthly partition creation for `ga_events`.
- [GoodAnalytics.Repo](GoodAnalytics.Repo.md): Provides access to the host application's Ecto repo.
- [GoodAnalytics.SQL](GoodAnalytics.SQL.md): Generic SQL helpers shared across the library (and host apps that build their
own queries against the GoodAnalytics tables).

- [GoodAnalytics.Settings](GoodAnalytics.Settings.md): Per-workspace runtime settings with Nebulex caching.
- [GoodAnalytics.Settings.Setting](GoodAnalytics.Settings.Setting.md): Per-workspace runtime settings.
- [GoodAnalytics.TimeWindow](GoodAnalytics.TimeWindow.md): Time window helpers built around half-open ranges.

## Mix Tasks

- [mix good_analytics.backfill_event_devices](Mix.Tasks.GoodAnalytics.BackfillEventDevices.md): Local convenience wrapper for the temporary event device backfill.
- [mix good_analytics.backfill_sessions](Mix.Tasks.GoodAnalytics.BackfillSessions.md): Local convenience wrapper for the temporary session backfill.
- [mix good_analytics.gen.migration](Mix.Tasks.GoodAnalytics.Gen.Migration.md): Generates an Ecto migration to apply pending GoodAnalytics schema changes.
- [mix good_analytics.setup](Mix.Tasks.GoodAnalytics.Setup.md): Generates an Ecto migration that sets up GoodAnalytics tables.

