Skip to main content

Events & Tracking

Understanding how Rise captures and processes user events.

Automatic Event Tracking

Rise automatically tracks user interactions without requiring manual event mapping. The SDK observes:

Interaction Events

  • Clicks - Button clicks, link clicks, element interactions
  • Navigation - Page views, route changes, tab switches
  • Form Interactions - Focus, input, submission, validation
  • Scrolling - Scroll depth, content visibility
  • Hovers - Element hover patterns, dwell time

Behavioral Signals

  • Friction Detection - Dead clicks, rage clicks, loop patterns
  • Hesitation - Mouse movement patterns, hover duration
  • Confusion - Backtracking, repeated actions
  • Search - Search queries, results interaction

UI Context Capture

Rise captures what users see when they interact:

  • Visible Features - Which UI elements are on screen
  • Element States - Disabled buttons, empty states, loading states
  • Data Context - Data presence/absence on screen
  • Modal/Dialog State - Overlays, popups, notifications

Event Structure

Every Rise event includes:

interface RiseEvent {
eventType: string; // Type of event (click, view, etc.)
timestamp: number; // When it occurred
userId?: string; // Identified user (if identified)
sessionId: string; // Session identifier
element?: ElementData; // Element that triggered the event
context: UIContext; // UI state at event time
metadata: EventMetadata; // Additional properties
}

UI Context

interface UIContext {
visibleFeatures: string[]; // Features visible on screen
elementStates: ElementState[]; // States of UI elements
dataPresence: DataContext; // Data on screen
currentPath: string; // URL or route
viewport: ViewportData; // Screen size, scroll position
}

Privacy & Security

What Rise Captures

✅ Element types and labels (button, input, etc.) ✅ Interaction patterns (clicks, navigation) ✅ UI structure and visibility ✅ Behavioral signals (friction, confusion)

What Rise Does NOT Capture

❌ Keystroke content ❌ Form input values ❌ Personal information (PII) ❌ Sensitive data ❌ Screenshots or visual content

Data Anonymization

Rise processes behavioral metadata only:

  • Element clicked → Type: "button", Label: "Export"
  • Not captured → What was exported, file contents, user data

Event Sampling

Development Mode

In development mode (isDevelopment: true), all events are captured.

Production Mode

Rise uses intelligent sampling:

  • Critical events: 100% capture
  • Common interactions: Sampled based on frequency
  • Redundant events: Reduced sampling

Manual Event Tracking

While Rise auto-tracks most events, you can manually track custom business events:

Rise.track('subscription_upgraded', {
fromPlan: 'basic',
toPlan: 'pro',
revenue: 99
});

When to Use Manual Tracking

Use manual tracking for:

  • Business-specific events (purchases, upgrades)
  • Backend events (API calls, processing completion)
  • Custom milestones

Don't use manual tracking for:

  • UI interactions (already captured)
  • Page views (already captured)
  • Form submissions (already captured)

Event Filtering

Configure which events to capture:

Rise.init({
appKey: 'your-app-key',
eventConfig: {
captureClicks: true, // Default: true
capturePageViews: true, // Default: true
captureForms: true, // Default: true
captureScrolling: false // Default: true
}
});

Debugging Events

Development Console

In development mode, view events in the console:

Rise.init({
appKey: 'your-app-key',
isDevelopment: true
});

Events will log to console: [Rise] Event: click on Button[Export]

Rise Dashboard

View the live event stream in your Rise dashboard:

  1. Navigate to Events > Live Stream
  2. See events as they arrive
  3. Filter by user, event type, or timeframe

Event Retention

  • Raw Events: Retained for 90 days
  • Aggregated Data: Retained indefinitely
  • Intent Models: Continuously updated

GDPR & Compliance

User Opt-Out

Support user tracking opt-out:

// User opts out
Rise.setPrivacyMode('opt-out');

// User opts back in
Rise.setPrivacyMode('opt-in');

Data Deletion

Request user data deletion:

// Request deletion for a user
Rise.deleteUserData(userId);

Or via API:

DELETE https://api.getrise.ai/v1/users/{userId}

Next Steps