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

123 lines 5.36 kB
import { type AnalyticsClient } from '../core/AnalyticsClient'; import { type AuthEventParams, type CartEventParams, type EngagementEventParams, type PageEventParams, type PurchaseEventParams, type ViewCartEventParams, type CheckoutEventParams, type PaymentInfoEventParams, type ShippingInfoEventParams, type ViewItemEventParams, type ViewItemListEventParams, type SelectItemEventParams, type PromotionEventParams, type WishlistEventParams, type LeadEventParams, type SearchEventParams, type ShareEventParams, type VideoEventParams, type ExceptionEventParams, type TimingEventParams, type CommerceItemInput } from '../types/events'; import { type TrackOptions } from '../types/common'; export declare class GATracker { private readonly client; private readonly pageTracker; private readonly commerceTracker; private readonly contentTracker; private readonly videoTracker; private readonly errorTracker; private readonly logger; constructor(client: AnalyticsClient, logger?: Pick<Console, 'warn'>); pageView(params: Omit<PageEventParams, 'measurementId'> & { measurementId?: string; }): Promise<void>; purchase(params: Omit<PurchaseEventParams, 'measurementId'> & { measurementId?: string; transactionId: string; items: CommerceItemInput[]; }): Promise<void>; trackPurchase(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>; engagement(params: Omit<EngagementEventParams, 'measurementId'> & { measurementId?: string; }): Promise<void>; trackAuth(name: 'login' | 'sign_up', params: Omit<AuthEventParams, 'measurementId'> & { measurementId?: string; method: string; }): Promise<void>; trackEvent(name: string, params: Record<string, unknown>, options?: TrackOptions): 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>; search(params: Omit<SearchEventParams, 'measurementId'> & { measurementId?: string; search_term: string; }): Promise<void>; share(params: Omit<ShareEventParams, 'measurementId'> & { measurementId?: string; content_type: string; content_id: string; method: string; }): Promise<void>; videoStart(params: Omit<VideoEventParams, 'measurementId'> & { measurementId?: string; video_title: string; video_url: string; }): Promise<void>; videoProgress(params: Omit<VideoEventParams, 'measurementId'> & { measurementId?: string; video_title: string; video_url: string; }): Promise<void>; videoComplete(params: Omit<VideoEventParams, 'measurementId'> & { measurementId?: string; video_title: string; video_url: string; }): Promise<void>; exception(params: Omit<ExceptionEventParams, 'measurementId'> & { measurementId?: string; description: string; }): Promise<void>; timingComplete(params: Omit<TimingEventParams, 'measurementId'> & { measurementId?: string; name: string; value: number; event_category: string; }): Promise<void>; getAnalyticsClient(): AnalyticsClient; destroy(): void; } //# sourceMappingURL=GATracker.d.ts.map