Skip to main content
The SDK is configured with a single scanova('init', siteId, options) call. This page documents every available option.

Syntax

Options reference

Option details

autoPageview

Fires a pageview event each time the SDK initialises on a page. This happens automatically on full page loads. For single-page apps, see the SPA guide for how to fire page view events on route changes.
Each pageview event includes page_url, referrer, scan_session_id, and device/visitor context. See Auto-Tracked Events for the full payload.

autoClicks

Listens for clicks on:
  • <a> tags
  • <button> tags
  • Elements with role="button"
The captured click event includes element_type, element_text, and optionally destination_url for links. Tip: Add data-scnv-name="My Button" to any element to override the captured label:

autoForms

Listens for the submit event on <form> elements. Captures form_name and form_action. The form’s field values are never captured — only the form identifier. Tip: Add data-scnv-name="Contact Form" to a form to give it a readable name in reports.

autoScroll

Fires scroll depth events when the user scrolls past 25%, 50%, 75%, and 90% of the page height. Each milestone fires only once per page load and includes scroll_depth in the metadata.

debug

Enables console logging. Use during development to confirm the SDK is initialising, capturing events, and sending them correctly.
Disable debug in production — the option is false by default.

Minimal config (page views only)

Manual-only config (no auto-tracking)

Use this if you want full control over what gets tracked — every event will be sent explicitly via scanova('track', ...).

Important: one init per page load

Call scanova('init', ...) once per page lifecycle. Calling it multiple times will register duplicate auto-tracking listeners and result in doubled events. For single-page apps, call init once when the app boots — not on every route change. Use the SPA guide for route-change tracking.

Disabling tracking for specific users

The SDK has no built-in disable() method. To prevent tracking for specific users (logged-in staff, opted-out users, bots), conditionally skip loading the snippet entirely:
The same pattern applies for GDPR consent — only load the SDK after the user grants tracking consent. See Privacy and GDPR for details.