Skip to content

Introduction

eodia analytics measures website audiences, like Google Analytics: page views, visits, sources and campaigns, events, orders, clicks, zones viewed. It does so with or without a cookie, as the administrator chooses, site by site, and within the consent exemption of the CNIL (the French data protection authority) as long as the site stays within it: no banner to display in order to measure.

One decision governs everything else: eodia analytics collects, it does not display. It administers the sites, receives the data and stores it in documented views; the analyses are built in its sister project, eodia insights, connected read-only.

  1. Administer: the sites, their domains, their tracking mode, and the metadata — the declared events, their properties, the zones, the goals, the classifications, the annotations.
  2. Collect: a script of a few kilobytes to paste into the pages (/a.js), a public collection endpoint (POST /collect), server-side collection (POST /collect/server), and batch writes to PostgreSQL.
  3. Expose: an analytics schema that contains only views, readable by a read-only role, eodia_analytics. eodia insights connects to it like any other database.

The administration screen shows only check figures: “1,234 events received in the last 24 h”, “last event 12 s ago”, “37 rejected: origin not allowed”. Everything else is read in insights, where each site opens its dashboards through the Statistics button, locked to that site alone.

  • With or without a cookie, site by site. Without a cookie, a visitor is a daily hash whose salt is destroyed the next day. With the measurement cookie (13 months at most, never extended), returning visitors are counted too. A third mode waits for consent. See tracking modes.
  • The IP address is never recorded, neither in the database nor in a log: it is used to compute a hash and infer a country, then it is forgotten.
  • Metadata that travels. The labels and descriptions of the views, columns and declared events are written as SQL comments: they reach the Structure screen of insights and the context of its AI assistant, without a single extra line of code.
  • A dependency-free script: page views (single-page applications included), sources and campaigns, events, clicks, scroll depth, zone visibility time; and, without a line of code, outbound links, downloads, site search, forms and videos.
  • E-commerce following a convention aligned with GA4, from view_item to purchase, and server-side collection for confirmed orders or applications.
  • Clean marketing data: normalized UTM parameters, GA4-style channels (editable rules, which also apply to the past), multi-visit attribution with six models, classifications imported from CSV, annotations.
  • Data subject rights: export and erasure of a person’s data, in one click or through the API.
site pages ── GET /a.js, POST /collect ───────┐
site servers ── POST /collect/server ─────────┤
▼
administrators ───► web :3600 ──► api :4600 (Hono) ──► PostgreSQL
(Next.js) + worker ├─ public configuration
├─ collect raw data
└─ analytics views only
│ role eodia_analytics
▼ (read-only)
eodia insights
  • The API serves the administration (/api/v1), the script (/a.js) and the collection endpoint, which filters, enriches and writes in batches.
  • The worker creates the monthly partitions, applies the retention period, destroys the previous day’s salt, regenerates the event views and processes export or erasure requests.
  • The web app is the administration screen: sites, installation, metadata, verification.
  • Website publishers who want to measure without a consent banner, or with an exempt measurement cookie, and keep their data in-house.
  • Marketing teams who want well-organized campaigns, channels and attribution they can compare from one model to another.
  • Teams already using eodia insights, who find their audience alongside their sales and support, in the same tool.

eodia analytics is free software, distributed under the AGPL-3.0-or-later license. Its code is on GitHub; the docs/PLAN.md document records the decisions.

eodia analytics is free software by Eodia.