Developer pages

Automatic tracking

Built-in event names, autocapture properties, frustration signals, and toggles — from the shipped SDK.

Enable / disable

HumanBehaviorTracker.init(apiKey, {
  enableAutomaticTracking: true, // default
  automaticTrackingOptions: {
    trackForms: true,
    includeText: true,
    includeClasses: false,
  },
});

Set enableAutomaticTracking: false to skip autocapture, form submit tracking, rage-click, and dead-click installation. Navigation $pageview emission and replay recording are separate lifecycle features.

Built-in event names

EventWhen it firesNotes
$pageviewFull page load and SPA navigations (pushState / replaceState / popstate / hash with dedupe)Source of truth for page analytics
$clickClick on (or inside) an interactive elementAutocapture — one event per click
$form_submittedNative submit on a <form>Field names only (not values)
$rageclick≥3 clicks within 30px / 1s burstDebounced once per burst
$deadclickClick with no meaningful DOM/scroll/selection response within timeoutsFeeds behavior Issues
$web_vitalsEach Core Web Vital metric (when vitals enabled)See Web vitals
$focusFocus / blur markers in the replay streamBlur delayed 2s to ignore quick alt-tab

Autocapture ($click)

Interactive selector used by the SDK:

button, a, input, select, textarea, label,
[role="button"], [role="link"], [role="tab"], [role="menuitem"]

The handler walks to the nearest matching ancestor so a click on a child <span> attributes to the parent button/link.

Properties commonly attached

PropertyMeaning
tagLowercase tag name
id / elementIdElement id (both names for compatibility)
roleARIA role if present
typeInput/button type when applicable
hrefAnchor href when applicable
text / elementTextTruncated visible text (includeText, default on; text up to 200 / 100 chars)
class / elementClassClass string when includeClasses: true
pathShort DOM path (≤8 ancestors)
pagelocation.pathname
x / yClick client coordinates
timestampEpoch ms

trackLinks in options is forced off as a separate channel; <a> clicks still produce $click through autocapture.

Form tracking ($form_submitted)

PropertyMeaning
formIdform.id if set
formActionform.action
formMethodMethod (default get)
fieldsArray of FormData keys (values are not sent)
formClassPresent only when includeClasses: true
pagePathname
timestampEpoch ms

Frustration signals

SignalDetection summary
Rage click3+ clicks in a 30px radius within 1000ms; further detections suppressed until a pause
Dead clickNo scroll (100ms), selection change (2.5s), or DOM mutation (100ms) response; absolute timeout 2.75s

These events also feed the product’s behavioral Issues pipeline (origin = behavioral).

Where automatic data appears

SignalProduct surface
$pageviewDashboard → Pages; Funnel page steps
$click / forms / frustrationReplay activity; Issues Behavior
SessionsDashboard KPIs; Replays list

When automatic is not enough

Use custom events for business meaning the DOM cannot express (signed_up, checkout_completed, feature gates, etc.).