Skip to content

What is recorded

Once the script is on the page, it records most things by itself. You only add code for commerce events in manual mode, for custom events, and to link sessions to customers.

These are recorded in every mode, with no code from you:

Event What it records
Page views Every page load and every client-side navigation, with time on page and scroll depth.
Clicks The element clicked (selector, tag, role, link and up to 50 characters of its text).
Rage clicks 3 or more clicks in 700 ms on one spot.
Dead clicks A click on something clickable that changes nothing for 1.5 seconds.
JavaScript errors Uncaught errors, unhandled promise rejections and console.error, with message and stack.
Network errors Failed fetch/XHR requests and responses with status 400 or higher, on any host.
Network requests Successful requests to your shop’s own host and its subdomains only. See URLs, requests and cookies.
Failed resources Scripts, stylesheets, images and web fonts that did not load.
Form errors Fields the browser or your code marked invalid: the field’s name and type, never its value.
Broken text On cart and checkout pages: counts of broken characters (�, Å‚, Ä……), never the text.
Web vitals LCP, INP, CLS, FCP and TTFB, from Google’s web-vitals.
Products Products seen on the page, from JSON-LD Product data (OpenGraph as a fallback).
Deploys Your front-end version: the Next.js build ID, or a hash of the page’s asset URLs.
Session replay A recording of the session, if replays are on and the visitor allowed them. See Masking and replays.

Automated browsers are recognised as bots: browsers driven by tools such as Playwright, Puppeteer, Selenium or Cypress, headless browsers, browsers that contradict themselves (for example, one that claims to be desktop Chrome but lacks Chrome’s own features), and well-known crawlers. By default their events are not stored, so they never reach a figure; our team can instead keep them marked as bots for a website, which still leaves them out of every figure. They are never recorded.

The funnel (product → cart → checkout → payment method → payment → order) is built from commerce events. They come either from automatic detection or from your own calls, never both. See Commerce: auto or manual.

  • Custom events with qm("track", name, props). See Custom events and customers.
  • Page types with qm("page", { type }), when the URL does not say what a page is. See Page types.
  • Customers with qm("identify", customerId). Only a hash of the id is sent.