Heatmaps
Visualize touch patterns across your app screens
Heatmaps
Touch heatmaps show where users tap, swipe, and interact across every screen in your app — aggregated across thousands of sessions.
Enable Touch Capture
import { EnsoraProvider } from '@ensora/react-native';
<EnsoraProvider
apiKey="your_api_key"
projectId="your_project_id"
touchCapture={true}
>
<Stack />
</EnsoraProvider>How Heatmaps Work
When touchCapture is enabled, Ensora records touch coordinates relative to each screen. Coordinates are normalized to screen dimensions so heatmaps are consistent across different device sizes.
Touch data is streamed as touch events to the ingest API and aggregated in ClickHouse using materialized views.
Viewing Heatmaps
From the dashboard Heatmaps tab:
- Select a screen by pathname (e.g.
/home,/product/123) - Filter by date range to compare before/after a release
- Toggle between tap density and swipe direction views
Heatmap Types
Tap Heatmap
Shows where users tap most frequently. High-density areas appear as hot spots.
Swipe Heatmap
Shows the direction and frequency of swipe gestures. Useful for scroll depth and carousel usage.
Rage Tap Detection
Areas where users tap repeatedly in quick succession — a signal of broken or unresponsive UI elements.
Privacy
Touch coordinates are captured as numbers only — no screenshot pixels or UI content are recorded. You can disable touch capture at any time by setting touchCapture={false}.
Performance
Touch capture adds minimal overhead:
- Events are buffered and sent in batches
- Coordinates are captured on the JS thread with no native bridging
- Memory usage is bounded by a configurable buffer size
When to Use Heatmaps
- Navigation design — confirm users find CTAs where you expect
- Onboarding review — spot confusion points in first-run flows
- A/B test validation — compare interaction patterns between variants
- Rage tap investigation — find unresponsive elements before users churn
Next Steps
- Session Replay — watch individual sessions alongside heatmap data
- Navigation Tracking — understand screen-level metrics
- API Reference — touch event schema
Last updated on