Skip to main content

Overview

The HeatmapTracker component captures detailed interaction data including clicks, hovers, and scrolls within a specific element. This data can be used to generate heatmaps showing user behavior patterns.

Props

ReactNode
required
The content to render and track interactions for.
boolean
default:true
Whether to track click interactions within the element.
boolean
default:false
Whether to track when users hover over the element.
boolean
default:false
Whether to track scroll events and element visibility.
string
default:"heatmap-element"
Identifier for the tracked element used in analytics events.

Usage

Track Clicks Only

Track All Interactions

Track Hover Behavior

Tracked Events

Click Events (heatmap_click)

Tracked when trackClicks is enabled:
  • element - Element identifier
  • x - X coordinate relative to element
  • y - Y coordinate relative to element
  • page_x - X coordinate relative to viewport
  • page_y - Y coordinate relative to viewport
  • element_width - Width of the tracked element
  • element_height - Height of the tracked element

Hover Events

Tracked when trackHovers is enabled:
  • heatmap_hover_start - When mouse enters the element
  • heatmap_hover_end - When mouse leaves the element

Scroll Events (heatmap_scroll)

Tracked when trackScrolls is enabled:
  • element - Element identifier
  • scroll_top - Current scroll position
  • element_top - Element’s position from top of page
  • element_visible - Whether element is currently visible

Behavior

  • Wraps children in a <div> element with event listeners
  • All event listeners use passive mode for better performance
  • Automatically cleans up all listeners on unmount
  • Click coordinates are calculated relative to element bounds
  • Scroll tracking uses window scroll events

Use Cases

  • Generate click heatmaps for landing pages
  • Analyze user attention with hover tracking
  • Understand scroll behavior and content visibility
  • Optimize page layouts based on interaction patterns
  • Identify dead zones with low engagement
  • A/B test different UI arrangements