UNPKG

tracking-crm-core

Version:

Framework simplificado y robusto de tracking CRM - Sistema modular para tracking de visitantes, sesiones, eventos y captura de leads optimizado para navegadores

114 lines (113 loc) 3.5 kB
/** * TRACKING CRM FRAMEWORK v2.1 - SIMPLIFICADO * Framework robusto de tracking para navegadores * * @version 2.1.0 * @description Framework modular para tracking de visitantes, sesiones y leads * @author Innova Marketing */ export interface TrackingConfig { businessId: string; environment?: 'development' | 'production' | 'staging'; endpoints?: { visitorTracking?: string; leadCapture?: string; eventTracking?: string; }; debug?: { enabled?: boolean; verbose?: boolean; logToConsole?: boolean; }; timing?: { heartbeatInterval?: number; inactivityTimeout?: number; scrollThrottle?: number; eventBufferSize?: number; }; } export interface SessionData { sessionId: string; visitorId: string; businessId: string; startTime: string; lastActivity: string; pageViews: number; events: EventData[]; deviceInfo: DeviceInfo; ipLocation?: IPLocationInfo; utmParams?: UTMParams; } export interface EventData { eventType: string; eventName: string; eventData: Record<string, any>; timestamp: string; pageUrl: string; } export interface DeviceInfo { type: string; os: string; browser: string; screenResolution: string; viewportSize: string; userAgent: string; language: string; timezone: string; } export interface IPLocationInfo { ip?: string; country?: string; region?: string; city?: string; timezone?: string; } export interface UTMParams { source?: string; medium?: string; campaign?: string; term?: string; content?: string; } export interface LeadData { email: string; nombre?: string; telefono?: string; tipoNegocio?: string; mensaje?: string; source?: string; campaign?: string; } export declare const initTracker: (businessId: string, config?: Partial<TrackingConfig>) => Promise<void>; export declare const trackEvent: (eventType: string, eventName: string, eventData?: Record<string, any>) => void; export declare const captureLead: (leadData: LeadData) => Promise<boolean>; export declare const getTrackingStatus: () => { isInitialized: boolean; businessId: string | undefined; sessionId: string | undefined; visitorId: string | undefined; eventsCount: number; lastActivity: string | undefined; }; export declare const cleanupTracker: () => void; export declare const trackPageView: (url?: string) => void; export declare const trackClick: (element: string, data?: Record<string, any>) => void; export declare const trackConversion: (type: string, value?: number, data?: Record<string, any>) => void; declare const _default: { initTracker: (businessId: string, config?: Partial<TrackingConfig>) => Promise<void>; trackEvent: (eventType: string, eventName: string, eventData?: Record<string, any>) => void; captureLead: (leadData: LeadData) => Promise<boolean>; getTrackingStatus: () => { isInitialized: boolean; businessId: string | undefined; sessionId: string | undefined; visitorId: string | undefined; eventsCount: number; lastActivity: string | undefined; }; trackPageView: (url?: string) => void; trackClick: (element: string, data?: Record<string, any>) => void; trackConversion: (type: string, value?: number, data?: Record<string, any>) => void; cleanupTracker: () => void; }; export default _default;