UNPKG

@shopana/ga

Version:

Type-safe Google Analytics 4 (GA4) tracking library for React and Next.js with ecommerce support, event batching, and SSR compatibility

66 lines 3.01 kB
import { type AnalyticsClient } from '../core/AnalyticsClient'; import { type CartEventParams, type PurchaseEventParams, type ViewCartEventParams, type CheckoutEventParams, type PaymentInfoEventParams, type ShippingInfoEventParams, type ViewItemEventParams, type ViewItemListEventParams, type SelectItemEventParams, type PromotionEventParams, type WishlistEventParams, type LeadEventParams, type CommerceItemInput } from '../types/events'; export declare class CommerceTracker { private readonly client; private readonly onDuplicateWarning; private readonly transactionRegistry; constructor(client: AnalyticsClient, onDuplicateWarning?: (message: string) => void); purchase(params: Omit<PurchaseEventParams, 'measurementId'> & { measurementId?: string; transactionId: string; items: CommerceItemInput[]; }): Promise<void>; addToCart(params: Omit<CartEventParams, 'measurementId'> & { measurementId?: string; items: CommerceItemInput[]; }): Promise<void>; removeFromCart(params: Omit<CartEventParams, 'measurementId'> & { measurementId?: string; items: CommerceItemInput[]; }): Promise<void>; viewCart(params: Omit<ViewCartEventParams, 'measurementId'> & { measurementId?: string; items: CommerceItemInput[]; }): Promise<void>; beginCheckout(params: Omit<CheckoutEventParams, 'measurementId'> & { measurementId?: string; items: CommerceItemInput[]; }): Promise<void>; addPaymentInfo(params: Omit<PaymentInfoEventParams, 'measurementId'> & { measurementId?: string; payment_type: string; items: CommerceItemInput[]; }): Promise<void>; addShippingInfo(params: Omit<ShippingInfoEventParams, 'measurementId'> & { measurementId?: string; shipping_tier: string; items: CommerceItemInput[]; }): Promise<void>; viewItem(params: Omit<ViewItemEventParams, 'measurementId'> & { measurementId?: string; items: CommerceItemInput[]; }): Promise<void>; viewItemList(params: Omit<ViewItemListEventParams, 'measurementId'> & { measurementId?: string; items: CommerceItemInput[]; }): Promise<void>; selectItem(params: Omit<SelectItemEventParams, 'measurementId'> & { measurementId?: string; items: CommerceItemInput[]; }): Promise<void>; viewPromotion(params: Omit<PromotionEventParams, 'measurementId'> & { measurementId?: string; }): Promise<void>; selectPromotion(params: Omit<PromotionEventParams, 'measurementId'> & { measurementId?: string; }): Promise<void>; addToWishlist(params: Omit<WishlistEventParams, 'measurementId'> & { measurementId?: string; items: CommerceItemInput[]; }): Promise<void>; generateLead(params: Omit<LeadEventParams, 'measurementId'> & { measurementId?: string; }): Promise<void>; destroy(): void; } //# sourceMappingURL=CommerceTracker.d.ts.map