getu-attribution-v2-sdk 0.3.1 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -253,6 +253,7 @@ enum EventType {
253
253
  // Pre-conversion signals
254
254
  PAGE_VIEW = "page_view",
255
255
  PAGE_CLICK = "page_click",
256
+ BUTTON_CLICK = "button_click",
256
257
  VIDEO_PLAY = "video_play",
257
258
 
258
259
  // Registration funnel
@@ -317,6 +318,28 @@ await trackPageClick("user_123", {
317
318
  });
318
319
  ```
319
320
 
321
+ ### Track Button Click
322
+
323
+ ```javascript
324
+ // Basic - button name only
325
+ await trackButtonClick("Sign Up");
326
+
327
+ // With user ID
328
+ await trackButtonClick("Buy Now", "user_123");
329
+
330
+ // With extra data
331
+ await trackButtonClick("Download Report", "user_123", {
332
+ section: "hero",
333
+ page: "/pricing",
334
+ variant: "primary",
335
+ });
336
+
337
+ // Without button name (anonymous click)
338
+ await trackButtonClick();
339
+ ```
340
+
341
+ The event will be sent with `event_data.button_name` set to the provided name.
342
+
320
343
  ### Track Purchase
321
344
 
322
345
  **Method 1: Traditional format (user_id required)**
@@ -0,0 +1,129 @@
1
+ import { SDKConfig, EventType, AttributionData, Currency, UserSession, UserTraits } from "../types";
2
+ export declare class AttributionSDK {
3
+ private config;
4
+ private logger;
5
+ private storage;
6
+ private httpClient;
7
+ private queue;
8
+ private session;
9
+ private initialized;
10
+ private autoTrackEnabled;
11
+ private pageViewTrackTimes;
12
+ private cachedPublicIP;
13
+ private publicIPFetchPromise;
14
+ private initialPageViewTriggered;
15
+ private spaTrackingEnabled;
16
+ private lastTrackedPath;
17
+ private originalPushState;
18
+ private originalReplaceState;
19
+ private popstateHandler;
20
+ constructor(config: SDKConfig);
21
+ init(): Promise<void>;
22
+ trackEvent(eventType: EventType, eventData?: Record<string, any>, tracking_user_id?: string, revenue?: number, currency?: Currency): Promise<void>;
23
+ trackPageView(pageData?: Record<string, any>, tracking_user_id?: string): Promise<void>;
24
+ private cleanupPageViewTrackTimes;
25
+ private ensurePublicIPFetched;
26
+ private fetchPublicIP;
27
+ trackPurchase(tracking_user_id: string, revenue: number, currency?: Currency, purchaseData?: Record<string, any>): Promise<void>;
28
+ trackLogin(tracking_user_id: string, loginData?: Record<string, any>): Promise<void>;
29
+ trackSignup(tracking_user_id: string, signupData?: Record<string, any>): Promise<void>;
30
+ trackFormSubmit(tracking_user_id?: string, formData?: Record<string, any>): Promise<void>;
31
+ trackVideoPlay(tracking_user_id?: string, videoData?: Record<string, any>): Promise<void>;
32
+ trackEmailVerification(tracking_user_id: string, verificationData?: Record<string, any>): Promise<void>;
33
+ trackAuditApproved(tracking_user_id: string, auditData?: Record<string, any>): Promise<void>;
34
+ trackPurchaseAuto(options: {
35
+ revenue: number;
36
+ currency?: Currency;
37
+ purchaseData?: Record<string, any>;
38
+ tracking_user_id?: string;
39
+ }): Promise<void>;
40
+ trackLoginAuto(options: {
41
+ loginData?: Record<string, any>;
42
+ tracking_user_id?: string;
43
+ }): Promise<void>;
44
+ trackSignupAuto(options: {
45
+ signupData?: Record<string, any>;
46
+ tracking_user_id?: string;
47
+ }): Promise<void>;
48
+ trackEmailVerificationAuto(options: {
49
+ verificationData?: Record<string, any>;
50
+ tracking_user_id?: string;
51
+ }): Promise<void>;
52
+ trackProductView(tracking_user_id?: string, productData?: Record<string, any>): Promise<void>;
53
+ trackAddToCart(tracking_user_id?: string, cartData?: Record<string, any>): Promise<void>;
54
+ trackPageClick(tracking_user_id?: string, clickData?: Record<string, any>): Promise<void>;
55
+ trackButtonClick(buttonName?: string, tracking_user_id?: string, clickData?: Record<string, any>): Promise<void>;
56
+ getAttributionData(): AttributionData | null;
57
+ addUTMToURL(url: string): string;
58
+ getCurrentUTMParams(): Record<string, string>;
59
+ private getUTMParams;
60
+ private initializeUserId;
61
+ setUserId(userId: string): void;
62
+ getUserId(): string | null;
63
+ removeUserId(): void;
64
+ /**
65
+ * Identify user and set user attributes
66
+ * Used to explicitly set user information, e.g., after login
67
+ *
68
+ * @param userId User unique identifier
69
+ * @param traits User attributes
70
+ *
71
+ * @example
72
+ * sdk.identify('user-123', {
73
+ * email: 'user@example.com',
74
+ * name: 'John Doe',
75
+ * company_name: 'Acme Inc'
76
+ * });
77
+ */
78
+ identify(userId: string, traits?: UserTraits): Promise<void>;
79
+ /**
80
+ * Get current user traits
81
+ */
82
+ getUserTraits(): UserTraits | null;
83
+ /**
84
+ * Get current session ID
85
+ */
86
+ getSessionId(): string | null;
87
+ private initializeSession;
88
+ private extractAndStoreUTMData;
89
+ private setupAutoTracking;
90
+ private setupFormTracking;
91
+ private serializeFormFields;
92
+ private getFormFieldKey;
93
+ private normalizeFormFieldKey;
94
+ private serializeFormValue;
95
+ /**
96
+ * Extract standardized lead fields from form data
97
+ * @param formData Serialized form data
98
+ * @returns Extracted user traits
99
+ */
100
+ private extractLeadFields;
101
+ private setupLinkTracking;
102
+ private handleCrossDomainUTM;
103
+ private setupNetworkHandlers;
104
+ private setupVisibilityHandlers;
105
+ private setupBeforeUnloadHandler;
106
+ private flushOnUnload;
107
+ private retryPendingEvents;
108
+ private getCurrentPath;
109
+ private setupSPATracking;
110
+ private cleanupSPATracking;
111
+ private updateSessionActivity;
112
+ flush(): Promise<void>;
113
+ getStatus(): {
114
+ initialized: boolean;
115
+ session: UserSession | null;
116
+ queueSize: number;
117
+ online: boolean;
118
+ crossDomainUTM: {
119
+ enabled: boolean;
120
+ currentParams: Record<string, string>;
121
+ };
122
+ spaTracking: {
123
+ enabled: boolean;
124
+ currentPath: string;
125
+ };
126
+ };
127
+ destroy(): void;
128
+ }
129
+ //# sourceMappingURL=AttributionSDK.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttributionSDK.d.ts","sourceRoot":"","sources":["../../src/core/AttributionSDK.ts"],"names":[],"mappings":"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"}