Skip to main content

Overview

The Events tab lets you define tracking events to capture specific visitor actions on your website. Track button clicks, form submissions, scroll milestones, element visibility, or fire custom events from your own code. Any event can be marked as a conversion goal to measure campaign effectiveness.
Events tab

Events List

The events table shows all defined events with key metrics:

Filters

Filter the events list by:

Creating an Event

Click Create Event to define a new tracking event. Each event requires:

Event Types

Each event type tracks a different kind of visitor interaction. The tracker script handles all automatic types — no coding required.

Click

Fires when a visitor clicks on an element matching the CSS selector. What is captured:
  • Element text content (first 100 characters)
  • Element tag name (button, a, div, etc.)
  • CSS selector that matched
  • Current page URL
Use browser DevTools to find the right CSS selector. Right-click the element → Inspect → right-click the HTML tag → CopyCopy selector.
Examples of CSS selectors:

Scroll (Visibility)

Fires when the visitor scrolls past a specific element on the page. Uses an IntersectionObserver to detect when the element enters the viewport. Use cases:
  • Track how many visitors see your pricing section
  • Measure engagement with specific content blocks
  • Detect if visitors reach the bottom of a long page
Each scroll event fires only once per session per element — even if the visitor scrolls past it multiple times. This prevents inflated counts.

Form Submit

Fires when a visitor submits a form matching the CSS selector. What is captured:
  • Values from <input>, <select>, and <textarea> fields
  • Field names and their values (up to 500 characters per field)
  • Password and hidden fields are automatically excluded
By default, all visible form fields are captured. Use the Form Fields allowlist to limit data collection to specific fields and avoid capturing sensitive information.

Element Visibility

Fires when a specific element becomes visible in the browser viewport. Similar to Scroll, but focused on tracking whether a particular UI element was seen. Use cases:
  • Track impressions of promotional banners
  • Measure visibility of important CTAs
  • Detect if dynamically loaded content is seen (works with SPAs)
The tracker uses a MutationObserver to watch for dynamically added elements. If the target element is rendered by JavaScript after page load (React, Vue, etc.), it will still be detected.

Custom (Manual)

Fires when you call the JavaScript API from your own code. This is the most flexible event type — you control exactly when and with what data the event fires. Custom events are covered in detail in the Custom Events API section below.

Conversion Goal

Any event can be marked as a Conversion Goal by enabling the toggle. When enabled:
  • The event is counted in the Conversions KPI card on the Dashboard
  • It’s used to calculate Conversion Rate in the Campaign Performance table
  • Sessions containing this event are highlighted in the session detail view
  • The event appears in conversion funnels and reports

What Makes a Good Conversion Goal?

Mark form submissions as conversions — contact forms, quote requests, newsletter signups. These are clear indicators that a visitor became a lead.
Mark add to cart or purchase completed custom events as conversions. Track the full funnel from page view to purchase.
Mark scroll past pricing or video play events as micro-conversions. These indicate strong interest even without a form submission.
Mark phone number click or chat widget opened events as conversions. These show intent to engage directly.
You can have multiple conversion goals active at the same time. The Dashboard Conversions KPI counts unique sessions with at least one conversion event — so a session that triggers 3 conversion events still counts as 1 conversion.

Custom Events API

Custom events give you full control over event tracking from your own JavaScript code. Use them when automatic tracking (clicks, forms, visibility) isn’t enough — for dynamic interactions, multi-step processes, or business-specific actions.

Basic Usage

API Reference

Automatically captured (you don’t need to pass these):
  • Current page URL
  • Session ID
  • Timestamp
  • Company ID

E-Commerce Examples

Track the full shopping funnel:

Add to Cart Integration

A complete example of integrating custom events with an “Add to Cart” button:

Lead Form Example

Track form submissions with field data:

SPA / React Example

For single-page applications, fire events on route changes or component interactions:

How Events Are Sent

Events are buffered and batched for performance:
  1. Each RevolTracker.track() call adds the event to an internal buffer
  2. Every 5 seconds, all buffered events are sent to the server in a single request
  3. On page unload, any remaining events are sent via sendBeacon() for reliability
  4. Maximum 50 events per batch — excess events are dropped
You don’t need to create an event definition in the dashboard for custom events to be recorded. Undefined custom events are still stored with their data — but they won’t have a fire count in the Events list. For full tracking, create a matching event definition with the same name.

Analyze Your Website with Claude Code

If you’re not sure which elements to track, you can use Claude Code to analyze your website and suggest an optimal event tracking setup.