Changelog
Generated from CHANGELOG.md in the project repository. Never maintained twice.
0.3.0
14 October 2026
- added
utmonTrackrEvent: the server handler passes the UTM object from the request body through to storage. - added
migrations/001_create_trackr_events.sqlwith thetrackr_eventstable and its indexes, shipped in the package. - changedThe Postgres adapter writes the
osandutm(JSONB) columns.
0.2.0
14 April 2026
- added
storage/ga4: server-side forwarding to the GA4 Measurement Protocol, no GA script in the browser. - added
storage/multi: fan-out of every event to several adapters. - added
storage/webhook: POST events to any URL, with HMAC-SHA256 signature (X-Trackr-Signature) and retry with exponential backoff on 5xx. - added
storage/batch: buffers events and flushes by size or time, usingsaveBatch()where the wrapped adapter has it. - added
server/pixel:createPixelHandler()answers with a transparent 1×1 GIF and records a pageview. - added
osonTrackrEvent, detected from the User-Agent on the server. - addedSPA tracking:
pushState,replaceState,popstateandhashchangerecord a pageview. - added
script.js: browser build as an IIFE exposingwindow.trackr. - addedPII key patterns for query parameters and
sanitizeProps()for event properties; email addresses in URL paths and string properties are redacted. - changedSession IDs are a SHA-256 hash of anonymized IP, User-Agent and date (16 hex characters).
- changedPrivacy protections (
anonymizeIp,stripPii) are on by default. - fixedUTM keys are stored without the
utm_prefix. - fixed
sendBeaconsendsContent-Type: application/json.
0.1.1
13 December 2025
- addedThe client extracts
utm_source,utm_medium,utm_campaign,utm_termandutm_contentand sends the full path including the query string.
0.1.0
13 December 2025
- addedClient
init()andtrack(), servercreateHandler()with bot filter and privacy options, Postgres and external-API storage adapters.