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 +23 -0
- package/dist/core/AttributionSDK.d.ts +129 -0
- package/dist/core/AttributionSDK.d.ts.map +1 -0
- package/dist/core/AttributionSDK.js +1034 -0
- package/dist/getuai-attribution.min.js +1 -0
- package/dist/index.d.ts +153 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.esm.js +2776 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/index.js +2936 -0
- package/dist/queue/index.d.ts +75 -0
- package/dist/queue/index.d.ts.map +1 -0
- package/dist/queue/index.js +336 -0
- package/dist/storage/index.d.ts +72 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +592 -0
- package/dist/types/index.d.ts +135 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +49 -0
- package/dist/utils/index.d.ts +36 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +297 -0
- package/dist/version.d.ts +7 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +6 -0
- package/package.json +1 -1
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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"}
|