# Click maps without session recording

> Count clicks per element with privacy-friendly click maps built from CSS selectors. No mouse movement, coordinates, form input or session replay is collected.

The snippet from **Site settings → Tracking** loads the
[`clicks` module](/docs/tracker/modules#clicks-click-maps). If you wrote the
tag yourself, check that `data-modules` includes `clicks`:

```html
<script defer src="https://privatusanalytics.com/js/pa.js" data-site="pa_YOURSITEID" data-modules="engage,auto,vitals,clicks"></script>
```

For each click, the module sends a short CSS selector of the clicked link,
button or control, for example `nav.main > ul > li > a.pricing`. A
selector has at most four levels and stops at the first element with an
`id`. Clicks less than 300 ms apart are sent once.

What it never collects: mouse movement, scrolling paths, coordinates,
element text, form input or screenshots. There's no session replay.

## The report

Open a page's [page detail](/docs/dashboard/page-detail) view. **Most
clicked elements** lists the 20 most clicked selectors on that page for
the selected date range and filters, with the number of clicks on each.
There is no site-wide click report and no visual overlay on the page.

Click hits are also in the raw [export](/docs/reports/exports) (Pro and
above) when you ask for the `selector` field.

## Stable selectors

Ids and classes with three or more digits in a row (the generated kind)
are left out of selectors, and so are classes that contain a colon. Give
important elements a plain `id` or class so their selector stays the same
between deploys.

A click counts for the nearest link, button, form control, `label`,
`summary` or `role="button"` element. Add `data-privatus-click` to any
other element to make it a click target too:

```html
<div class="plan-picker" data-privatus-click>…</div>
```

The attribute's value is not sent. The selector is still built from the
tag, `id` and classes.

Click-map hits don't count toward usage.
