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:
- Navigate to Events > Live Stream
- See events as they arrive
- 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}