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

86 lines (85 loc) • 2.87 kB
import { ConversionAPIConfig, ServerEventData, EventResponse, UserData, CustomData, EventName } from './types'; /** * Meta Conversion API server-side tracker * Self-contained implementation inspired by facebook-nodejs-business-sdk patterns * Handles server-side tracking using Facebook's Conversion API without external dependencies */ export declare class MetaConversionTracker { private config; private retryAttempts; private retryDelay; private baseUrl; constructor(config: ConversionAPIConfig); /** * Make HTTP request to Facebook Conversion API */ private makeRequest; /** * Generate HMAC-SHA256 signature for app secret proof */ private generateSignature; /** * Send a single event to Facebook Conversion API */ sendEvent(eventData: ServerEventData): Promise<EventResponse>; /** * Send multiple events in a batch */ sendBatchEvents(events: ServerEventData[]): Promise<EventResponse>; /** * Create server event object */ private createServerEvent; /** * Create and populate user data object */ private createUserData; /** * Create custom data object */ private createCustomData; /** * Transform API response to our format */ private transformResponse; /** * Validate server event data */ private validateServerEventData; /** * Test connection to Facebook Conversion API */ testConnection(): Promise<{ success: boolean; details?: unknown; error?: string; }>; /** * Validate pixel access */ validatePixelAccess(): Promise<{ valid: boolean; permissions?: string[]; error?: string; }>; /** * Get recommended events for business type */ getRecommendedEvents(businessType: 'ecommerce' | 'saas' | 'lead_generation' | 'content' | 'app'): EventName[]; /** * Quick tracking methods */ trackPageView(userData?: UserData, customData?: CustomData): Promise<EventResponse>; trackPurchase(value: number, currency?: string, userData?: UserData, additionalData?: Partial<CustomData>): Promise<EventResponse>; trackLead(userData?: UserData, customData?: CustomData): Promise<EventResponse>; trackAddToCart(contentIds: string[], value?: number, currency?: string, userData?: UserData, additionalData?: Partial<CustomData>): Promise<EventResponse>; trackViewContent(contentId: string, contentType?: string, value?: number, currency?: string, userData?: UserData, additionalData?: Partial<CustomData>): Promise<EventResponse>; /** * Update configuration */ updateConfig(newConfig: Partial<ConversionAPIConfig>): void; /** * Get current configuration (without sensitive data) */ getConfig(): Record<string, unknown>; }