Skip to main content

Overview

When auto-events is enabled, Cryptique automatically captures user interactions without requiring any additional code. This provides comprehensive behavioral data out of the box.

Automatic Events

Declared but not yet firing: element_hover, media_ended, session_start, session_end are in the config map but have no active tracking calls in the current SDK version.

Event Details

page_view

Fires on every page load (DOM ready). In SPAs, also fires on History API navigation (pushState, replaceState) and hash changes.

element_click

Fires on any click. Captures rich coordinates and element context.

rage_click

Fires when 3 or more clicks occur on the same element within 1 second — a strong signal of user frustration.

dead_click

Fires when a user clicks an element that is not interactive and no navigation occurs within 1 second. Useful for finding broken or confusing UI elements.

page_scroll

Fires whenever the user reaches a new maximum scroll depth on the page. Tracks the highest point scrolled — does not re-fire for upward scrolling.
Fires with a 250ms debounce. Only fires when a new maximum depth is reached, so each percentage is recorded at most once per page load.

text_selection

Fires when the user selects ≥3 characters of text, as long as the selection differs from the previous one. Useful for understanding what content users find important.

element_view

Fires when a tracked element becomes at least 50% visible in the viewport for at least 1 second. Requires the element to have an id attribute or data-cq-track attribute.
To track an element, it must have an id attribute or a data-cq-track attribute. Elements without these are not observed.

form_submit

Fires when an HTML form is submitted.
Form field values are never captured to protect sensitive data. Use custom events to track specific non-sensitive fields.

form_validation_error

Fires on the HTML5 invalid event when a field fails browser-native validation (e.g., required field empty, email format invalid).

form_abandoned

Fires via sendBeacon on beforeunload when the user leaves a page with a form they interacted with but did not submit.
form_focus, form_blur, and form_change events are intentionally suppressed — form_abandoned captures the meaningful signal without per-keystroke noise.

media_play

Fires when a <video> or <audio> element starts playing. Throttled to once per 2 seconds per element.

media_pause

Fires when a <video> or <audio> element is paused. Throttled to once per 2 seconds per element.
Same properties as media_play. media_current_time reflects the playhead position at the moment of pause.

js_error

Fires on uncaught JavaScript errors and unhandled promise rejections. Runtime error (window error event):
Unhandled promise rejection:

network_error

Fires when an XHR request returns HTTP status ≥400 or fails entirely. Only SDK-internal requests to sdkapi.cryptique.io are monitored — application XHR is not tracked. HTTP error (status ≥400):
Network failure (no response):

page_performance

Fires approximately 1500ms after window load, once per page load, with Core Web Vitals and key timing metrics.

Standard Element Data Object

Most interaction events include an element_data sub-object describing the element that was interacted with: For video element clicks, additional fields: For image element clicks, additional fields:

Event Envelope

Every auto-event automatically includes these context fields. No additional code is required. See Default Properties for the complete list with descriptions.

Configuration

HTML Attribute

Enable auto-events and optionally suppress specific events directly on the script tag:
Pass a comma-separated list of event names to auto-events-disabled-events.

JS Runtime API

You can also configure auto-events at runtime after the SDK has loaded:

Exclude Paths

Prevent tracking on specific pages:
Path matching rules:
  • /admin matches /admin, /admin/users, /admin/settings (prefix match)
  • Case-sensitive
  • Multiple paths separated by commas

Disable All Auto-Events

For complete manual control:

Storage


Best Practices

For most Web3 apps, disable the noisiest low-signal events:

When to Disable Specific Events

Supplement with Custom Events

Auto-events capture generic interactions. Add custom events for business-specific actions:

Next Steps

Track Custom Events

Add business-specific events

Default Properties

See all auto-captured properties