Product overview

How Aggregate Works

Add the tracking script to your site, collect privacy-minimized events, and analyze approved data from infrastructure you control.

Step 1

Register your website

Add a name and domain in the dashboard. Aggregate creates a website token and checks each browser request's Origin or Referer against the registered domain, allowing matching subdomains.

Step 2

Install the tracking script

Paste the generated snippet into your site. The script sends a view event when a page loads. Use emit(...) with fixed, non-identifying event names and an optional goal code from config/goals.yaml to measure important interactions and conversions.

Step 3

Measure at the right level

Events use anonymous mode with a sanitized path, coarse dimensions, and no visitor or session identifiers unless your consent integration enables enhanced analytics after consent is granted.

Step 4

Connect your BI tools

Events are stored in your database. On a server database, connect BI tools with a read-only account limited to approved views. For SQLite, export approved view results instead of sharing the database file. Completed periods with low volume remain suppressed.

View table and BI view structure

What happens when an event arrives?

Anonymous mode

  • Sanitizes the page path and keeps a safe event name.
  • Uses coarse referrer, device, and viewport categories.
  • Omits analytics identifiers, cookie values, and exact dimensions.
  • Includes custom properties only when explicitly configured for collection without enhanced consent.
  • Retains a goal only when its enabled definition permits anonymous use.
  • Drops a disallowed goal without dropping the event and returns a generic SDK warning.
  • Stores the event in a server-generated UTC hour bucket.

Enhanced analytics

  • Your consent manager calls setConsent(true) only after the visitor grants enhanced analytics consent.
  • May include visitor and session IDs, properties, and exact dimensions.
  • Goal codes remain restricted to enabled definitions in config/goals.yaml.
  • Uses a sliding 30-minute session cookie and records an exact server timestamp.
  • Your integration calls setConsent(false) on rejection or withdrawal.
After setConsent(false), Aggregate clears its browser identifiers and returns to anonymous mode. Privacy-minimized events, configured consent-free properties, and anonymous goals continue unless collection is disabled or the path is excluded. Consent withdrawal does not delete data already stored by the server.

Controls you manage

  • Registered domains and website tokens
  • A global collection switch and sensitive-path exclusions
  • Enabled goal codes and whether each may be retained anonymously
  • UTM and query parameter mappings, per-property consent, and custom reporting columns
  • Optional local, coarse geography
  • Low-volume disclosure thresholds for approved BI views
  • The JavaScript namespace and ingestion rate limit

All six standard UTM properties require consent by default. For anonymous attribution, we recommend no more detail than utm_medium, using channel codes such as email, social, or cpc. Each property can be allowed separately; more detailed UTMs may reveal campaign information, search text, or identifiers, so review their values before overriding this recommendation.

Privacy is an ongoing responsibility

Privacy-minimized data is not guaranteed to be legally anonymous. Operators remain responsible for legal basis, notices, consent behavior, retention, access controls, and rights requests.

Keep event and goal names fixed and non-identifying. The goal allowlist cannot detect sensitive meaning: a broad goal can still be sensitive when combined with a path or small audience. Do not send emails, account IDs, form contents, search terms, or other free text as enhanced properties.