UNPKG

@tinytapanalytics/sdk

Version:

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

113 lines 3.31 kB
/** * TinyTapAnalytics JavaScript SDK * Lightweight tracking SDK for conversion optimization insights * * @version 1.0.0 * @author TinyTapAnalytics Team */ import { TinyTapAnalyticsConfig, UserContext, EventData, TrackingOptions, ConversionData, PrivacySettings } from './types/index'; declare global { interface Window { TinyTapAnalytics: TinyTapAnalyticsSDK | unknown[]; __tinytapanalytics_config?: TinyTapAnalyticsConfig; } } /** * Main TinyTapAnalytics SDK class */ declare class TinyTapAnalyticsSDK { private config; private eventQueue; private networkManager; private privacyManager; private environmentDetector; private errorHandler; private microInteractionTracking?; private heatmap?; private performanceMonitoring?; private isInitialized; private sessionId; private userId?; private eventListeners; constructor(config: TinyTapAnalyticsConfig); /** * Initialize the SDK */ init(): Promise<void>; /** * Set user identification */ identify(userId: string, context?: Partial<UserContext>): void; /** * Track a custom event */ track(eventType: string, data?: EventData, options?: TrackingOptions): Promise<void>; /** * Track a conversion event */ trackConversion(data: ConversionData): Promise<void>; /** * Track a page view */ trackPageView(url?: string): Promise<void>; /** * Track element interaction */ trackClick(element: Element | string, metadata?: Record<string, any>): Promise<void>; /** * Flush all pending events immediately */ flush(): Promise<void>; /** * Update privacy consent */ updatePrivacyConsent(consents: Record<string, boolean>): void; /** * Get current privacy status */ getPrivacyStatus(): PrivacySettings; /** * Get session ID */ getSessionId(): string; /** * Get micro-interaction tracking statistics */ getMicroInteractionStats(): any; /** * Update micro-interaction tracking profile * @param profile - The profile to use: 'minimal', 'balanced', 'detailed', or 'performance' */ setMicroInteractionProfile(profile: 'minimal' | 'balanced' | 'detailed' | 'performance'): void; /** * Get current micro-interaction tracking profile */ getMicroInteractionProfile(): string | null; private startMicroInteractionTracking; private startHeatmapTracking; private startPerformanceMonitoring; private waitForDOM; private startAutoTracking; private shouldAutoTrack; private setupSPATracking; private buildEventPayload; private getElementSelector; private getElementData; private getScrollDepth; private getDeviceType; private getDataTypeForEvent; private queueEvent; private processQueuedEvents; private generateSessionId; /** * Set up Shopify-specific cart tracking */ private setupShopifyCartTracking; /** * Clean up and destroy the SDK */ destroy(): void; } export default TinyTapAnalyticsSDK; export type { TinyTapAnalyticsConfig, UserContext, EventData, TrackingOptions, ConversionData, PrivacySettings } from './types/index'; //# sourceMappingURL=index.d.ts.map