UNPKG

multi-platform-tracking-sdk

Version:

🚀 Professional Multi-Platform Tracking SDK for Facebook/Meta Pixel, Instagram Analytics & Google Tag Manager | Zero Dependencies | TypeScript Ready | Privacy Compliant GDPR/CCPA | Created by A. Z. M. Arif | Code Encover

115 lines (114 loc) • 2.76 kB
import { ProductData, CheckoutData, PurchaseData, SearchData, RegistrationData } from './types'; export interface GTMConfig { /** Google Tag Manager Container ID */ gtmId: string; /** Enable debug mode for development */ debug?: boolean; /** Automatically track page views */ autoTrackPageViews?: boolean; /** Custom data layer name (default: 'dataLayer') */ dataLayerName?: string; /** Currency to use for ecommerce events */ defaultCurrency?: string; } declare global { interface Window { dataLayer: Record<string, unknown>[]; [key: string]: unknown; } } /** * Google Tag Manager tracker for comprehensive analytics * Supports GA4, Facebook Pixel, and other tracking through GTM */ export declare class GTMTracker { private config; private isInitialized; private dataLayerName; constructor(config: GTMConfig); /** * Initialize Google Tag Manager */ init(): void; /** * Initialize data layer */ private initDataLayer; /** * Enable debug mode for development */ private enableDebugMode; /** * Load Google Tag Manager script */ private loadGTMScript; /** * Add noscript fallback for users with JavaScript disabled */ private addNoScriptFallback; /** * Push event to data layer */ private pushEvent; /** * Track page view */ trackPageView(url?: string, title?: string): void; /** * Track product view */ trackProductView(product: ProductData): void; /** * Track add to cart */ trackAddToCart(product: ProductData): void; /** * Track initiate checkout */ trackInitiateCheckout(data: CheckoutData): void; /** * Track purchase */ trackPurchase(data: PurchaseData): void; /** * Track search */ trackSearch(data: SearchData): void; /** * Track user registration */ trackRegistration(data?: RegistrationData): void; /** * Track custom event */ trackCustomEvent(eventName: string, parameters?: Record<string, unknown>): void; /** * Set user data */ setUserData(userData: { userId?: string; userType?: string; email?: string; isLoggedIn: boolean; }): void; /** * Track add to wishlist */ trackAddToWishlist(product: ProductData): void; /** * Debug data layer contents */ debugDataLayer(): void; /** * Check if GTM is initialized */ isReady(): boolean; /** * Get current configuration */ getConfig(): GTMConfig; /** * Update configuration */ updateConfig(newConfig: Partial<GTMConfig>): void; }