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
TypeScript
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>;
}