Docs menu · Events

Docs › Use the dashboard

Events, links and downloads

Count clicks and actions with a data attribute or one line of JavaScript, and see outbound links, downloads, time on page and scroll depth.

Custom events

Count actions such as a sign-up or a click on a button, with extra properties.

Without code, put data-event on any element:

<button data-event="signup" data-event-plan="pro">Start free</button>

Every data-event-* attribute becomes a property (plan: "pro").

Or from your own code:

window.nvivio?.track('signup', { plan: 'pro' });

Limits:

  • Event names: letters, digits, spaces, dot, colon, hyphen or underscore, up to 64 characters.
  • Up to 20 properties per event; names up to 40 characters, text up to 200 characters.

Calling nvivio.track() before the script has loaded? Add the queue for early calls.

Events appear in Reports › Events, in the route of each visit, on Live and as goals: turn an event into a goal with one click.

A click on a link to another site, or on a file, is counted together with the text of the link (up to 80 characters). File types: pdf, zip, doc, docx, xls, xlsx, ppt, pptx, csv, dmg, exe, mp3 and mp4.

They appear as the events outbound and download in Reports › Events, in the route of a visit and on Live. A visit that ends this way says so: “left via ‘Book now’ to booking.com”.

This is on by default. Turn it off in Settings › What the script measures; your visitors get the new script within ten minutes, without changing your code.

Time on page and scroll depth

For each page, the script measures how long it was in view and how far the visitor scrolled, in steps of 25%. The measurement is sent when the visitor leaves the page or hides the tab. You see it in Reports › All pages (the columns time on page and scroll) and at every step of a visit.

Single-page apps

Navigation without a reload (through history.pushState, back and forward) counts as a pageview by itself, in React, Vue, Svelte and other single-page apps. A jump to #section on the same page does not count as a new page. Sites that switch pages with #/page can count those routes as pages; see Script reference.