fivebar

Engagement

Copy page
View Markdown
Open with
Connect MCP
Cursor VS Code

For every pageview, the script measures how long the page was on screen and how far down it was read.

Together they separate the pages that hold readers from those skimmed or left early, and the graph plots both, so the pages worth a look stand out. Only time on screen counts, so a tab left in the background isn’t taken for reading. The tag you already have measures it.

Time on page

How long the page was on screen. The clock runs only while the page can be seen, so time in another tab, in a minimised window or with the screen locked doesn’t count. A pageview’s time is sent when the visitor leaves or switches away, and counts up to 30 minutes. Coming back to the tab later adds nothing.

Scroll depth

How far down the page the visitor got, as a percentage of its height: how much of it had been on screen, from the top to the lowest point reached. Some pages have no depth, and count for time alone:

A reading that got to 90% or further is read to the end, since the last tenth of a page is usually its footer. One that got a fifth of a window past the first window scrolled. A visitor who arrived part way down the page, from a link to a heading, counts as having scrolled.

On the dashboard

The Engagement section has three tabs:

A reading is one pageview’s time and depth. Under a filter, the section shows the readings of the pageviews that match: filtered by a page, that page’s own. It’s left out when nothing has been read, and when the dashboard is filtered by an entry or exit page, or by a goal.

Single-page apps

Each page a single-page app moves to gets a reading of its own, with its own clock and depth, sent when the app moves on.

Bounce rate and visit duration

Time on page is what visit duration adds up, and a visit of one page kept on screen for 10 seconds or more isn’t a bounce.