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
111 lines (110 loc) • 3.32 kB
TypeScript
import { HybridTrackerConfig, ProductData, CheckoutData, PurchaseData, SearchData, RegistrationData } from './types';
/**
* Hybrid tracker that combines client-side (Meta Pixel) and server-side tracking
* Provides maximum tracking reliability and coverage
*/
export declare class HybridTracker {
private config;
private pixelTracker?;
constructor(config: HybridTrackerConfig);
/**
* Send event to server endpoint for server-side tracking
* @param eventData - Event data to send to server
* @returns Promise with success status
*/
private sendToServer;
/**
* Track event on both client and server
* @param clientTrackingFn - Function to execute client-side tracking
* @param serverEventData - Data to send to server for server-side tracking
*/
private trackHybrid;
/**
* Track page view
*/
trackPageView(): Promise<void>;
/**
* Track product view
* @param product - Product data
*/
trackProductView(product: ProductData): Promise<void>;
/**
* Track add to cart
* @param product - Product data
*/
trackAddToCart(product: ProductData): Promise<void>;
/**
* Track initiate checkout
* @param data - Checkout data
*/
trackInitiateCheckout(data: CheckoutData): Promise<void>;
/**
* Track purchase
* @param data - Purchase data
*/
trackPurchase(data: PurchaseData): Promise<void>;
/**
* Track search
* @param data - Search data
*/
trackSearch(data: SearchData): Promise<void>;
/**
* Track user registration
* @param data - Registration data
*/
trackRegistration(data?: RegistrationData): Promise<void>;
/**
* Track add to wishlist
* @param product - Product data
*/
trackAddToWishlist(product: ProductData): Promise<void>;
/**
* Track lead generation
* @param data - Lead data
*/
trackLead(data?: Record<string, unknown>): Promise<void>;
/**
* Track custom event
* @param eventName - Event name
* @param parameters - Event parameters
* @param eventId - Optional event ID
*/
trackCustomEvent(eventName: string, parameters?: Record<string, unknown>, eventId?: string): Promise<void>;
/**
* Get current configuration
*/
getConfig(): HybridTrackerConfig;
/**
* Update configuration
* @param newConfig - New configuration
*/
updateConfig(newConfig: Partial<HybridTrackerConfig>): void;
/**
* Enable/disable client-side tracking
* @param enabled - Whether to enable client-side tracking
*/
setClientTrackingEnabled(enabled: boolean): void;
/**
* Enable/disable server-side tracking
* @param enabled - Whether to enable server-side tracking
*/
setServerTrackingEnabled(enabled: boolean): void;
/**
* Check if client-side tracking is ready
*/
isClientTrackingReady(): boolean;
/**
* Check if server-side tracking is configured
*/
isServerTrackingConfigured(): boolean;
/**
* Get tracking status
*/
getTrackingStatus(): {
clientTracking: boolean;
serverTracking: boolean;
pixelReady: boolean;
serverConfigured: boolean;
};
}
export default HybridTracker;