@mntm/stats
Version:
A package for integrating analytics tools
51 lines (50 loc) • 2.45 kB
TypeScript
type FBParams = {
content_category: string;
content_ids: Array<string | number>;
content_name: string;
content_type: string;
contents: Array<{
id: string | number;
quantity: number;
[key: string]: string | number;
}>;
currency: string;
num_items: number;
predicted_ltv: number;
search_string: string;
status: boolean;
value: number;
};
type FBPartialParams = Partial<FBParams>;
type FBTypesTrack = {
AddPaymentInfo: Pick<FBPartialParams, 'content_category' | 'content_ids' | 'contents' | 'currency' | 'value'>;
AddToCart: Pick<FBPartialParams, 'content_ids' | 'content_name' | 'content_type' | 'contents' | 'currency' | 'value'>;
AddToWishlist: Pick<FBPartialParams, 'content_name' | 'content_category' | 'content_ids' | 'contents' | 'currency' | 'value'>;
CompleteRegistration: Pick<FBPartialParams, 'content_name' | 'currency' | 'status' | 'value'>;
Contact: Record<never, never>;
CustomizeProduct: Record<never, never>;
Donate: Record<never, never>;
FindLocation: Record<never, never>;
InitiateCheckout: Pick<FBPartialParams, 'content_category' | 'content_ids' | 'contents' | 'currency' | 'num_items' | 'value'>;
Lead: Pick<FBPartialParams, 'content_category' | 'content_name' | 'currency' | 'value'>;
PageView: Record<never, never>;
Purchase: Pick<FBPartialParams, 'content_ids' | 'content_name' | 'content_type' | 'contents' | 'num_items'> & Pick<FBParams, 'currency' | 'value'>;
Schedule: Record<never, never>;
Search: Pick<FBPartialParams, 'content_category' | 'content_ids' | 'contents' | 'currency' | 'search_string' | 'value'>;
StartTrial: Pick<FBPartialParams, 'currency' | 'predicted_ltv' | 'value'>;
SubmitApplication: Record<never, never>;
Subscribe: Pick<FBPartialParams, 'currency' | 'predicted_ltv' | 'value'>;
ViewContent: Pick<FBPartialParams, 'content_ids' | 'content_category' | 'content_name' | 'content_type' | 'contents' | 'currency' | 'value'>;
};
type FBTypesCustom = Record<string, Record<string, unknown>>;
type FBPixel = {
track: <T extends keyof FBTypesTrack>(event: T, params?: FBTypesTrack[T] | undefined) => Promise<boolean>;
custom: <T extends keyof FBTypesCustom>(event: T, params?: FBTypesCustom[T] | undefined) => Promise<boolean>;
};
/**
* Implement FB Pixel
*
* @param code XXXXXXX
*/
export declare const createPixelFB: (code: string) => FBPixel;
export {};