UNPKG

@tinytapanalytics/sdk

Version:

Behavioral psychology platform that detects visitor frustration, predicts abandonment, and helps you save at-risk conversions in real-time

126 lines 2.69 kB
/** * Heatmap features for visual user behavior analysis * Dynamically imported to reduce core bundle size */ import { TinyTapAnalyticsConfig } from '../types/index'; interface HeatmapPoint { x: number; y: number; intensity: number; timestamp: number; type: 'click' | 'move' | 'scroll'; } interface HeatmapData { url: string; viewport: { width: number; height: number; }; points: HeatmapPoint[]; sessionId: string; userId?: string; } export declare class Heatmap { private config; private sdk; private clickPoints; private movePoints; private scrollPoints; private isActive; private samplingRate; private maxPoints; private debounceTimer?; constructor(config: TinyTapAnalyticsConfig, sdk: any); /** * Start heatmap tracking */ start(): void; /** * Stop heatmap tracking */ stop(): void; /** * Setup click tracking */ private setupClickTracking; /** * Setup mouse movement tracking */ private setupMoveTracking; /** * Setup scroll tracking */ private setupScrollTracking; /** * Setup page unload tracking */ private setupPageUnloadTracking; /** * Add click point with clustering */ private addClickPoint; /** * Add move point with sampling */ private addMovePoint; /** * Add scroll point */ private addScrollPoint; /** * Find nearby point for clustering */ private findNearbyPoint; /** * Trim points array to prevent memory issues */ private trimPointsArray; /** * Debounced send to reduce API calls */ private debouncedSend; /** * Send heatmap data to API */ private sendHeatmapData; /** * Generate heatmap visualization */ generateHeatmapVisualization(containerId: string): void; /** * Draw heatmap points on canvas */ private drawHeatmapPoints; /** * Get scroll depth percentage */ private getScrollDepth; /** * Check if should track heatmap for this user */ private shouldTrackHeatmap; /** * Get current heatmap statistics */ getStats(): { isActive: boolean; clickPoints: number; movePoints: number; scrollPoints: number; totalPoints: number; }; /** * Clear all heatmap data */ clearData(): void; /** * Set sampling rate */ setSamplingRate(rate: number): void; /** * Export heatmap data */ exportData(): HeatmapData; } export {}; //# sourceMappingURL=Heatmap.d.ts.map