Docs
Privacy controls
Trace is built to never collect secrets rather than to protect them afterwards. On top of that, you add your own rules.
Built in
| Data | What's kept |
|---|---|
| Input values, editable content, page titles | Never collected |
| Element text | Only from buttons, links and labels, never containers, and nothing inside data-trace-mask or a form with password or payment fields. Every digit is masked: Pay €1,234.56 → Pay €#,###.## |
| Emails, tokens, card numbers, IBANs, phone numbers | Replaced with [email], [token], [card], [iban], [number] |
| URLs | Query strings are never sent. Segments that look like emails, ids or tokens become :email, :id, :token |
| Referrer | Origin only, and only from another site |
| Event properties | Keys such as password, card, email, phone, address are dropped; other values are scrubbed |
| Visitors' addresses | Never stored. Hashed with the website, the browser and a daily salt; old salts are deleted |
All of this runs twice: in the browser, then again on the server, so old or hand-written clients are held to the same rules.
Your own rules
- Mask an element: add
data-trace-maskin your HTML, or amask_selectorrule such as.account-summary. - Ignore pages: an
ignore_pathrule such as/admin*records nothing there. - Redact a pattern: a
redact_patternrule replaces a regular expression everywhere. - Drop a property: a
drop_proprule never stores that custom-event property.
Add them through your agent, for example /trace:manage mask .account-summary. Settings › Privacy in the dashboard lists them.
Your own machine
Once your website is live, visits from localhost and private addresses are left out, so testing doesn't skew your numbers.