Skip to main content
When you enable auto-tracking options in scanova('init', ...), the SDK captures user actions automatically with no additional code. This page shows exactly what each auto-tracking feature sends.

Page view

Enabled by: autoPageview: true Fires once per page load, as soon as the SDK initialises. Event type: pageview Metadata captured: (none — page context is in the top-level fields) Full payload example:
Important: autoPageview fires on SDK initialisation. If you also call scanova('track', 'page_view', ...) manually, you will send two events per page load. Use one or the other. Deduplication: The SDK guards against firing pageview twice for the same URL within a single SDK lifecycle. If a user navigates away and back to the same URL in a traditional multi-page site, the second load re-initialises the SDK and fires normally. In a SPA where the URL changes client-side, the guard means returning to a previously visited route does not re-fire the pageview — you must handle this manually. See the SPA guide.

Click

Enabled by: autoClicks: true Fires when a user clicks on a link (<a>), button (<button>), or any element with role="button". Event type: click Metadata captured: Payload example:
Custom element labels: Add data-scnv-name to any element to control the captured label in reports:

Form submission

Enabled by: autoForms: true Fires when a user submits any <form> on the page. Field values are never captured — only the form’s identity. Event type: form_submit Metadata captured: Payload example:
Custom form name:

Scroll depth

Enabled by: autoScroll: true Fires when the user scrolls past specific milestones on the page. Each milestone fires once per page load — repeated scrolling up and down does not re-fire the same milestone. Event type: scroll Milestones: 25%, 50%, 75%, 90% Metadata captured: Payload examples:
Scroll events use a 100ms debounce to avoid firing on minor scroll jitter. SPA caveat: Scroll milestones are tracked in memory and are not reset on route changes in a SPA. If a user scrolls to 75% on /home and navigates to /pricing, the SDK will not fire 25%, 50%, or 75% scroll events on /pricing — only events for milestones beyond what was already reached. To reset scroll tracking on route change, reload the SDK or implement a manual scroll event approach for SPAs.

Combining auto-tracking with custom events

Auto-tracked events and custom events coexist without conflict. A typical setup tracks page views and scroll depth automatically, and adds custom events for specific high-value actions: