# What mrkr records automatically

> Everything the script collects with no code from you, and the one thing it deliberately does not: what a visitor clicks.

Section: Tracking. Canonical page: https://mrkr.app/docs/tracking/autocapture. Last updated: 2026-10-03.

mrkr does not autocapture in-page behaviour. There are no element selectors, no button labels, and no link text in your analytics database. What the script collects automatically describes the visit: the pages seen, where the visitor went when they left, and how far they got down each page.

> **Autocapture was removed in September 2026:** Earlier versions captured link clicks, button clicks, form submissions, and select/checkbox changes as `click_link`, `click_button`, `submit_form`, `select_change` and `toggle_change`, along with element selectors and visible text. All five event names are gone from the tracker and are rejected at the collect endpoint, so installs still running a cached copy of the old script cannot write click data either. Rows already recorded are kept and still display; nothing new is added to them. The `data-autocapture` attribute no longer does anything and can be removed from your snippet.

## Why it was removed

Capturing link text and hrefs is harmless on a marketing site and quietly dangerous on a logged-in one. "Download Jane Doe's contract" is a link label; `/invoices/8842` is an href. Both are your customers' personal data, and both would have accumulated in an analytics database that has no business holding them. A privacy-first product does not get to collect that and then argue about intent, so the collector is gone rather than configurable.

## What the script still collects on its own

| Event | When it fires | What it carries |
| --- | --- | --- |
| `pageview` | On load, and on every SPA route change | Path, page title, referrer, UTM parameters, screen size, language, timezone |
| `outbound` | A click that navigates to another domain | Destination host and href. No element text or selector |
| `download` | A click on a link to a known file type | File extension, filename, href |
| `page_leave` | When a page is backgrounded, left, or closed | Wall-clock duration, visible time, and engaged time for that page, as cumulative totals |
| `web_vital` | As each measurement settles | LCP, CLS, INP, FCP, TTFB and their values |

Outbound and download are click-driven, and they are the only two that are. They record where a visitor went, not what they interacted with: a destination URL, never an element, a selector, or any text from your page. If you want no click-derived data at all, they are the two to think about.

> **The destination URL is stored whole:** The `href` on an `outbound` or `download` event is the resolved absolute URL, truncated at 512 characters, query string included. If your site links out with a token, an email address, or a customer id in the query string, that value is stored. There is no setting that turns these two events off; if a route's links carry secrets, keep the whole route out with [excluded paths](https://mrkr.app/docs/configure/excluding-traffic).

## What is never captured

The value of any free-text input is never sent, under any setting: text, password, email, tel, number, search, url, date, and textarea fields are never read. Neither is the text of anything a visitor clicks, the DOM structure of your pages, nor any element identifier. Session replay is a separate, off-by-default feature with its own masking rules and its own documentation.

## Tracking a specific interaction on purpose

Nothing stops you instrumenting the interactions that matter to you: that is a decision you make about your own site, rather than a default imposed on every customer. Add a [`data-mrkr-event`](https://mrkr.app/docs/tracking/custom-events) attribute to an element, or call `mrkr.track()` yourself, and exactly the event you name is recorded with exactly the properties you supply.

```html
<button data-mrkr-event="signup_started" data-mrkr-prop-plan="pro">
  Start now
</button>
```
