> ## Documentation Index
> Fetch the complete documentation index at: https://docs.molesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# RUM heatmaps

> See where people click on a page and how far down they go, drawn over a recording of the page.

A heatmap shows what people do on one page of a browser application. **Analytics → Heatmap** has two maps:

* **Clicks**: where people click, hottest where clicks gather, with the clicked elements in a list beside it.
* **Scroll**: how far down people go. The further down, the darker the page; dashed lines mark where 75, 50, and 25 percent of the visits got to.

A map is of one page, in one kind of window (desktop from 1024 pixels wide, tablet from 600, phone below that), because a page is laid out differently in each. Everything you choose is in the address, so a map can be sent to someone as it stands.

## What it needs

Maps come from the browser SDK.

| Map | Needs |
| - | - |
| Clicks | `trackUserInteractions: true` |
| Scroll | Nothing: `trackScroll` is on by default |
| The page under the map | [Session replay](https://docs.molesignal.com/en-US/rum/session-replay.md) on at least some sessions of the page |

A click on something that is not a control counts as well: it says where people expect one.

## The page under the map

The page is a [recording](https://docs.molesignal.com/en-US/rum/session-replay.md) of a session that opened it, held at the moment the page had loaded, with the whole length of the page laid out. **Recording** chooses among the last 20 sessions that recorded this page in this kind of window, and **Open this session** leads to the one drawn.

What is masked in a replay is masked here too, and seeing the page takes `rum.replay.read`. Without a recording, or without that permission, the numbers still stand: the elements in their list, the depths in their table.

## How clicks are placed

A click says which element it landed on and where in that element, so it falls on the same element whatever the size of the window. An element is found in the recording by where it stands in the page (`action.target.path`, tags and places only, nothing a person wrote). An element this recording does not have, because the page changed, is placed by where on the page its clicks landed, and the list says **Not on this recording of the page**.

Rows from an SDK before this field are grouped by their selector and drawn at the middle of the element when the selector finds one.

## How the numbers are counted

Maps count the rows that are stored. Where an application [keeps a share of its sessions](https://docs.molesignal.com/en-US/rum/sampling.md) a map says where people click, not how many clicks there would be. [Sessions tests drive](https://docs.molesignal.com/en-US/rum/test-traffic.md) are left out.

A depth is measured from the top of the page to the bottom of the window. A view that stopped somewhere saw everything above it, so the share of views at a depth never grows as you go down.

## Mole Agent

The tool `get_rum_heatmap` says the same in numbers for one page: the elements with the most clicks, how long the page is, and the share of views at each depth.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.