@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
TypeScript
/**
* 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