shopkit-analytics 1.0.0 → 1.0.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 +258 -3
- package/dist/adapters/index.d.mts +2 -2
- package/dist/adapters/index.d.ts +2 -2
- package/dist/adapters/index.js +1039 -600
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/index.mjs +2 -2
- package/dist/{chunk-3TQR5DOP.mjs → chunk-3NR2AKE4.mjs} +1 -31
- package/dist/chunk-3NR2AKE4.mjs.map +1 -0
- package/dist/{chunk-P4OJDCEZ.mjs → chunk-BNV3EVHH.mjs} +3 -3
- package/dist/{chunk-JVEGG6JV.mjs → chunk-HCA4E2RA.mjs} +19 -13
- package/dist/chunk-HCA4E2RA.mjs.map +1 -0
- package/dist/{chunk-4MZH5OLR.mjs → chunk-U3UOXFS4.mjs} +1040 -603
- package/dist/chunk-U3UOXFS4.mjs.map +1 -0
- package/dist/events/index.d.mts +9 -41
- package/dist/events/index.d.ts +9 -41
- package/dist/events/index.js +801 -490
- package/dist/events/index.js.map +1 -1
- package/dist/events/index.mjs +5 -7
- package/dist/{index-GODWc1s6.d.mts → index-Bym1_EAp.d.mts} +74 -17
- package/dist/{index-BnNRgdUv.d.ts → index-DS9OI5Mz.d.ts} +74 -17
- package/dist/index.d.mts +6 -6
- package/dist/index.d.ts +6 -6
- package/dist/index.js +1057 -645
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +4 -6
- package/dist/index.mjs.map +1 -1
- package/dist/{subscriber-43gnCKWe.d.ts → subscriber-BDAm_BAi.d.ts} +38 -2
- package/dist/{subscriber-sWesj_5p.d.mts → subscriber-BoyOlh9t.d.mts} +38 -2
- package/dist/subscriber-VF3IYUCU.mjs +8 -0
- package/dist/types.d.mts +4 -340
- package/dist/types.d.ts +4 -340
- package/dist/types.js +0 -30
- package/dist/types.js.map +1 -1
- package/dist/types.mjs +1 -1
- package/package.json +2 -3
- package/dist/chunk-3TQR5DOP.mjs.map +0 -1
- package/dist/chunk-4MZH5OLR.mjs.map +0 -1
- package/dist/chunk-JVEGG6JV.mjs.map +0 -1
- package/dist/subscriber-IFZJU57V.mjs +0 -8
- /package/dist/{chunk-P4OJDCEZ.mjs.map → chunk-BNV3EVHH.mjs.map} +0 -0
- /package/dist/{subscriber-IFZJU57V.mjs.map → subscriber-VF3IYUCU.mjs.map} +0 -0
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
3
|
// src/logger/index.ts
|
|
4
|
-
|
|
4
|
+
var LOG_LEVELS = {
|
|
5
|
+
trace: 10,
|
|
6
|
+
debug: 20,
|
|
7
|
+
info: 30,
|
|
8
|
+
warn: 40,
|
|
9
|
+
error: 50,
|
|
10
|
+
fatal: 60
|
|
11
|
+
};
|
|
5
12
|
var NoOpLogger = class _NoOpLogger {
|
|
6
13
|
trace() {
|
|
7
14
|
}
|
|
@@ -19,92 +26,109 @@ var NoOpLogger = class _NoOpLogger {
|
|
|
19
26
|
return new _NoOpLogger();
|
|
20
27
|
}
|
|
21
28
|
};
|
|
22
|
-
var
|
|
23
|
-
constructor(
|
|
24
|
-
this.
|
|
29
|
+
var UniversalLogger = class _UniversalLogger {
|
|
30
|
+
constructor(config, bindings = {}) {
|
|
31
|
+
this.config = config;
|
|
32
|
+
this.bindings = bindings;
|
|
33
|
+
}
|
|
34
|
+
shouldLog(level) {
|
|
35
|
+
return LOG_LEVELS[level] >= LOG_LEVELS[this.config.level];
|
|
36
|
+
}
|
|
37
|
+
formatMessage(level, message, args, error) {
|
|
38
|
+
const timestamp = (/* @__PURE__ */ new Date()).toISOString();
|
|
39
|
+
const name = this.config.name;
|
|
40
|
+
let logMessage = this.config.prettyPrint ? `[${timestamp}] ${level.toUpperCase()} [${name}]: ${message}` : JSON.stringify({
|
|
41
|
+
timestamp,
|
|
42
|
+
level,
|
|
43
|
+
name,
|
|
44
|
+
message,
|
|
45
|
+
...this.bindings,
|
|
46
|
+
...args.length > 0 && { args },
|
|
47
|
+
...error && {
|
|
48
|
+
error: { message: error.message, stack: error.stack }
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
if (this.config.prettyPrint && args.length > 0) {
|
|
52
|
+
logMessage += ` ${args.map(
|
|
53
|
+
(arg) => typeof arg === "object" ? JSON.stringify(arg) : String(arg)
|
|
54
|
+
).join(" ")}`;
|
|
55
|
+
}
|
|
56
|
+
if (this.config.prettyPrint && error) {
|
|
57
|
+
logMessage += ` Error: ${error.message}`;
|
|
58
|
+
if (error.stack) {
|
|
59
|
+
logMessage += `
|
|
60
|
+
${error.stack}`;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return this.redactSensitiveData(logMessage);
|
|
64
|
+
}
|
|
65
|
+
redactSensitiveData(message) {
|
|
66
|
+
let redactedMessage = message;
|
|
67
|
+
for (const field of this.config.redact) {
|
|
68
|
+
const regex = new RegExp(`"${field}"\\s*:\\s*"[^"]*"`, "gi");
|
|
69
|
+
redactedMessage = redactedMessage.replace(
|
|
70
|
+
regex,
|
|
71
|
+
`"${field}":"[REDACTED]"`
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
return redactedMessage;
|
|
75
|
+
}
|
|
76
|
+
log(level, message, args, error) {
|
|
77
|
+
if (!this.shouldLog(level)) return;
|
|
78
|
+
const formattedMessage = this.formatMessage(level, message, args, error);
|
|
79
|
+
switch (level) {
|
|
80
|
+
case "trace":
|
|
81
|
+
console.trace(formattedMessage);
|
|
82
|
+
break;
|
|
83
|
+
case "debug":
|
|
84
|
+
console.debug(formattedMessage);
|
|
85
|
+
break;
|
|
86
|
+
case "info":
|
|
87
|
+
console.info(formattedMessage);
|
|
88
|
+
break;
|
|
89
|
+
case "warn":
|
|
90
|
+
console.warn(formattedMessage);
|
|
91
|
+
break;
|
|
92
|
+
case "error":
|
|
93
|
+
case "fatal":
|
|
94
|
+
console.error(formattedMessage);
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
25
97
|
}
|
|
26
98
|
trace(message, ...args) {
|
|
27
|
-
this.
|
|
99
|
+
this.log("trace", message, args);
|
|
28
100
|
}
|
|
29
101
|
debug(message, ...args) {
|
|
30
|
-
this.
|
|
102
|
+
this.log("debug", message, args);
|
|
31
103
|
}
|
|
32
104
|
info(message, ...args) {
|
|
33
|
-
this.
|
|
105
|
+
this.log("info", message, args);
|
|
34
106
|
}
|
|
35
107
|
warn(message, ...args) {
|
|
36
|
-
this.
|
|
108
|
+
this.log("warn", message, args);
|
|
37
109
|
}
|
|
38
110
|
error(message, error, ...args) {
|
|
39
|
-
this.
|
|
111
|
+
this.log("error", message, args, error);
|
|
40
112
|
}
|
|
41
113
|
fatal(message, error, ...args) {
|
|
42
|
-
this.
|
|
114
|
+
this.log("fatal", message, args, error);
|
|
43
115
|
}
|
|
44
116
|
child(bindings) {
|
|
45
|
-
return new
|
|
117
|
+
return new _UniversalLogger(this.config, { ...this.bindings, ...bindings });
|
|
46
118
|
}
|
|
47
119
|
};
|
|
48
120
|
function createLogger(config = {}) {
|
|
49
|
-
const {
|
|
50
|
-
level
|
|
51
|
-
enabled
|
|
52
|
-
name
|
|
53
|
-
prettyPrint
|
|
54
|
-
redact
|
|
55
|
-
} = config;
|
|
56
|
-
if (!enabled) {
|
|
57
|
-
return new NoOpLogger();
|
|
58
|
-
}
|
|
59
|
-
const pinoConfig = {
|
|
60
|
-
name,
|
|
61
|
-
level,
|
|
62
|
-
redact,
|
|
63
|
-
browser: {
|
|
64
|
-
asObject: true,
|
|
65
|
-
serialize: true,
|
|
66
|
-
write: {
|
|
67
|
-
trace: (o) => console.trace(formatBrowserLog(o)),
|
|
68
|
-
debug: (o) => console.debug(formatBrowserLog(o)),
|
|
69
|
-
info: (o) => console.info(formatBrowserLog(o)),
|
|
70
|
-
warn: (o) => console.warn(formatBrowserLog(o)),
|
|
71
|
-
error: (o) => console.error(formatBrowserLog(o)),
|
|
72
|
-
fatal: (o) => console.error(formatBrowserLog(o))
|
|
73
|
-
}
|
|
74
|
-
}
|
|
121
|
+
const fullConfig = {
|
|
122
|
+
level: config.level || "info",
|
|
123
|
+
enabled: config.enabled !== false,
|
|
124
|
+
name: config.name || "@shopkit/analytics",
|
|
125
|
+
prettyPrint: config.prettyPrint || false,
|
|
126
|
+
redact: config.redact || []
|
|
75
127
|
};
|
|
76
|
-
if (
|
|
77
|
-
|
|
78
|
-
target: "pino-pretty",
|
|
79
|
-
options: {
|
|
80
|
-
colorize: true,
|
|
81
|
-
translateTime: "HH:MM:ss Z",
|
|
82
|
-
ignore: "pid,hostname"
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
const pinoLogger = pino(pinoConfig);
|
|
87
|
-
return new PinoLogger(pinoLogger);
|
|
88
|
-
}
|
|
89
|
-
function formatBrowserLog(logObj) {
|
|
90
|
-
const { level, time, msg, name, args, error, ...rest } = logObj;
|
|
91
|
-
let message = `[${name}] ${msg}`;
|
|
92
|
-
if (args && args.length > 0) {
|
|
93
|
-
message += ` ${args.map(
|
|
94
|
-
(arg) => typeof arg === "object" ? JSON.stringify(arg) : String(arg)
|
|
95
|
-
).join(" ")}`;
|
|
96
|
-
}
|
|
97
|
-
if (error) {
|
|
98
|
-
message += ` Error: ${error.message}`;
|
|
99
|
-
if (error.stack) {
|
|
100
|
-
message += `
|
|
101
|
-
${error.stack}`;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
if (Object.keys(rest).length > 0) {
|
|
105
|
-
message += ` ${JSON.stringify(rest)}`;
|
|
128
|
+
if (!fullConfig.enabled) {
|
|
129
|
+
return new NoOpLogger();
|
|
106
130
|
}
|
|
107
|
-
return
|
|
131
|
+
return new UniversalLogger(fullConfig);
|
|
108
132
|
}
|
|
109
133
|
var logger = createLogger({
|
|
110
134
|
enabled: true,
|
|
@@ -153,6 +177,38 @@ var BaseAdapter = class {
|
|
|
153
177
|
isEnabled() {
|
|
154
178
|
return this.initialized;
|
|
155
179
|
}
|
|
180
|
+
/**
|
|
181
|
+
* Extract adapter-specific parameters for this adapter
|
|
182
|
+
* @param params The adapter parameters object
|
|
183
|
+
* @returns Adapter-specific parameters or empty object
|
|
184
|
+
*/
|
|
185
|
+
getAdapterParams(params) {
|
|
186
|
+
return params?.[this.name] || {};
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Get custom event name or fall back to default
|
|
190
|
+
* @param params The adapter parameters object
|
|
191
|
+
* @param defaultName The default event name to use
|
|
192
|
+
* @returns Custom event name or default
|
|
193
|
+
*/
|
|
194
|
+
getEventName(params, defaultName) {
|
|
195
|
+
const adapterParams = this.getAdapterParams(params);
|
|
196
|
+
return adapterParams.event_name || defaultName;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Merge standard event data with adapter-specific parameters
|
|
200
|
+
* @param params The adapter parameters object
|
|
201
|
+
* @param standardData The standard event data
|
|
202
|
+
* @returns Merged data with adapter-specific overrides
|
|
203
|
+
*/
|
|
204
|
+
mergeEventData(standardData, params) {
|
|
205
|
+
const adapterParams = this.getAdapterParams(params);
|
|
206
|
+
const { event_name, ...customParams } = adapterParams;
|
|
207
|
+
return {
|
|
208
|
+
...standardData,
|
|
209
|
+
...customParams
|
|
210
|
+
};
|
|
211
|
+
}
|
|
156
212
|
/**
|
|
157
213
|
* Get a configuration value
|
|
158
214
|
* @param key The configuration key
|
|
@@ -185,6 +241,57 @@ var BaseAdapter = class {
|
|
|
185
241
|
}
|
|
186
242
|
};
|
|
187
243
|
|
|
244
|
+
// src/utils/event-id.ts
|
|
245
|
+
function generateEventId(eventType) {
|
|
246
|
+
const timestamp = Date.now();
|
|
247
|
+
const randomString = Math.random().toString(36).substring(2, 8);
|
|
248
|
+
return `${timestamp}_${randomString}_${eventType}`;
|
|
249
|
+
}
|
|
250
|
+
function getBrowserInfo() {
|
|
251
|
+
if (typeof window === "undefined") {
|
|
252
|
+
return {};
|
|
253
|
+
}
|
|
254
|
+
const userAgent = navigator.userAgent;
|
|
255
|
+
const fbc = getFacebookClickId();
|
|
256
|
+
const fbp = getFacebookBrowserId();
|
|
257
|
+
return {
|
|
258
|
+
clientUserAgent: userAgent,
|
|
259
|
+
fbc,
|
|
260
|
+
fbp
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
function getFacebookClickId() {
|
|
264
|
+
if (typeof window === "undefined") {
|
|
265
|
+
return void 0;
|
|
266
|
+
}
|
|
267
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
268
|
+
const fbclid = urlParams.get("fbclid");
|
|
269
|
+
if (fbclid) {
|
|
270
|
+
return `fb.1.${Date.now()}.${fbclid}`;
|
|
271
|
+
}
|
|
272
|
+
const cookies = document.cookie.split(";");
|
|
273
|
+
for (const cookie of cookies) {
|
|
274
|
+
const [name, value] = cookie.trim().split("=");
|
|
275
|
+
if (name === "_fbc") {
|
|
276
|
+
return value;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
return void 0;
|
|
280
|
+
}
|
|
281
|
+
function getFacebookBrowserId() {
|
|
282
|
+
if (typeof window === "undefined") {
|
|
283
|
+
return void 0;
|
|
284
|
+
}
|
|
285
|
+
const cookies = document.cookie.split(";");
|
|
286
|
+
for (const cookie of cookies) {
|
|
287
|
+
const [name, value] = cookie.trim().split("=");
|
|
288
|
+
if (name === "_fbp") {
|
|
289
|
+
return value;
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
return void 0;
|
|
293
|
+
}
|
|
294
|
+
|
|
188
295
|
// src/adapters/pixel-adapter.ts
|
|
189
296
|
var PixelAdapter = class extends BaseAdapter {
|
|
190
297
|
constructor(config) {
|
|
@@ -210,18 +317,34 @@ var PixelAdapter = class extends BaseAdapter {
|
|
|
210
317
|
);
|
|
211
318
|
return;
|
|
212
319
|
}
|
|
213
|
-
const pixelId = this.getConfig("pixelId");
|
|
214
320
|
this.logger.info("Successfully initialized", { pixelId: "***" });
|
|
215
321
|
this.initialized = true;
|
|
216
322
|
}
|
|
217
323
|
/**
|
|
218
324
|
* Track an event with Facebook Pixel
|
|
219
325
|
* @param event The event to track
|
|
326
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
327
|
+
*/
|
|
328
|
+
async trackEvent(event, adapterParams) {
|
|
329
|
+
if (!event.eventId) {
|
|
330
|
+
event.eventId = generateEventId(event.type);
|
|
331
|
+
}
|
|
332
|
+
this.logger.debug("Tracking event", {
|
|
333
|
+
eventType: event.type,
|
|
334
|
+
eventId: event.eventId
|
|
335
|
+
});
|
|
336
|
+
await this.trackClientSide(event, adapterParams);
|
|
337
|
+
if (this.getConfig("enableCAPI", true)) {
|
|
338
|
+
await this.trackServerSide(event);
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* Track event on client-side (browser pixel)
|
|
220
343
|
*/
|
|
221
|
-
async
|
|
344
|
+
async trackClientSide(event, adapterParams) {
|
|
222
345
|
if (!this.initialized || typeof window === "undefined" || !window.fbq) {
|
|
223
346
|
this.logger.warn(
|
|
224
|
-
"Cannot track event, adapter not initialized or fbq not available",
|
|
347
|
+
"Cannot track client-side event, adapter not initialized or fbq not available",
|
|
225
348
|
{
|
|
226
349
|
eventType: event.type,
|
|
227
350
|
initialized: this.initialized,
|
|
@@ -231,55 +354,95 @@ var PixelAdapter = class extends BaseAdapter {
|
|
|
231
354
|
);
|
|
232
355
|
return;
|
|
233
356
|
}
|
|
234
|
-
this.logger.debug("Tracking event", { eventType: event.type });
|
|
235
357
|
switch (event.type) {
|
|
236
358
|
case "page_view" /* PAGE_VIEW */:
|
|
237
|
-
this.trackPageView(event);
|
|
359
|
+
this.trackPageView(event, adapterParams);
|
|
238
360
|
break;
|
|
239
361
|
case "view_content" /* VIEW_CONTENT */:
|
|
240
|
-
this.trackViewContent(event);
|
|
362
|
+
this.trackViewContent(event, adapterParams);
|
|
241
363
|
break;
|
|
242
364
|
case "product_view" /* PRODUCT_VIEW */:
|
|
243
|
-
this.trackProductView(event);
|
|
365
|
+
this.trackProductView(event, adapterParams);
|
|
244
366
|
break;
|
|
245
367
|
case "add_to_cart" /* ADD_TO_CART */:
|
|
246
|
-
this.trackAddToCart(event);
|
|
368
|
+
this.trackAddToCart(event, adapterParams);
|
|
247
369
|
break;
|
|
248
370
|
case "checkout_started" /* CHECKOUT_STARTED */:
|
|
249
|
-
this.trackCheckoutStarted(event);
|
|
371
|
+
this.trackCheckoutStarted(event, adapterParams);
|
|
250
372
|
break;
|
|
251
373
|
case "checkout_completed" /* CHECKOUT_COMPLETED */:
|
|
252
|
-
this.trackCheckoutCompleted(event);
|
|
374
|
+
this.trackCheckoutCompleted(event, adapterParams);
|
|
253
375
|
break;
|
|
254
376
|
case "purchase" /* PURCHASE */:
|
|
255
|
-
this.trackPurchase(event);
|
|
377
|
+
this.trackPurchase(event, adapterParams);
|
|
256
378
|
break;
|
|
257
379
|
case "add_payment_info" /* ADD_PAYMENT_INFO */:
|
|
258
|
-
this.trackAddPaymentInfo(event);
|
|
380
|
+
this.trackAddPaymentInfo(event, adapterParams);
|
|
259
381
|
break;
|
|
260
382
|
case "search" /* SEARCH */:
|
|
261
|
-
this.trackSearch(event);
|
|
383
|
+
this.trackSearch(event, adapterParams);
|
|
262
384
|
break;
|
|
263
385
|
default:
|
|
264
386
|
this.logger.debug("Unhandled event type", { eventType: event.type });
|
|
265
387
|
break;
|
|
266
388
|
}
|
|
267
389
|
}
|
|
390
|
+
/**
|
|
391
|
+
* Track event on server-side (CAPI) as backup
|
|
392
|
+
*/
|
|
393
|
+
async trackServerSide(event) {
|
|
394
|
+
try {
|
|
395
|
+
const browserInfo = getBrowserInfo();
|
|
396
|
+
const payload = {
|
|
397
|
+
events: [event],
|
|
398
|
+
userInfo: browserInfo
|
|
399
|
+
};
|
|
400
|
+
const response = await fetch("/api/events", {
|
|
401
|
+
method: "POST",
|
|
402
|
+
headers: {
|
|
403
|
+
"Content-Type": "application/json"
|
|
404
|
+
},
|
|
405
|
+
body: JSON.stringify(payload)
|
|
406
|
+
});
|
|
407
|
+
if (!response.ok) {
|
|
408
|
+
throw new Error(`Server-side tracking failed: ${response.status}`);
|
|
409
|
+
}
|
|
410
|
+
this.logger.debug(
|
|
411
|
+
`FB Pixel: Server-side backup sent for event ${event.type}`
|
|
412
|
+
);
|
|
413
|
+
} catch (error) {
|
|
414
|
+
this.logger.error(
|
|
415
|
+
`FB Pixel: Server-side backup failed for event ${event.type}: ${error instanceof Error ? error.message : String(error)}`
|
|
416
|
+
);
|
|
417
|
+
}
|
|
418
|
+
}
|
|
268
419
|
/**
|
|
269
420
|
* Track a page view event
|
|
270
421
|
* @param event The page view event
|
|
271
422
|
*/
|
|
272
|
-
trackPageView(event) {
|
|
273
|
-
const
|
|
274
|
-
|
|
275
|
-
this.
|
|
423
|
+
trackPageView(event, adapterParams) {
|
|
424
|
+
const eventName = this.getEventName(adapterParams, "PageView");
|
|
425
|
+
const baseParams = this.enhanceWithAffiliateParams({});
|
|
426
|
+
const enhancedParams = this.mergeEventData(baseParams, adapterParams);
|
|
427
|
+
if (event.eventId) {
|
|
428
|
+
window.fbq?.("track", eventName, enhancedParams, {
|
|
429
|
+
eventID: event.eventId
|
|
430
|
+
});
|
|
431
|
+
} else {
|
|
432
|
+
window.fbq?.("track", eventName, enhancedParams);
|
|
433
|
+
}
|
|
434
|
+
this.logger.debug("PageView event tracked", {
|
|
435
|
+
eventName,
|
|
436
|
+
params: enhancedParams
|
|
437
|
+
});
|
|
276
438
|
}
|
|
277
439
|
/**
|
|
278
440
|
* Track a product view event
|
|
279
441
|
* @param event The product view event
|
|
280
442
|
*/
|
|
281
|
-
trackProductView(event) {
|
|
282
|
-
const
|
|
443
|
+
trackProductView(event, adapterParams) {
|
|
444
|
+
const eventName = this.getEventName(adapterParams, "ViewContent");
|
|
445
|
+
const baseParams = {
|
|
283
446
|
content_type: "product_group",
|
|
284
447
|
content_ids: [event.productId],
|
|
285
448
|
content_name: event.productName,
|
|
@@ -287,34 +450,54 @@ var PixelAdapter = class extends BaseAdapter {
|
|
|
287
450
|
value: event.price,
|
|
288
451
|
currency: event.currency || "INR"
|
|
289
452
|
};
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
453
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
454
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
455
|
+
if (event.eventId) {
|
|
456
|
+
window.fbq?.("track", eventName, enhancedParams, {
|
|
457
|
+
eventID: event.eventId
|
|
458
|
+
});
|
|
459
|
+
} else {
|
|
460
|
+
window.fbq?.("track", eventName, enhancedParams);
|
|
461
|
+
}
|
|
462
|
+
this.logger.debug("ProductView event tracked", {
|
|
463
|
+
eventName,
|
|
464
|
+
params: enhancedParams
|
|
465
|
+
});
|
|
295
466
|
}
|
|
296
467
|
/**
|
|
297
468
|
* Track an add to cart event
|
|
298
469
|
* @param event The add to cart event
|
|
299
470
|
*/
|
|
300
|
-
trackAddToCart(event) {
|
|
301
|
-
const
|
|
471
|
+
trackAddToCart(event, adapterParams) {
|
|
472
|
+
const eventName = this.getEventName(adapterParams, "AddToCart");
|
|
473
|
+
const baseParams = {
|
|
302
474
|
content_type: "product_group",
|
|
303
475
|
content_ids: [event.productId],
|
|
304
476
|
content_name: event.productName,
|
|
305
477
|
value: event.price,
|
|
306
478
|
currency: event.currency || "INR"
|
|
307
479
|
};
|
|
308
|
-
const
|
|
309
|
-
|
|
310
|
-
|
|
480
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
481
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
482
|
+
if (event.eventId) {
|
|
483
|
+
window.fbq?.("track", eventName, enhancedParams, {
|
|
484
|
+
eventID: event.eventId
|
|
485
|
+
});
|
|
486
|
+
} else {
|
|
487
|
+
window.fbq?.("track", eventName, enhancedParams);
|
|
488
|
+
}
|
|
489
|
+
this.logger.debug("AddToCart event tracked", {
|
|
490
|
+
eventName,
|
|
491
|
+
params: enhancedParams
|
|
492
|
+
});
|
|
311
493
|
}
|
|
312
494
|
/**
|
|
313
495
|
* Track a checkout started event
|
|
314
496
|
* @param event The checkout started event
|
|
315
497
|
*/
|
|
316
|
-
trackCheckoutStarted(event) {
|
|
317
|
-
const
|
|
498
|
+
trackCheckoutStarted(event, adapterParams) {
|
|
499
|
+
const eventName = this.getEventName(adapterParams, "InitiateCheckout");
|
|
500
|
+
const baseParams = {
|
|
318
501
|
content_ids: event.items.map((item) => item.productId),
|
|
319
502
|
content_type: "product_group",
|
|
320
503
|
value: event.cartValue,
|
|
@@ -326,18 +509,27 @@ var PixelAdapter = class extends BaseAdapter {
|
|
|
326
509
|
item_price: item.price
|
|
327
510
|
}))
|
|
328
511
|
};
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
512
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
513
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
514
|
+
if (event.eventId) {
|
|
515
|
+
window.fbq?.("track", eventName, enhancedParams, {
|
|
516
|
+
eventID: event.eventId
|
|
517
|
+
});
|
|
518
|
+
} else {
|
|
519
|
+
window.fbq?.("track", eventName, enhancedParams);
|
|
520
|
+
}
|
|
521
|
+
this.logger.debug("CheckoutStarted event tracked", {
|
|
522
|
+
eventName,
|
|
523
|
+
params: enhancedParams
|
|
524
|
+
});
|
|
334
525
|
}
|
|
335
526
|
/**
|
|
336
527
|
* Track a checkout completed event
|
|
337
528
|
* @param event The checkout completed event
|
|
338
529
|
*/
|
|
339
|
-
trackCheckoutCompleted(event) {
|
|
340
|
-
const
|
|
530
|
+
trackCheckoutCompleted(event, adapterParams) {
|
|
531
|
+
const eventName = this.getEventName(adapterParams, "Purchase");
|
|
532
|
+
const baseParams = {
|
|
341
533
|
value: event.cartValue,
|
|
342
534
|
currency: event.currency || "INR",
|
|
343
535
|
content_type: "product_group",
|
|
@@ -349,26 +541,52 @@ var PixelAdapter = class extends BaseAdapter {
|
|
|
349
541
|
item_price: item.price
|
|
350
542
|
}))
|
|
351
543
|
};
|
|
352
|
-
|
|
544
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
545
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
546
|
+
if (event.eventId) {
|
|
547
|
+
window.fbq?.("track", eventName, enhancedParams, {
|
|
548
|
+
eventID: event.eventId
|
|
549
|
+
});
|
|
550
|
+
} else {
|
|
551
|
+
window.fbq?.("track", eventName, enhancedParams);
|
|
552
|
+
}
|
|
553
|
+
this.logger.debug("CheckoutCompleted event tracked", {
|
|
554
|
+
eventName,
|
|
555
|
+
params: enhancedParams
|
|
556
|
+
});
|
|
353
557
|
}
|
|
354
558
|
/**
|
|
355
559
|
* Track a search event
|
|
356
560
|
* @param event The search event
|
|
357
561
|
*/
|
|
358
|
-
trackSearch(event) {
|
|
359
|
-
const
|
|
562
|
+
trackSearch(event, adapterParams) {
|
|
563
|
+
const eventName = this.getEventName(adapterParams, "Search");
|
|
564
|
+
const baseParams = {
|
|
360
565
|
search_string: event.searchTerm,
|
|
361
566
|
content_category: "product",
|
|
362
567
|
content_ids: event.content_ids || []
|
|
363
568
|
};
|
|
364
|
-
|
|
569
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
570
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
571
|
+
if (event.eventId) {
|
|
572
|
+
window.fbq?.("track", eventName, enhancedParams, {
|
|
573
|
+
eventID: event.eventId
|
|
574
|
+
});
|
|
575
|
+
} else {
|
|
576
|
+
window.fbq?.("track", eventName, enhancedParams);
|
|
577
|
+
}
|
|
578
|
+
this.logger.debug("Search event tracked", {
|
|
579
|
+
eventName,
|
|
580
|
+
params: enhancedParams
|
|
581
|
+
});
|
|
365
582
|
}
|
|
366
583
|
/**
|
|
367
584
|
* Track an add payment info event
|
|
368
585
|
* @param event The add payment info event
|
|
369
586
|
*/
|
|
370
|
-
trackAddPaymentInfo(event) {
|
|
371
|
-
const
|
|
587
|
+
trackAddPaymentInfo(event, adapterParams) {
|
|
588
|
+
const eventName = this.getEventName(adapterParams, "AddPaymentInfo");
|
|
589
|
+
const baseParams = {
|
|
372
590
|
value: event.cartValue,
|
|
373
591
|
currency: event.currency || "INR",
|
|
374
592
|
content_type: "product_group",
|
|
@@ -380,18 +598,27 @@ var PixelAdapter = class extends BaseAdapter {
|
|
|
380
598
|
})),
|
|
381
599
|
payment_type: event.paymentType || ""
|
|
382
600
|
};
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
601
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
602
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
603
|
+
if (event.eventId) {
|
|
604
|
+
window.fbq?.("track", eventName, enhancedParams, {
|
|
605
|
+
eventID: event.eventId
|
|
606
|
+
});
|
|
607
|
+
} else {
|
|
608
|
+
window.fbq?.("track", eventName, enhancedParams);
|
|
609
|
+
}
|
|
610
|
+
this.logger.debug("AddPaymentInfo event tracked", {
|
|
611
|
+
eventName,
|
|
612
|
+
params: enhancedParams
|
|
613
|
+
});
|
|
388
614
|
}
|
|
389
615
|
/**
|
|
390
616
|
* Track a view content event
|
|
391
617
|
* @param event The view content event
|
|
392
618
|
*/
|
|
393
|
-
trackViewContent(event) {
|
|
394
|
-
const
|
|
619
|
+
trackViewContent(event, adapterParams) {
|
|
620
|
+
const eventName = this.getEventName(adapterParams, "ViewContent");
|
|
621
|
+
const baseParams = {
|
|
395
622
|
content_type: event.content_type || "product",
|
|
396
623
|
content_ids: event.content_ids || [],
|
|
397
624
|
content_name: event.content_name || "",
|
|
@@ -399,18 +626,27 @@ var PixelAdapter = class extends BaseAdapter {
|
|
|
399
626
|
value: event.value || 0,
|
|
400
627
|
currency: event.currency || "INR"
|
|
401
628
|
};
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
629
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
630
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
631
|
+
if (event.eventId) {
|
|
632
|
+
window.fbq?.("track", eventName, enhancedParams, {
|
|
633
|
+
eventID: event.eventId
|
|
634
|
+
});
|
|
635
|
+
} else {
|
|
636
|
+
window.fbq?.("track", eventName, enhancedParams);
|
|
637
|
+
}
|
|
638
|
+
this.logger.debug("ViewContent event tracked", {
|
|
639
|
+
eventName,
|
|
640
|
+
params: enhancedParams
|
|
641
|
+
});
|
|
407
642
|
}
|
|
408
643
|
/**
|
|
409
644
|
* Track a purchase event
|
|
410
645
|
* @param event The purchase event
|
|
411
646
|
*/
|
|
412
|
-
trackPurchase(event) {
|
|
413
|
-
const
|
|
647
|
+
trackPurchase(event, adapterParams) {
|
|
648
|
+
const eventName = this.getEventName(adapterParams, "Purchase");
|
|
649
|
+
const baseParams = {
|
|
414
650
|
value: event.value,
|
|
415
651
|
currency: event.currency || "INR",
|
|
416
652
|
content_type: event.content_type || "product_group",
|
|
@@ -418,15 +654,19 @@ var PixelAdapter = class extends BaseAdapter {
|
|
|
418
654
|
num_items: event.num_items || 1,
|
|
419
655
|
contents: event.contents || []
|
|
420
656
|
};
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
657
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
658
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
659
|
+
if (event.eventId) {
|
|
660
|
+
window.fbq?.("track", eventName, enhancedParams, {
|
|
661
|
+
eventID: event.eventId
|
|
662
|
+
});
|
|
663
|
+
} else {
|
|
664
|
+
window.fbq?.("track", eventName, enhancedParams);
|
|
665
|
+
}
|
|
666
|
+
this.logger.debug("Purchase event tracked", {
|
|
667
|
+
eventName,
|
|
668
|
+
params: enhancedParams
|
|
669
|
+
});
|
|
430
670
|
}
|
|
431
671
|
};
|
|
432
672
|
|
|
@@ -475,8 +715,9 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
475
715
|
/**
|
|
476
716
|
* Track an event with Google Analytics
|
|
477
717
|
* @param event The event to track
|
|
718
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
478
719
|
*/
|
|
479
|
-
async trackEvent(event) {
|
|
720
|
+
async trackEvent(event, adapterParams) {
|
|
480
721
|
this.logger.debug("Attempting to track event", {
|
|
481
722
|
initialized: this.initialized,
|
|
482
723
|
hasWindow: typeof window !== "undefined",
|
|
@@ -502,76 +743,93 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
502
743
|
});
|
|
503
744
|
switch (event.type) {
|
|
504
745
|
case "page_view" /* PAGE_VIEW */:
|
|
505
|
-
this.trackPageView(
|
|
746
|
+
this.trackPageView(
|
|
747
|
+
event,
|
|
748
|
+
measurementId,
|
|
749
|
+
adapterParams
|
|
750
|
+
);
|
|
506
751
|
break;
|
|
507
752
|
case "user_engagement" /* USER_ENGAGEMENT */:
|
|
508
|
-
this.trackUserEngagement();
|
|
753
|
+
this.trackUserEngagement(adapterParams);
|
|
509
754
|
break;
|
|
510
755
|
case "session_start" /* SESSION_START */:
|
|
511
|
-
this.trackSessionStart();
|
|
756
|
+
this.trackSessionStart(adapterParams);
|
|
512
757
|
break;
|
|
513
758
|
case "first_visit" /* FIRST_VISIT */:
|
|
514
|
-
this.trackFirstVisit();
|
|
759
|
+
this.trackFirstVisit(adapterParams);
|
|
515
760
|
break;
|
|
516
761
|
case "view_item" /* VIEW_ITEM */:
|
|
517
|
-
this.trackViewItem(event);
|
|
762
|
+
this.trackViewItem(event, adapterParams);
|
|
518
763
|
break;
|
|
519
764
|
case "viewed_product" /* VIEWED_PRODUCT */:
|
|
520
|
-
this.trackViewedProduct(event);
|
|
765
|
+
this.trackViewedProduct(event, adapterParams);
|
|
521
766
|
break;
|
|
522
767
|
case "checkout_payment" /* CHECKOUT_PAYMENT */:
|
|
523
|
-
this.trackCheckoutPayment(
|
|
768
|
+
this.trackCheckoutPayment(
|
|
769
|
+
event,
|
|
770
|
+
adapterParams
|
|
771
|
+
);
|
|
524
772
|
break;
|
|
525
773
|
case "scroll" /* SCROLL */:
|
|
526
|
-
this.trackScroll();
|
|
774
|
+
this.trackScroll(adapterParams);
|
|
527
775
|
break;
|
|
528
776
|
case "add_to_cart" /* ADD_TO_CART */:
|
|
529
|
-
|
|
530
|
-
this.trackAddToCart(event);
|
|
777
|
+
this.trackAddToCart(event, adapterParams);
|
|
531
778
|
break;
|
|
532
779
|
case "form_start" /* FORM_START */:
|
|
533
|
-
this.trackFormStart();
|
|
780
|
+
this.trackFormStart(adapterParams);
|
|
534
781
|
break;
|
|
535
782
|
case "checkout_started" /* CHECKOUT_STARTED */:
|
|
536
|
-
this.trackCheckoutStarted(
|
|
783
|
+
this.trackCheckoutStarted(
|
|
784
|
+
event,
|
|
785
|
+
adapterParams
|
|
786
|
+
);
|
|
537
787
|
break;
|
|
538
788
|
case "form_submission" /* FORM_SUBMISSION */:
|
|
539
|
-
this.trackFormSubmission(event);
|
|
789
|
+
this.trackFormSubmission(event, adapterParams);
|
|
540
790
|
break;
|
|
541
791
|
case "search" /* SEARCH */:
|
|
542
|
-
this.trackSearch(event);
|
|
792
|
+
this.trackSearch(event, adapterParams);
|
|
543
793
|
break;
|
|
544
794
|
case "checkout_completed" /* CHECKOUT_COMPLETED */:
|
|
545
|
-
this.trackCheckoutCompleted(
|
|
795
|
+
this.trackCheckoutCompleted(
|
|
796
|
+
event,
|
|
797
|
+
adapterParams
|
|
798
|
+
);
|
|
546
799
|
break;
|
|
547
800
|
case "add_payment_info" /* ADD_PAYMENT_INFO */:
|
|
548
|
-
this.trackAddPaymentInfo(event);
|
|
801
|
+
this.trackAddPaymentInfo(event, adapterParams);
|
|
549
802
|
break;
|
|
550
803
|
case "view_content" /* VIEW_CONTENT */:
|
|
551
|
-
this.trackViewContent(event);
|
|
804
|
+
this.trackViewContent(event, adapterParams);
|
|
552
805
|
break;
|
|
553
806
|
case "purchase" /* PURCHASE */:
|
|
554
|
-
this.trackPurchase(event);
|
|
807
|
+
this.trackPurchase(event, adapterParams);
|
|
555
808
|
break;
|
|
556
809
|
case "view_search_results" /* VIEW_SEARCH_RESULTS */:
|
|
557
|
-
this.trackViewSearchResults(
|
|
810
|
+
this.trackViewSearchResults(
|
|
811
|
+
event,
|
|
812
|
+
adapterParams
|
|
813
|
+
);
|
|
558
814
|
break;
|
|
559
815
|
case "order_placed" /* ORDER_PLACED */:
|
|
560
|
-
this.trackOrderPlaced(event);
|
|
816
|
+
this.trackOrderPlaced(event, adapterParams);
|
|
561
817
|
break;
|
|
562
818
|
case "begin_checkout" /* BEGIN_CHECKOUT */:
|
|
563
|
-
this.trackBeginCheckout(event);
|
|
819
|
+
this.trackBeginCheckout(event, adapterParams);
|
|
564
820
|
break;
|
|
565
821
|
case "custom" /* CUSTOM */:
|
|
566
|
-
this.trackCustomEvent(event);
|
|
822
|
+
this.trackCustomEvent(event, adapterParams);
|
|
567
823
|
break;
|
|
568
824
|
default: {
|
|
569
|
-
const
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
825
|
+
const eventName = this.getEventName(adapterParams, event.type);
|
|
826
|
+
const baseParams = this.eventToParams(event);
|
|
827
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
828
|
+
const enhancedParams = this.mergeEventData(
|
|
829
|
+
affiliateParams,
|
|
830
|
+
adapterParams
|
|
574
831
|
);
|
|
832
|
+
window.gtag("event", eventName, enhancedParams);
|
|
575
833
|
break;
|
|
576
834
|
}
|
|
577
835
|
}
|
|
@@ -581,8 +839,9 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
581
839
|
* @param event The page view event
|
|
582
840
|
* @param measurementId The Google Analytics measurement ID
|
|
583
841
|
*/
|
|
584
|
-
trackPageView(event, measurementId) {
|
|
585
|
-
const
|
|
842
|
+
trackPageView(event, measurementId, adapterParams) {
|
|
843
|
+
const eventName = this.getEventName(adapterParams, "page_view");
|
|
844
|
+
const baseParams = {
|
|
586
845
|
page_path: event.path,
|
|
587
846
|
page_title: event.title || document.title,
|
|
588
847
|
page_location: event.page_location || window.location.href,
|
|
@@ -605,14 +864,13 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
605
864
|
user_properties: event.user_properties,
|
|
606
865
|
session_engaged: event.session_engaged
|
|
607
866
|
};
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
this.enhanceWithAffiliateParams(params)
|
|
612
|
-
);
|
|
867
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
868
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
869
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
613
870
|
}
|
|
614
|
-
trackUserEngagement() {
|
|
615
|
-
const
|
|
871
|
+
trackUserEngagement(adapterParams) {
|
|
872
|
+
const eventName = this.getEventName(adapterParams, "user_engagement");
|
|
873
|
+
const baseParams = {
|
|
616
874
|
batch_ordering_id: "",
|
|
617
875
|
batch_page_id: "",
|
|
618
876
|
campaign: "",
|
|
@@ -629,14 +887,13 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
629
887
|
srsltid: "",
|
|
630
888
|
term: ""
|
|
631
889
|
};
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
this.enhanceWithAffiliateParams(params)
|
|
636
|
-
);
|
|
890
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
891
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
892
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
637
893
|
}
|
|
638
|
-
trackSessionStart() {
|
|
639
|
-
const
|
|
894
|
+
trackSessionStart(adapterParams) {
|
|
895
|
+
const eventName = this.getEventName(adapterParams, "session_start");
|
|
896
|
+
const baseParams = {
|
|
640
897
|
batch_ordering_id: "",
|
|
641
898
|
batch_page_id: "",
|
|
642
899
|
campaign: "",
|
|
@@ -655,14 +912,13 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
655
912
|
srsltid: "",
|
|
656
913
|
term: ""
|
|
657
914
|
};
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
this.enhanceWithAffiliateParams(params)
|
|
662
|
-
);
|
|
915
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
916
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
917
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
663
918
|
}
|
|
664
|
-
trackFirstVisit() {
|
|
665
|
-
const
|
|
919
|
+
trackFirstVisit(adapterParams) {
|
|
920
|
+
const eventName = this.getEventName(adapterParams, "first_visit");
|
|
921
|
+
const baseParams = {
|
|
666
922
|
batch_ordering_id: "",
|
|
667
923
|
batch_page_id: "",
|
|
668
924
|
campaign: "",
|
|
@@ -683,25 +939,24 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
683
939
|
page_source: "",
|
|
684
940
|
page_term: ""
|
|
685
941
|
};
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
this.enhanceWithAffiliateParams(params)
|
|
690
|
-
);
|
|
942
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
943
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
944
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
691
945
|
}
|
|
692
|
-
trackViewItem(event) {
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
);
|
|
946
|
+
trackViewItem(event, adapterParams) {
|
|
947
|
+
const eventName = this.getEventName(adapterParams, "view_item");
|
|
948
|
+
const baseParams = {
|
|
949
|
+
currency: event.currency,
|
|
950
|
+
value: event.value,
|
|
951
|
+
items: event.items
|
|
952
|
+
};
|
|
953
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
954
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
955
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
702
956
|
}
|
|
703
|
-
trackScroll() {
|
|
704
|
-
const
|
|
957
|
+
trackScroll(adapterParams) {
|
|
958
|
+
const eventName = this.getEventName(adapterParams, "scroll");
|
|
959
|
+
const baseParams = {
|
|
705
960
|
batch_ordering_id: "",
|
|
706
961
|
batch_page_id: "",
|
|
707
962
|
engagement_time_msec: void 0,
|
|
@@ -715,46 +970,49 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
715
970
|
percent_scrolled: 90
|
|
716
971
|
// or dynamically captured
|
|
717
972
|
};
|
|
718
|
-
|
|
973
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
974
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
975
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
719
976
|
}
|
|
720
|
-
trackCheckoutPayment(event) {
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
);
|
|
977
|
+
trackCheckoutPayment(event, adapterParams) {
|
|
978
|
+
const eventName = this.getEventName(adapterParams, "checkout_payment");
|
|
979
|
+
const baseParams = {
|
|
980
|
+
currency: event.currency,
|
|
981
|
+
value: event.cartValue,
|
|
982
|
+
items: event.items.map((item) => ({
|
|
983
|
+
item_id: item.productId,
|
|
984
|
+
item_name: item.productName,
|
|
985
|
+
price: item.price,
|
|
986
|
+
quantity: item.quantity
|
|
987
|
+
}))
|
|
988
|
+
};
|
|
989
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
990
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
991
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
735
992
|
}
|
|
736
|
-
trackViewedProduct(event) {
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
);
|
|
993
|
+
trackViewedProduct(event, adapterParams) {
|
|
994
|
+
const eventName = this.getEventName(adapterParams, "viewed_product");
|
|
995
|
+
const baseParams = {
|
|
996
|
+
currency: event.currency,
|
|
997
|
+
value: event.price,
|
|
998
|
+
items: [
|
|
999
|
+
{
|
|
1000
|
+
item_id: event.productId,
|
|
1001
|
+
item_name: event.productName,
|
|
1002
|
+
price: event.price,
|
|
1003
|
+
currency: event.currency
|
|
1004
|
+
}
|
|
1005
|
+
],
|
|
1006
|
+
view_duration: event.viewDuration
|
|
1007
|
+
};
|
|
1008
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1009
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
1010
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
754
1011
|
}
|
|
755
|
-
trackAddToCart(event) {
|
|
1012
|
+
trackAddToCart(event, adapterParams) {
|
|
756
1013
|
this.logger.debug("Processing add_to_cart event", { event });
|
|
757
|
-
const
|
|
1014
|
+
const eventName = this.getEventName(adapterParams, "add_to_cart");
|
|
1015
|
+
const baseParams = {
|
|
758
1016
|
currency: event.currency || "INR",
|
|
759
1017
|
value: event.price * (event.quantity || 1),
|
|
760
1018
|
// Calculate total value
|
|
@@ -780,14 +1038,17 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
780
1038
|
user_id: event.user_id,
|
|
781
1039
|
user_properties: event.user_properties
|
|
782
1040
|
};
|
|
783
|
-
const
|
|
1041
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1042
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
784
1043
|
this.logger.debug("Sending add_to_cart event to gtag", {
|
|
1044
|
+
eventName,
|
|
785
1045
|
params: enhancedParams
|
|
786
1046
|
});
|
|
787
|
-
window.gtag?.("event",
|
|
1047
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
788
1048
|
}
|
|
789
|
-
trackFormStart() {
|
|
790
|
-
const
|
|
1049
|
+
trackFormStart(adapterParams) {
|
|
1050
|
+
const eventName = this.getEventName(adapterParams, "form_start");
|
|
1051
|
+
const baseParams = {
|
|
791
1052
|
batch_ordering_id: "",
|
|
792
1053
|
batch_page_id: "",
|
|
793
1054
|
engagement_time_msec: void 0,
|
|
@@ -805,14 +1066,13 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
805
1066
|
page_referrer: document.referrer,
|
|
806
1067
|
page_title: document.title
|
|
807
1068
|
};
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
this.enhanceWithAffiliateParams(params)
|
|
812
|
-
);
|
|
1069
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1070
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
1071
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
813
1072
|
}
|
|
814
|
-
trackCheckoutStarted(event) {
|
|
815
|
-
const
|
|
1073
|
+
trackCheckoutStarted(event, adapterParams) {
|
|
1074
|
+
const eventName = this.getEventName(adapterParams, "begin_checkout");
|
|
1075
|
+
const baseParams = {
|
|
816
1076
|
batch_ordering_id: "",
|
|
817
1077
|
batch_page_id: "",
|
|
818
1078
|
currency: event.currency || "INR",
|
|
@@ -835,14 +1095,13 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
835
1095
|
item_variant: item.variant
|
|
836
1096
|
}))
|
|
837
1097
|
};
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
this.enhanceWithAffiliateParams(params)
|
|
842
|
-
);
|
|
1098
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1099
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
1100
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
843
1101
|
}
|
|
844
|
-
trackFormSubmission(event) {
|
|
845
|
-
const
|
|
1102
|
+
trackFormSubmission(event, adapterParams) {
|
|
1103
|
+
const eventName = this.getEventName(adapterParams, "form_submit");
|
|
1104
|
+
const baseParams = {
|
|
846
1105
|
batch_ordering_id: "",
|
|
847
1106
|
batch_page_id: "",
|
|
848
1107
|
engagement_time_msec: void 0,
|
|
@@ -856,14 +1115,13 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
856
1115
|
page_referrer: document.referrer,
|
|
857
1116
|
page_title: document.title
|
|
858
1117
|
};
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
this.enhanceWithAffiliateParams(params)
|
|
863
|
-
);
|
|
1118
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1119
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
1120
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
864
1121
|
}
|
|
865
|
-
trackSearch(event) {
|
|
866
|
-
const
|
|
1122
|
+
trackSearch(event, adapterParams) {
|
|
1123
|
+
const eventName = this.getEventName(adapterParams, "search");
|
|
1124
|
+
const baseParams = {
|
|
867
1125
|
batch_ordering_id: "",
|
|
868
1126
|
batch_page_id: "",
|
|
869
1127
|
engagement_time_msec: void 0,
|
|
@@ -875,14 +1133,17 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
875
1133
|
page_title: document.title,
|
|
876
1134
|
search_term: event.searchTerm
|
|
877
1135
|
};
|
|
878
|
-
|
|
1136
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1137
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
1138
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
879
1139
|
}
|
|
880
1140
|
/**
|
|
881
1141
|
* Track a checkout completed event
|
|
882
1142
|
* @param event The checkout completed event
|
|
883
1143
|
*/
|
|
884
|
-
trackCheckoutCompleted(event) {
|
|
885
|
-
const
|
|
1144
|
+
trackCheckoutCompleted(event, adapterParams) {
|
|
1145
|
+
const eventName = this.getEventName(adapterParams, "purchase");
|
|
1146
|
+
const baseParams = {
|
|
886
1147
|
transaction_id: event.orderId,
|
|
887
1148
|
currency: event.currency || "INR",
|
|
888
1149
|
value: event.cartValue,
|
|
@@ -894,22 +1155,28 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
894
1155
|
item_variant: item.variant
|
|
895
1156
|
}))
|
|
896
1157
|
};
|
|
897
|
-
|
|
1158
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1159
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
1160
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
898
1161
|
}
|
|
899
1162
|
/**
|
|
900
1163
|
* Track a custom event
|
|
901
1164
|
* @param event The custom event
|
|
902
1165
|
*/
|
|
903
|
-
trackCustomEvent(event) {
|
|
904
|
-
const
|
|
905
|
-
|
|
1166
|
+
trackCustomEvent(event, adapterParams) {
|
|
1167
|
+
const eventName = this.getEventName(adapterParams, event.name);
|
|
1168
|
+
const baseParams = event.properties || {};
|
|
1169
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1170
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
1171
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
906
1172
|
}
|
|
907
1173
|
/**
|
|
908
1174
|
* Track an add payment info event
|
|
909
1175
|
* @param event The add payment info event
|
|
910
1176
|
*/
|
|
911
|
-
trackAddPaymentInfo(event) {
|
|
912
|
-
const
|
|
1177
|
+
trackAddPaymentInfo(event, adapterParams) {
|
|
1178
|
+
const eventName = this.getEventName(adapterParams, "add_payment_info");
|
|
1179
|
+
const baseParams = {
|
|
913
1180
|
currency: event.currency || "INR",
|
|
914
1181
|
value: event.cartValue,
|
|
915
1182
|
payment_type: event.paymentType || "",
|
|
@@ -921,18 +1188,17 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
921
1188
|
item_variant: item.variant
|
|
922
1189
|
}))
|
|
923
1190
|
};
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
this.enhanceWithAffiliateParams(params)
|
|
928
|
-
);
|
|
1191
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1192
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
1193
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
929
1194
|
}
|
|
930
1195
|
/**
|
|
931
1196
|
* Track a view content event
|
|
932
1197
|
* @param event The view content event
|
|
933
1198
|
*/
|
|
934
|
-
trackViewContent(event) {
|
|
935
|
-
const
|
|
1199
|
+
trackViewContent(event, adapterParams) {
|
|
1200
|
+
const eventName = this.getEventName(adapterParams, "view_item");
|
|
1201
|
+
const baseParams = {
|
|
936
1202
|
currency: event.currency || "USD",
|
|
937
1203
|
value: event.value || 0,
|
|
938
1204
|
items: event.items?.map((item) => ({
|
|
@@ -961,18 +1227,17 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
961
1227
|
user_id: event.user_id,
|
|
962
1228
|
user_properties: event.user_properties
|
|
963
1229
|
};
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
this.enhanceWithAffiliateParams(params)
|
|
968
|
-
);
|
|
1230
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1231
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
1232
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
969
1233
|
}
|
|
970
1234
|
/**
|
|
971
1235
|
* Track a purchase event
|
|
972
1236
|
* @param event The purchase event
|
|
973
1237
|
*/
|
|
974
|
-
trackPurchase(event) {
|
|
975
|
-
const
|
|
1238
|
+
trackPurchase(event, adapterParams) {
|
|
1239
|
+
const eventName = this.getEventName(adapterParams, "purchase");
|
|
1240
|
+
const baseParams = {
|
|
976
1241
|
transaction_id: event.transaction_id,
|
|
977
1242
|
value: event.value,
|
|
978
1243
|
currency: event.currency || "USD",
|
|
@@ -1005,14 +1270,17 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
1005
1270
|
user_id: event.user_id,
|
|
1006
1271
|
user_properties: event.user_properties
|
|
1007
1272
|
};
|
|
1008
|
-
|
|
1273
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1274
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
1275
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1009
1276
|
}
|
|
1010
1277
|
/**
|
|
1011
1278
|
* Track a view search results event
|
|
1012
1279
|
* @param event The view search results event
|
|
1013
1280
|
*/
|
|
1014
|
-
trackViewSearchResults(event) {
|
|
1015
|
-
const
|
|
1281
|
+
trackViewSearchResults(event, adapterParams) {
|
|
1282
|
+
const eventName = this.getEventName(adapterParams, "view_search_results");
|
|
1283
|
+
const baseParams = {
|
|
1016
1284
|
search_term: event.search_term,
|
|
1017
1285
|
// GA4-specific parameters
|
|
1018
1286
|
batch_ordering_id: event.batch_ordering_id || "",
|
|
@@ -1027,18 +1295,17 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
1027
1295
|
user_id: event.user_id,
|
|
1028
1296
|
user_properties: event.user_properties
|
|
1029
1297
|
};
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
this.enhanceWithAffiliateParams(params)
|
|
1034
|
-
);
|
|
1298
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1299
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
1300
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1035
1301
|
}
|
|
1036
1302
|
/**
|
|
1037
1303
|
* Track an order placed event
|
|
1038
1304
|
* @param event The order placed event
|
|
1039
1305
|
*/
|
|
1040
|
-
trackOrderPlaced(event) {
|
|
1041
|
-
const
|
|
1306
|
+
trackOrderPlaced(event, adapterParams) {
|
|
1307
|
+
const eventName = this.getEventName(adapterParams, "purchase");
|
|
1308
|
+
const baseParams = {
|
|
1042
1309
|
transaction_id: event.order_id,
|
|
1043
1310
|
value: event.total_amount,
|
|
1044
1311
|
currency: event.currency || "USD",
|
|
@@ -1064,14 +1331,17 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
1064
1331
|
user_id: event.user_id,
|
|
1065
1332
|
user_properties: event.user_properties
|
|
1066
1333
|
};
|
|
1067
|
-
|
|
1334
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1335
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
1336
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1068
1337
|
}
|
|
1069
1338
|
/**
|
|
1070
1339
|
* Track a begin checkout event
|
|
1071
1340
|
* @param event The begin checkout event
|
|
1072
1341
|
*/
|
|
1073
|
-
trackBeginCheckout(event) {
|
|
1074
|
-
const
|
|
1342
|
+
trackBeginCheckout(event, adapterParams) {
|
|
1343
|
+
const eventName = this.getEventName(adapterParams, "begin_checkout");
|
|
1344
|
+
const baseParams = {
|
|
1075
1345
|
currency: event.currency || "USD",
|
|
1076
1346
|
value: event.value || 0,
|
|
1077
1347
|
coupon: event.coupon,
|
|
@@ -1101,11 +1371,9 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
1101
1371
|
user_id: event.user_id,
|
|
1102
1372
|
user_properties: event.user_properties
|
|
1103
1373
|
};
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
this.enhanceWithAffiliateParams(params)
|
|
1108
|
-
);
|
|
1374
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1375
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
1376
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1109
1377
|
}
|
|
1110
1378
|
/**
|
|
1111
1379
|
* Convert an event to Google Analytics parameters
|
|
@@ -1135,44 +1403,9 @@ var EventNames = {
|
|
|
1135
1403
|
SEARCH: "Search",
|
|
1136
1404
|
// User events
|
|
1137
1405
|
USER_SIGNED_UP: "User Signed Up",
|
|
1138
|
-
USER_LOGGED_IN: "User Logged In"
|
|
1139
|
-
// MoEngage events
|
|
1140
|
-
ITEM_PURCHASED: "Item Purchased",
|
|
1141
|
-
UPDATE_CART: "Update Cart",
|
|
1142
|
-
CUSTOMER_REGISTERED: "Customer Registered",
|
|
1143
|
-
CUSTOMER_LOGGED_IN: "Customer Logged In",
|
|
1144
|
-
SHOPIFY_CHECKOUT_UPDATED: "Shopify - Checkout Updated",
|
|
1145
|
-
SHOPIFY_ABANDONED_CHECKOUT: "Shopify - Abandoned Checkout",
|
|
1146
|
-
SHOPIFY_ORDER_FULFILLED: "Shopify - Order Fulfilled",
|
|
1147
|
-
SHOPIFY_CHECKOUT_STARTED: "Shopify - Checkout Started",
|
|
1148
|
-
SHOPIFY_ADD_TO_CART: "Shopify - Add To Cart",
|
|
1149
|
-
SHOPIFY_REMOVED_FROM_CART: "Shopify - Removed From Cart",
|
|
1150
|
-
SHOPIFY_UPDATE_CART: "Shopify - Update Cart",
|
|
1151
|
-
SPINFORM_RESULT: "Spinform Result",
|
|
1152
|
-
COUPON_COPIED: "Coupon Copied",
|
|
1153
|
-
STARTED_CHECKOUT_GK: "Started Checkout GK",
|
|
1154
|
-
MOBILE_ADDED_GK: "Mobile Added GK",
|
|
1155
|
-
ADDRESS_SELECTED_GK: "Address Selected GK",
|
|
1156
|
-
ADDRESS_COMPLETED_GK: "Address Completed GK",
|
|
1157
|
-
PAYMENT_METHOD_SELECTED_GK: "Payment Method Selected GK",
|
|
1158
|
-
PAYMENT_COMPLETED_GK: "Payment Completed GK",
|
|
1159
|
-
ORDER_SUCCESS: "Order Success",
|
|
1160
|
-
ORDER_COMPLETED: "Order Completed",
|
|
1161
|
-
PIN_CODE_ADDED_GK: "PIN Code Added GK",
|
|
1162
|
-
ADDRESS_ADDED_GK: "Address Added GK",
|
|
1163
|
-
KP_MP_PHONE_NUMBER_LOGGED_IN: "KP MP Phone Number Logged In",
|
|
1164
|
-
KP_PHONE_NUMBER_LOGGED_IN: "KP Phone Number Logged In",
|
|
1165
|
-
KP_MP_SHOPIFY_LOGGED_IN: "KP MP Shopify Logged In",
|
|
1166
|
-
KP_MP_SUCCESSFULLY_LOGGED_OUT: "KP MP Successfully Logged Out",
|
|
1167
|
-
KP_WHATSAPP_LOGGED_IN: "KP Whatsapp Logged In",
|
|
1168
|
-
KP_MP_TRUECALLER_LOGGED_IN: "KP MP Truecaller Logged In",
|
|
1169
|
-
KP_MP_WHATSAPP_LOGGED_IN: "KP MP Whatsapp Logged In",
|
|
1170
|
-
KP_TRUECALLER_LOGGED_IN: "KP Truecaller Logged In",
|
|
1171
|
-
KP_SHOPIFY_LOGGED_IN: "KP Shopify Logged In",
|
|
1172
|
-
KP_SUCCESSFULLY_LOGGED_OUT: "KP Successfully Logged Out"
|
|
1406
|
+
USER_LOGGED_IN: "User Logged In"
|
|
1173
1407
|
};
|
|
1174
1408
|
var DEFAULT_CURRENCY = "INR";
|
|
1175
|
-
var HARDCODED_HANDLE = "ryze-gums";
|
|
1176
1409
|
|
|
1177
1410
|
// src/adapters/moengage-adapter.ts
|
|
1178
1411
|
import moengage from "@moengage/web-sdk";
|
|
@@ -1224,8 +1457,9 @@ var MoengageAdapter = class extends BaseAdapter {
|
|
|
1224
1457
|
/**
|
|
1225
1458
|
* Track an event with MoenGage SDK
|
|
1226
1459
|
* @param event The event to track
|
|
1460
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1227
1461
|
*/
|
|
1228
|
-
async trackEvent(event) {
|
|
1462
|
+
async trackEvent(event, adapterParams) {
|
|
1229
1463
|
if (!this.initialized || typeof window === "undefined" || !this.sdk) {
|
|
1230
1464
|
this.logger.warn(
|
|
1231
1465
|
"Cannot track event, adapter not initialized or SDK not available",
|
|
@@ -1241,106 +1475,147 @@ var MoengageAdapter = class extends BaseAdapter {
|
|
|
1241
1475
|
this.logger.debug("Tracking event", { eventType: event.type });
|
|
1242
1476
|
switch (event.type) {
|
|
1243
1477
|
case "page_view" /* PAGE_VIEW */:
|
|
1244
|
-
this.trackPageView(event);
|
|
1478
|
+
this.trackPageView(event, adapterParams);
|
|
1245
1479
|
break;
|
|
1246
1480
|
case "button_click" /* BUTTON_CLICK */:
|
|
1247
|
-
this.trackButtonClick(event);
|
|
1481
|
+
this.trackButtonClick(event, adapterParams);
|
|
1248
1482
|
break;
|
|
1249
1483
|
case "form_submission" /* FORM_SUBMISSION */:
|
|
1250
|
-
this.trackFormSubmission(event);
|
|
1484
|
+
this.trackFormSubmission(event, adapterParams);
|
|
1251
1485
|
break;
|
|
1252
1486
|
case "product_view" /* PRODUCT_VIEW */:
|
|
1253
|
-
this.trackProductView(event);
|
|
1487
|
+
this.trackProductView(event, adapterParams);
|
|
1254
1488
|
break;
|
|
1255
1489
|
case "add_to_cart" /* ADD_TO_CART */:
|
|
1256
|
-
this.trackAddToCart(event);
|
|
1490
|
+
this.trackAddToCart(event, adapterParams);
|
|
1257
1491
|
break;
|
|
1258
1492
|
case "remove_from_cart" /* REMOVE_FROM_CART */:
|
|
1259
|
-
this.trackRemoveFromCart(event);
|
|
1493
|
+
this.trackRemoveFromCart(event, adapterParams);
|
|
1260
1494
|
break;
|
|
1261
1495
|
case "checkout_started" /* CHECKOUT_STARTED */:
|
|
1262
|
-
this.trackCheckoutStarted(
|
|
1496
|
+
this.trackCheckoutStarted(
|
|
1497
|
+
event,
|
|
1498
|
+
adapterParams
|
|
1499
|
+
);
|
|
1263
1500
|
break;
|
|
1264
1501
|
case "checkout_completed" /* CHECKOUT_COMPLETED */:
|
|
1265
|
-
this.trackCheckoutCompleted(
|
|
1502
|
+
this.trackCheckoutCompleted(
|
|
1503
|
+
event,
|
|
1504
|
+
adapterParams
|
|
1505
|
+
);
|
|
1266
1506
|
break;
|
|
1267
1507
|
case "search" /* SEARCH */:
|
|
1268
|
-
this.trackSearch(event);
|
|
1508
|
+
this.trackSearch(event, adapterParams);
|
|
1269
1509
|
break;
|
|
1270
1510
|
case "user_signup" /* USER_SIGNUP */:
|
|
1271
|
-
this.trackUserSignup(event);
|
|
1511
|
+
this.trackUserSignup(event, adapterParams);
|
|
1272
1512
|
break;
|
|
1273
1513
|
case "user_login" /* USER_LOGIN */:
|
|
1274
|
-
this.trackUserLogin(event);
|
|
1514
|
+
this.trackUserLogin(event, adapterParams);
|
|
1275
1515
|
break;
|
|
1276
1516
|
case "custom" /* CUSTOM */:
|
|
1277
|
-
this.trackCustomEvent(event);
|
|
1517
|
+
this.trackCustomEvent(event, adapterParams);
|
|
1278
1518
|
break;
|
|
1279
1519
|
default:
|
|
1280
|
-
this.
|
|
1520
|
+
const eventName = this.getEventName(adapterParams, event.type);
|
|
1521
|
+
const baseParams = this.eventToParams(event);
|
|
1522
|
+
const enhancedParams = this.mergeEventData(baseParams, adapterParams);
|
|
1523
|
+
this.sdk.track_event(eventName, enhancedParams);
|
|
1281
1524
|
break;
|
|
1282
1525
|
}
|
|
1283
1526
|
}
|
|
1284
1527
|
/**
|
|
1285
1528
|
* Track a page view event
|
|
1286
1529
|
* @param event The page view event
|
|
1530
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1287
1531
|
*/
|
|
1288
|
-
trackPageView(event) {
|
|
1532
|
+
trackPageView(event, adapterParams) {
|
|
1289
1533
|
if (!this.sdk?.track_event) {
|
|
1290
1534
|
this.logger.warn("track_event not available for PageView event");
|
|
1291
1535
|
return;
|
|
1292
1536
|
}
|
|
1293
|
-
const
|
|
1537
|
+
const eventName = this.getEventName(adapterParams, EventNames.PAGE_VIEWED);
|
|
1538
|
+
const baseEventData = {
|
|
1294
1539
|
page_path: event.path,
|
|
1295
1540
|
page_title: event.title,
|
|
1296
1541
|
page_url: window.location.href,
|
|
1297
1542
|
referrer: event.referrer || document.referrer
|
|
1298
1543
|
};
|
|
1299
|
-
this.
|
|
1300
|
-
this.
|
|
1544
|
+
const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
|
|
1545
|
+
this.sdk.track_event(eventName, enhancedEventData);
|
|
1546
|
+
this.logger.debug("PageView event tracked", {
|
|
1547
|
+
eventName,
|
|
1548
|
+
eventData: enhancedEventData
|
|
1549
|
+
});
|
|
1301
1550
|
}
|
|
1302
1551
|
/**
|
|
1303
1552
|
* Track a button click event
|
|
1304
1553
|
* @param event The button click event
|
|
1554
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1305
1555
|
*/
|
|
1306
|
-
trackButtonClick(event) {
|
|
1307
|
-
this.
|
|
1556
|
+
trackButtonClick(event, adapterParams) {
|
|
1557
|
+
const eventName = this.getEventName(
|
|
1558
|
+
adapterParams,
|
|
1559
|
+
EventNames.BUTTON_CLICKED
|
|
1560
|
+
);
|
|
1561
|
+
const baseEventData = {
|
|
1308
1562
|
button_id: event.buttonId,
|
|
1309
1563
|
button_text: event.buttonText,
|
|
1310
1564
|
location: event.location
|
|
1311
|
-
}
|
|
1565
|
+
};
|
|
1566
|
+
const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
|
|
1567
|
+
this.sdk?.track_event(eventName, enhancedEventData);
|
|
1312
1568
|
}
|
|
1313
1569
|
/**
|
|
1314
1570
|
* Track a form submission event
|
|
1315
1571
|
* @param event The form submission event
|
|
1572
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1316
1573
|
*/
|
|
1317
|
-
trackFormSubmission(event) {
|
|
1318
|
-
this.
|
|
1574
|
+
trackFormSubmission(event, adapterParams) {
|
|
1575
|
+
const eventName = this.getEventName(
|
|
1576
|
+
adapterParams,
|
|
1577
|
+
EventNames.FORM_SUBMITTED
|
|
1578
|
+
);
|
|
1579
|
+
const baseEventData = {
|
|
1319
1580
|
form_id: event.formId,
|
|
1320
1581
|
form_name: event.formName,
|
|
1321
1582
|
success: event.success
|
|
1322
|
-
}
|
|
1583
|
+
};
|
|
1584
|
+
const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
|
|
1585
|
+
this.sdk?.track_event(eventName, enhancedEventData);
|
|
1323
1586
|
}
|
|
1324
1587
|
/**
|
|
1325
1588
|
* Track a product view event
|
|
1326
1589
|
* @param event The product view event
|
|
1590
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1327
1591
|
*/
|
|
1328
|
-
trackProductView(event) {
|
|
1329
|
-
this.
|
|
1592
|
+
trackProductView(event, adapterParams) {
|
|
1593
|
+
const eventName = this.getEventName(
|
|
1594
|
+
adapterParams,
|
|
1595
|
+
EventNames.PRODUCT_VIEWED
|
|
1596
|
+
);
|
|
1597
|
+
const baseEventData = {
|
|
1330
1598
|
product_id: event.productId,
|
|
1331
1599
|
product_name: event.productName,
|
|
1332
1600
|
price: event.price,
|
|
1333
1601
|
currency: event.currency || DEFAULT_CURRENCY,
|
|
1334
1602
|
category: event.category
|
|
1335
|
-
}
|
|
1603
|
+
};
|
|
1604
|
+
const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
|
|
1605
|
+
this.sdk?.track_event(eventName, enhancedEventData);
|
|
1336
1606
|
}
|
|
1337
1607
|
/**
|
|
1338
1608
|
* Track an add to cart event
|
|
1339
1609
|
* @param event The add to cart event
|
|
1610
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1340
1611
|
*/
|
|
1341
|
-
trackAddToCart(event) {
|
|
1612
|
+
trackAddToCart(event, adapterParams) {
|
|
1342
1613
|
const quantity = event.quantity ?? 1;
|
|
1343
|
-
this.
|
|
1614
|
+
const eventName = this.getEventName(
|
|
1615
|
+
adapterParams,
|
|
1616
|
+
EventNames.ADDED_TO_CART
|
|
1617
|
+
);
|
|
1618
|
+
const baseEventData = {
|
|
1344
1619
|
product_id: event.productId,
|
|
1345
1620
|
product_name: event.productName,
|
|
1346
1621
|
price: event.price,
|
|
@@ -1348,14 +1623,21 @@ var MoengageAdapter = class extends BaseAdapter {
|
|
|
1348
1623
|
quantity,
|
|
1349
1624
|
variant: event.variant,
|
|
1350
1625
|
total_value: event.price * quantity
|
|
1351
|
-
}
|
|
1626
|
+
};
|
|
1627
|
+
const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
|
|
1628
|
+
this.sdk?.track_event(eventName, enhancedEventData);
|
|
1352
1629
|
}
|
|
1353
1630
|
/**
|
|
1354
1631
|
* Track a remove from cart event
|
|
1355
1632
|
* @param event The remove from cart event
|
|
1633
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1356
1634
|
*/
|
|
1357
|
-
trackRemoveFromCart(event) {
|
|
1358
|
-
this.
|
|
1635
|
+
trackRemoveFromCart(event, adapterParams) {
|
|
1636
|
+
const eventName = this.getEventName(
|
|
1637
|
+
adapterParams,
|
|
1638
|
+
EventNames.REMOVED_FROM_CART
|
|
1639
|
+
);
|
|
1640
|
+
const baseEventData = {
|
|
1359
1641
|
product_id: event.productId,
|
|
1360
1642
|
product_name: event.productName,
|
|
1361
1643
|
price: event.price,
|
|
@@ -1363,14 +1645,21 @@ var MoengageAdapter = class extends BaseAdapter {
|
|
|
1363
1645
|
quantity: event.quantity,
|
|
1364
1646
|
variant: event.variant,
|
|
1365
1647
|
total_value: event.price * event.quantity
|
|
1366
|
-
}
|
|
1648
|
+
};
|
|
1649
|
+
const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
|
|
1650
|
+
this.sdk?.track_event(eventName, enhancedEventData);
|
|
1367
1651
|
}
|
|
1368
1652
|
/**
|
|
1369
1653
|
* Track a checkout started event
|
|
1370
1654
|
* @param event The checkout started event
|
|
1655
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1371
1656
|
*/
|
|
1372
|
-
trackCheckoutStarted(event) {
|
|
1373
|
-
this.
|
|
1657
|
+
trackCheckoutStarted(event, adapterParams) {
|
|
1658
|
+
const eventName = this.getEventName(
|
|
1659
|
+
adapterParams,
|
|
1660
|
+
EventNames.CHECKOUT_STARTED
|
|
1661
|
+
);
|
|
1662
|
+
const baseEventData = {
|
|
1374
1663
|
cart_value: event.cartValue,
|
|
1375
1664
|
currency: event.currency || DEFAULT_CURRENCY,
|
|
1376
1665
|
item_count: event.itemCount,
|
|
@@ -1381,14 +1670,21 @@ var MoengageAdapter = class extends BaseAdapter {
|
|
|
1381
1670
|
quantity: item.quantity,
|
|
1382
1671
|
variant: item.variant
|
|
1383
1672
|
}))
|
|
1384
|
-
}
|
|
1673
|
+
};
|
|
1674
|
+
const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
|
|
1675
|
+
this.sdk?.track_event(eventName, enhancedEventData);
|
|
1385
1676
|
}
|
|
1386
1677
|
/**
|
|
1387
1678
|
* Track a checkout completed event
|
|
1388
1679
|
* @param event The checkout completed event
|
|
1680
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1389
1681
|
*/
|
|
1390
|
-
trackCheckoutCompleted(event) {
|
|
1391
|
-
this.
|
|
1682
|
+
trackCheckoutCompleted(event, adapterParams) {
|
|
1683
|
+
const eventName = this.getEventName(
|
|
1684
|
+
adapterParams,
|
|
1685
|
+
EventNames.PURCHASE_COMPLETED
|
|
1686
|
+
);
|
|
1687
|
+
const baseEventData = {
|
|
1392
1688
|
order_id: event.orderId,
|
|
1393
1689
|
cart_value: event.cartValue,
|
|
1394
1690
|
currency: event.currency || DEFAULT_CURRENCY,
|
|
@@ -1400,28 +1696,41 @@ var MoengageAdapter = class extends BaseAdapter {
|
|
|
1400
1696
|
quantity: item.quantity,
|
|
1401
1697
|
variant: item.variant
|
|
1402
1698
|
}))
|
|
1403
|
-
}
|
|
1699
|
+
};
|
|
1700
|
+
const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
|
|
1701
|
+
this.sdk?.track_event(eventName, enhancedEventData);
|
|
1404
1702
|
}
|
|
1405
1703
|
/**
|
|
1406
1704
|
* Track a search event
|
|
1407
1705
|
* @param event The search event
|
|
1706
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1408
1707
|
*/
|
|
1409
|
-
trackSearch(event) {
|
|
1410
|
-
this.
|
|
1708
|
+
trackSearch(event, adapterParams) {
|
|
1709
|
+
const eventName = this.getEventName(adapterParams, EventNames.SEARCH);
|
|
1710
|
+
const baseEventData = {
|
|
1411
1711
|
search_term: event.searchTerm,
|
|
1412
1712
|
results_count: event.resultsCount
|
|
1413
|
-
}
|
|
1713
|
+
};
|
|
1714
|
+
const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
|
|
1715
|
+
this.sdk?.track_event(eventName, enhancedEventData);
|
|
1414
1716
|
}
|
|
1415
1717
|
/**
|
|
1416
1718
|
* Track a user signup event
|
|
1417
1719
|
* @param event The user signup event
|
|
1720
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1418
1721
|
*/
|
|
1419
|
-
trackUserSignup(event) {
|
|
1420
|
-
this.
|
|
1722
|
+
trackUserSignup(event, adapterParams) {
|
|
1723
|
+
const eventName = this.getEventName(
|
|
1724
|
+
adapterParams,
|
|
1725
|
+
EventNames.USER_SIGNED_UP
|
|
1726
|
+
);
|
|
1727
|
+
const baseEventData = {
|
|
1421
1728
|
user_id: event.userId,
|
|
1422
1729
|
method: event.method,
|
|
1423
1730
|
success: event.success
|
|
1424
|
-
}
|
|
1731
|
+
};
|
|
1732
|
+
const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
|
|
1733
|
+
this.sdk?.track_event(eventName, enhancedEventData);
|
|
1425
1734
|
if (event.userId && this.getConfig("enableUserIdentification", true)) {
|
|
1426
1735
|
this.sdk?.add_unique_user_id(event.userId);
|
|
1427
1736
|
}
|
|
@@ -1429,13 +1738,20 @@ var MoengageAdapter = class extends BaseAdapter {
|
|
|
1429
1738
|
/**
|
|
1430
1739
|
* Track a user login event
|
|
1431
1740
|
* @param event The user login event
|
|
1741
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1432
1742
|
*/
|
|
1433
|
-
trackUserLogin(event) {
|
|
1434
|
-
this.
|
|
1743
|
+
trackUserLogin(event, adapterParams) {
|
|
1744
|
+
const eventName = this.getEventName(
|
|
1745
|
+
adapterParams,
|
|
1746
|
+
EventNames.USER_LOGGED_IN
|
|
1747
|
+
);
|
|
1748
|
+
const baseEventData = {
|
|
1435
1749
|
user_id: event.userId,
|
|
1436
1750
|
method: event.method,
|
|
1437
1751
|
success: event.success
|
|
1438
|
-
}
|
|
1752
|
+
};
|
|
1753
|
+
const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
|
|
1754
|
+
this.sdk?.track_event(eventName, enhancedEventData);
|
|
1439
1755
|
if (event.userId && this.getConfig("enableUserIdentification", true)) {
|
|
1440
1756
|
this.sdk?.add_unique_user_id(event.userId);
|
|
1441
1757
|
}
|
|
@@ -1443,9 +1759,13 @@ var MoengageAdapter = class extends BaseAdapter {
|
|
|
1443
1759
|
/**
|
|
1444
1760
|
* Track a custom event
|
|
1445
1761
|
* @param event The custom event
|
|
1762
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1446
1763
|
*/
|
|
1447
|
-
trackCustomEvent(event) {
|
|
1448
|
-
this.
|
|
1764
|
+
trackCustomEvent(event, adapterParams) {
|
|
1765
|
+
const eventName = this.getEventName(adapterParams, event.name);
|
|
1766
|
+
const baseEventData = event.properties || {};
|
|
1767
|
+
const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
|
|
1768
|
+
this.sdk?.track_event(eventName, enhancedEventData);
|
|
1449
1769
|
}
|
|
1450
1770
|
/**
|
|
1451
1771
|
* Convert an event to MoenGage parameters
|
|
@@ -1532,8 +1852,9 @@ var PostHogAdapter = class extends BaseAdapter {
|
|
|
1532
1852
|
/**
|
|
1533
1853
|
* Track an event with PostHog
|
|
1534
1854
|
* @param event The event to track
|
|
1855
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1535
1856
|
*/
|
|
1536
|
-
async trackEvent(event) {
|
|
1857
|
+
async trackEvent(event, adapterParams) {
|
|
1537
1858
|
if (!this.initialized || typeof window === "undefined" || !window.posthog) {
|
|
1538
1859
|
this.logger.warn(
|
|
1539
1860
|
"Cannot track event, adapter not initialized or posthog not available",
|
|
@@ -1549,74 +1870,81 @@ var PostHogAdapter = class extends BaseAdapter {
|
|
|
1549
1870
|
this.logger.debug("Tracking event", { eventType: event.type });
|
|
1550
1871
|
switch (event.type) {
|
|
1551
1872
|
case "page_view" /* PAGE_VIEW */:
|
|
1552
|
-
this.trackPageView(event);
|
|
1873
|
+
this.trackPageView(event, adapterParams);
|
|
1553
1874
|
break;
|
|
1554
1875
|
case "product_view" /* PRODUCT_VIEW */:
|
|
1555
|
-
this.trackProductView(event);
|
|
1876
|
+
this.trackProductView(event, adapterParams);
|
|
1556
1877
|
break;
|
|
1557
1878
|
case "add_to_cart" /* ADD_TO_CART */:
|
|
1558
|
-
this.trackAddToCart(event);
|
|
1879
|
+
this.trackAddToCart(event, adapterParams);
|
|
1559
1880
|
break;
|
|
1560
1881
|
case "checkout_started" /* CHECKOUT_STARTED */:
|
|
1561
|
-
this.trackCheckoutStarted(event);
|
|
1882
|
+
this.trackCheckoutStarted(event, adapterParams);
|
|
1562
1883
|
break;
|
|
1563
1884
|
case "checkout_completed" /* CHECKOUT_COMPLETED */:
|
|
1564
|
-
this.trackCheckoutCompleted(event);
|
|
1885
|
+
this.trackCheckoutCompleted(event, adapterParams);
|
|
1565
1886
|
break;
|
|
1566
1887
|
case "add_payment_info" /* ADD_PAYMENT_INFO */:
|
|
1567
|
-
this.trackAddPaymentInfo(event);
|
|
1888
|
+
this.trackAddPaymentInfo(event, adapterParams);
|
|
1568
1889
|
break;
|
|
1569
1890
|
case "search" /* SEARCH */:
|
|
1570
|
-
this.trackSearch(event);
|
|
1891
|
+
this.trackSearch(event, adapterParams);
|
|
1571
1892
|
break;
|
|
1572
1893
|
default:
|
|
1573
|
-
const
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
|
|
1894
|
+
const eventName = this.getEventName(adapterParams, event.type);
|
|
1895
|
+
const baseParams = this.eventToParams(event);
|
|
1896
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1897
|
+
const enhancedParams = this.mergeEventData(
|
|
1898
|
+
affiliateParams,
|
|
1899
|
+
adapterParams
|
|
1577
1900
|
);
|
|
1901
|
+
window.posthog?.capture(eventName, enhancedParams);
|
|
1578
1902
|
break;
|
|
1579
1903
|
}
|
|
1580
1904
|
}
|
|
1581
1905
|
/**
|
|
1582
1906
|
* Track a page view event
|
|
1583
1907
|
* @param event The page view event
|
|
1908
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1584
1909
|
*/
|
|
1585
|
-
trackPageView(event) {
|
|
1586
|
-
const
|
|
1910
|
+
trackPageView(event, adapterParams) {
|
|
1911
|
+
const eventName = this.getEventName(adapterParams, "$pageview");
|
|
1912
|
+
const baseParams = {
|
|
1587
1913
|
path: event.path,
|
|
1588
1914
|
title: event.title,
|
|
1589
1915
|
referrer: event.referrer
|
|
1590
1916
|
};
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
);
|
|
1917
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1918
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
1919
|
+
window.posthog?.capture(eventName, enhancedParams);
|
|
1595
1920
|
}
|
|
1596
1921
|
/**
|
|
1597
1922
|
* Track a product view event
|
|
1598
1923
|
* @param event The product view event
|
|
1924
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1599
1925
|
*/
|
|
1600
|
-
trackProductView(event) {
|
|
1601
|
-
const
|
|
1926
|
+
trackProductView(event, adapterParams) {
|
|
1927
|
+
const eventName = this.getEventName(adapterParams, "product_viewed");
|
|
1928
|
+
const baseParams = {
|
|
1602
1929
|
product_id: event.productId,
|
|
1603
1930
|
product_name: event.productName,
|
|
1604
1931
|
category: event.category,
|
|
1605
1932
|
price: event.price,
|
|
1606
1933
|
currency: event.currency || "INR"
|
|
1607
1934
|
};
|
|
1608
|
-
|
|
1609
|
-
|
|
1610
|
-
|
|
1611
|
-
);
|
|
1935
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1936
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
1937
|
+
window.posthog?.capture(eventName, enhancedParams);
|
|
1612
1938
|
}
|
|
1613
1939
|
/**
|
|
1614
1940
|
* Track an add to cart event
|
|
1615
1941
|
* @param event The add to cart event
|
|
1942
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1616
1943
|
*/
|
|
1617
|
-
trackAddToCart(event) {
|
|
1944
|
+
trackAddToCart(event, adapterParams) {
|
|
1618
1945
|
this.logger.debug("Handling ADD_TO_CART event", { event });
|
|
1619
|
-
const
|
|
1946
|
+
const eventName = this.getEventName(adapterParams, "add_to_cart");
|
|
1947
|
+
const baseParams = {
|
|
1620
1948
|
product_id: event.productId,
|
|
1621
1949
|
product_name: event.productName,
|
|
1622
1950
|
price: event.price,
|
|
@@ -1624,23 +1952,27 @@ var PostHogAdapter = class extends BaseAdapter {
|
|
|
1624
1952
|
quantity: event.quantity,
|
|
1625
1953
|
variant: event.variant
|
|
1626
1954
|
};
|
|
1627
|
-
this.
|
|
1955
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1956
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
1957
|
+
this.logger.debug("Sending to PostHog with params", {
|
|
1958
|
+
eventName,
|
|
1959
|
+
params: enhancedParams
|
|
1960
|
+
});
|
|
1628
1961
|
if (!window.posthog) {
|
|
1629
1962
|
this.logger.error("window.posthog is not available");
|
|
1630
1963
|
return;
|
|
1631
1964
|
}
|
|
1632
|
-
window.posthog.capture(
|
|
1633
|
-
"add_to_cart",
|
|
1634
|
-
this.enhanceWithAffiliateParams(params)
|
|
1635
|
-
);
|
|
1965
|
+
window.posthog.capture(eventName, enhancedParams);
|
|
1636
1966
|
this.logger.debug("Event sent to PostHog successfully");
|
|
1637
1967
|
}
|
|
1638
1968
|
/**
|
|
1639
1969
|
* Track a checkout started event
|
|
1640
1970
|
* @param event The checkout started event
|
|
1971
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1641
1972
|
*/
|
|
1642
|
-
trackCheckoutStarted(event) {
|
|
1643
|
-
const
|
|
1973
|
+
trackCheckoutStarted(event, adapterParams) {
|
|
1974
|
+
const eventName = this.getEventName(adapterParams, "checkout_started");
|
|
1975
|
+
const baseParams = {
|
|
1644
1976
|
cart_value: event.cartValue,
|
|
1645
1977
|
currency: event.currency || "INR",
|
|
1646
1978
|
item_count: event.itemCount,
|
|
@@ -1652,17 +1984,18 @@ var PostHogAdapter = class extends BaseAdapter {
|
|
|
1652
1984
|
variant: item.variant
|
|
1653
1985
|
}))
|
|
1654
1986
|
};
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
|
|
1658
|
-
);
|
|
1987
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1988
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
1989
|
+
window.posthog?.capture(eventName, enhancedParams);
|
|
1659
1990
|
}
|
|
1660
1991
|
/**
|
|
1661
1992
|
* Track a checkout completed event
|
|
1662
1993
|
* @param event The checkout completed event
|
|
1994
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1663
1995
|
*/
|
|
1664
|
-
trackCheckoutCompleted(event) {
|
|
1665
|
-
const
|
|
1996
|
+
trackCheckoutCompleted(event, adapterParams) {
|
|
1997
|
+
const eventName = this.getEventName(adapterParams, "purchase");
|
|
1998
|
+
const baseParams = {
|
|
1666
1999
|
order_id: event.orderId,
|
|
1667
2000
|
cart_value: event.cartValue,
|
|
1668
2001
|
currency: event.currency || "INR",
|
|
@@ -1675,29 +2008,34 @@ var PostHogAdapter = class extends BaseAdapter {
|
|
|
1675
2008
|
variant: item.variant
|
|
1676
2009
|
}))
|
|
1677
2010
|
};
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
);
|
|
2011
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
2012
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
2013
|
+
window.posthog?.capture(eventName, enhancedParams);
|
|
1682
2014
|
}
|
|
1683
2015
|
/**
|
|
1684
2016
|
* Track a search event
|
|
1685
2017
|
* @param event The search event
|
|
2018
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1686
2019
|
*/
|
|
1687
|
-
trackSearch(event) {
|
|
1688
|
-
const
|
|
2020
|
+
trackSearch(event, adapterParams) {
|
|
2021
|
+
const eventName = this.getEventName(adapterParams, "search");
|
|
2022
|
+
const baseParams = {
|
|
1689
2023
|
search_term: event.searchTerm,
|
|
1690
2024
|
results_count: event.resultsCount,
|
|
1691
2025
|
content_ids: event.content_ids
|
|
1692
2026
|
};
|
|
1693
|
-
|
|
2027
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
2028
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
2029
|
+
window.posthog?.capture(eventName, enhancedParams);
|
|
1694
2030
|
}
|
|
1695
2031
|
/**
|
|
1696
2032
|
* Track an add payment info event
|
|
1697
2033
|
* @param event The add payment info event
|
|
2034
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1698
2035
|
*/
|
|
1699
|
-
trackAddPaymentInfo(event) {
|
|
1700
|
-
const
|
|
2036
|
+
trackAddPaymentInfo(event, adapterParams) {
|
|
2037
|
+
const eventName = this.getEventName(adapterParams, "add_payment_info");
|
|
2038
|
+
const baseParams = {
|
|
1701
2039
|
cart_value: event.cartValue,
|
|
1702
2040
|
currency: event.currency || "INR",
|
|
1703
2041
|
payment_type: event.paymentType,
|
|
@@ -1710,10 +2048,9 @@ var PostHogAdapter = class extends BaseAdapter {
|
|
|
1710
2048
|
variant: item.variant
|
|
1711
2049
|
}))
|
|
1712
2050
|
};
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
);
|
|
2051
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
2052
|
+
const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
|
|
2053
|
+
window.posthog?.capture(eventName, enhancedParams);
|
|
1717
2054
|
}
|
|
1718
2055
|
/**
|
|
1719
2056
|
* Convert an event to PostHog parameters
|
|
@@ -1843,37 +2180,56 @@ var ShopifyAdapter = class extends BaseAdapter {
|
|
|
1843
2180
|
/**
|
|
1844
2181
|
* Track an event using Shopify Analytics
|
|
1845
2182
|
*/
|
|
1846
|
-
async trackEvent(event) {
|
|
2183
|
+
async trackEvent(event, adapterParams) {
|
|
1847
2184
|
if (!this.initialized || typeof window === "undefined") {
|
|
1848
2185
|
this.logger.warn(
|
|
1849
2186
|
"Shopify Analytics not initialized or not in browser environment"
|
|
1850
2187
|
);
|
|
1851
2188
|
return;
|
|
1852
2189
|
}
|
|
2190
|
+
const params = this.getAdapterParams(adapterParams);
|
|
2191
|
+
const customEventName = this.getEventName(params, event.type);
|
|
1853
2192
|
this.logger.debug("Processing Shopify Analytics event", {
|
|
1854
2193
|
eventType: event.type,
|
|
1855
|
-
|
|
2194
|
+
customEventName,
|
|
2195
|
+
eventData: event,
|
|
2196
|
+
adapterParams: params
|
|
1856
2197
|
});
|
|
1857
2198
|
try {
|
|
1858
2199
|
switch (event.type) {
|
|
1859
2200
|
case "page_view" /* PAGE_VIEW */:
|
|
1860
|
-
this.
|
|
1861
|
-
this.
|
|
2201
|
+
const pageViewPayload = this.mergeEventData({}, params);
|
|
2202
|
+
this.sendPageView(AnalyticsEventName.PAGE_VIEW, pageViewPayload);
|
|
2203
|
+
this.logger.debug("Sent PAGE_VIEW event to Shopify Analytics", {
|
|
2204
|
+
payload: pageViewPayload
|
|
2205
|
+
});
|
|
1862
2206
|
break;
|
|
1863
2207
|
case "view_content" /* VIEW_CONTENT */:
|
|
1864
|
-
this.
|
|
1865
|
-
this.
|
|
2208
|
+
const viewContentPayload = this.mergeEventData({}, params);
|
|
2209
|
+
this.sendPageView(
|
|
2210
|
+
AnalyticsEventName.PRODUCT_VIEW,
|
|
2211
|
+
viewContentPayload
|
|
2212
|
+
);
|
|
2213
|
+
this.logger.debug("Sent PRODUCT_VIEW event to Shopify Analytics", {
|
|
2214
|
+
payload: viewContentPayload
|
|
2215
|
+
});
|
|
1866
2216
|
break;
|
|
1867
2217
|
case "add_to_cart" /* ADD_TO_CART */:
|
|
1868
|
-
this.
|
|
2218
|
+
const enhancedEvent = this.mergeEventData(event, params);
|
|
2219
|
+
this.trackAddToCart(enhancedEvent);
|
|
1869
2220
|
break;
|
|
1870
2221
|
case "checkout_started" /* CHECKOUT_STARTED */:
|
|
1871
2222
|
case "begin_checkout" /* BEGIN_CHECKOUT */:
|
|
1872
|
-
this.
|
|
1873
|
-
|
|
1874
|
-
|
|
2223
|
+
const checkoutPayload = this.mergeEventData(
|
|
2224
|
+
{
|
|
2225
|
+
pageType: "checkout"
|
|
2226
|
+
},
|
|
2227
|
+
params
|
|
2228
|
+
);
|
|
2229
|
+
this.sendPageView(AnalyticsEventName.PAGE_VIEW, checkoutPayload);
|
|
1875
2230
|
this.logger.debug(
|
|
1876
|
-
"Sent checkout PAGE_VIEW event to Shopify Analytics"
|
|
2231
|
+
"Sent checkout PAGE_VIEW event to Shopify Analytics",
|
|
2232
|
+
{ payload: checkoutPayload }
|
|
1877
2233
|
);
|
|
1878
2234
|
break;
|
|
1879
2235
|
default:
|
|
@@ -1999,8 +2355,10 @@ var KwikPassAdapter = class extends BaseAdapter {
|
|
|
1999
2355
|
}
|
|
2000
2356
|
/**
|
|
2001
2357
|
* Track an event using KwikPass
|
|
2358
|
+
* @param event The event to track
|
|
2359
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
2002
2360
|
*/
|
|
2003
|
-
async trackEvent(event) {
|
|
2361
|
+
async trackEvent(event, adapterParams) {
|
|
2004
2362
|
if (!this.initialized || typeof window === "undefined") {
|
|
2005
2363
|
this.logger.warn(
|
|
2006
2364
|
"KwikPass adapter not initialized or not in browser environment"
|
|
@@ -2018,13 +2376,13 @@ var KwikPassAdapter = class extends BaseAdapter {
|
|
|
2018
2376
|
const enhancedEvent = this.enhanceWithAffiliateParams(event);
|
|
2019
2377
|
switch (event.type) {
|
|
2020
2378
|
case "product_view" /* PRODUCT_VIEW */:
|
|
2021
|
-
this.trackProductView(enhancedEvent);
|
|
2379
|
+
this.trackProductView(enhancedEvent, adapterParams);
|
|
2022
2380
|
break;
|
|
2023
2381
|
case "collection_view" /* COLLECTION_VIEW */:
|
|
2024
|
-
this.trackCollectionView(enhancedEvent);
|
|
2382
|
+
this.trackCollectionView(enhancedEvent, adapterParams);
|
|
2025
2383
|
break;
|
|
2026
2384
|
case "page_view" /* PAGE_VIEW */:
|
|
2027
|
-
this.trackPageView(enhancedEvent);
|
|
2385
|
+
this.trackPageView(enhancedEvent, adapterParams);
|
|
2028
2386
|
break;
|
|
2029
2387
|
default:
|
|
2030
2388
|
this.logger.debug("Event not supported", { eventType: event.type });
|
|
@@ -2039,55 +2397,71 @@ var KwikPassAdapter = class extends BaseAdapter {
|
|
|
2039
2397
|
/**
|
|
2040
2398
|
* Send event to KwikPass platform
|
|
2041
2399
|
*/
|
|
2042
|
-
sendKwikPassEvent(type, eventData) {
|
|
2043
|
-
this.
|
|
2400
|
+
sendKwikPassEvent(type, eventData, adapterParams) {
|
|
2401
|
+
const customEventType = this.getEventName(adapterParams, type);
|
|
2402
|
+
const enhancedEventData = this.mergeEventData(eventData, adapterParams);
|
|
2403
|
+
this.logger.debug(`Sending ${customEventType}`, {
|
|
2404
|
+
eventData: enhancedEventData
|
|
2405
|
+
});
|
|
2044
2406
|
if (typeof window !== "undefined") {
|
|
2045
2407
|
const customEvent = new CustomEvent(`page_view_kp`, {
|
|
2046
2408
|
detail: {
|
|
2047
|
-
type,
|
|
2048
|
-
detail:
|
|
2409
|
+
type: customEventType,
|
|
2410
|
+
detail: enhancedEventData
|
|
2049
2411
|
}
|
|
2050
2412
|
});
|
|
2051
2413
|
window.dispatchEvent(customEvent);
|
|
2052
|
-
this.logger.debug(`${
|
|
2414
|
+
this.logger.debug(`${customEventType} sent successfully`);
|
|
2053
2415
|
}
|
|
2054
2416
|
}
|
|
2055
2417
|
/**
|
|
2056
|
-
* Track
|
|
2418
|
+
* Track collection view event
|
|
2057
2419
|
*/
|
|
2058
|
-
trackCollectionView(event) {
|
|
2059
|
-
this.sendKwikPassEvent(
|
|
2060
|
-
|
|
2061
|
-
|
|
2062
|
-
|
|
2063
|
-
|
|
2064
|
-
|
|
2065
|
-
|
|
2066
|
-
|
|
2420
|
+
trackCollectionView(event, adapterParams) {
|
|
2421
|
+
this.sendKwikPassEvent(
|
|
2422
|
+
"collection",
|
|
2423
|
+
{
|
|
2424
|
+
product_id: event.productId,
|
|
2425
|
+
product_name: event.productName,
|
|
2426
|
+
price: event.price,
|
|
2427
|
+
currency: event.currency,
|
|
2428
|
+
category: event.category,
|
|
2429
|
+
timestamp: event.timestamp || Date.now()
|
|
2430
|
+
},
|
|
2431
|
+
adapterParams
|
|
2432
|
+
);
|
|
2067
2433
|
}
|
|
2068
2434
|
/**
|
|
2069
|
-
* Track
|
|
2435
|
+
* Track product view event
|
|
2070
2436
|
*/
|
|
2071
|
-
trackProductView(event) {
|
|
2072
|
-
this.sendKwikPassEvent(
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
2077
|
-
|
|
2078
|
-
|
|
2079
|
-
|
|
2437
|
+
trackProductView(event, adapterParams) {
|
|
2438
|
+
this.sendKwikPassEvent(
|
|
2439
|
+
"product",
|
|
2440
|
+
{
|
|
2441
|
+
product_id: event.productId,
|
|
2442
|
+
product_name: event.productName,
|
|
2443
|
+
price: event.price,
|
|
2444
|
+
currency: event.currency,
|
|
2445
|
+
category: event.category,
|
|
2446
|
+
timestamp: event.timestamp || Date.now()
|
|
2447
|
+
},
|
|
2448
|
+
adapterParams
|
|
2449
|
+
);
|
|
2080
2450
|
}
|
|
2081
2451
|
/**
|
|
2082
2452
|
* Track page view event
|
|
2083
2453
|
*/
|
|
2084
|
-
trackPageView(event) {
|
|
2085
|
-
this.sendKwikPassEvent(
|
|
2086
|
-
|
|
2087
|
-
|
|
2088
|
-
|
|
2089
|
-
|
|
2090
|
-
|
|
2454
|
+
trackPageView(event, adapterParams) {
|
|
2455
|
+
this.sendKwikPassEvent(
|
|
2456
|
+
"other",
|
|
2457
|
+
{
|
|
2458
|
+
path: event.path,
|
|
2459
|
+
title: event.title,
|
|
2460
|
+
referrer: event.referrer,
|
|
2461
|
+
timestamp: event.timestamp || Date.now()
|
|
2462
|
+
},
|
|
2463
|
+
adapterParams
|
|
2464
|
+
);
|
|
2091
2465
|
}
|
|
2092
2466
|
};
|
|
2093
2467
|
|
|
@@ -2121,8 +2495,10 @@ var KwikCheckoutAdapter = class extends BaseAdapter {
|
|
|
2121
2495
|
}
|
|
2122
2496
|
/**
|
|
2123
2497
|
* Track an event using GoKwik
|
|
2498
|
+
* @param event The event to track
|
|
2499
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
2124
2500
|
*/
|
|
2125
|
-
async trackEvent(event) {
|
|
2501
|
+
async trackEvent(event, adapterParams) {
|
|
2126
2502
|
if (!this.initialized || typeof window === "undefined") {
|
|
2127
2503
|
this.logger.warn(
|
|
2128
2504
|
"GoKwik adapter not initialized or not in browser environment"
|
|
@@ -2134,46 +2510,46 @@ var KwikCheckoutAdapter = class extends BaseAdapter {
|
|
|
2134
2510
|
const enhancedEvent = this.enhanceWithAffiliateParams(event);
|
|
2135
2511
|
switch (event.type) {
|
|
2136
2512
|
case "started_checkout_gk" /* STARTED_CHECKOUT_GK */:
|
|
2137
|
-
this.trackStartedCheckoutGK(enhancedEvent);
|
|
2513
|
+
this.trackStartedCheckoutGK(enhancedEvent, adapterParams);
|
|
2138
2514
|
break;
|
|
2139
2515
|
case "mobile_added_gk" /* MOBILE_ADDED_GK */:
|
|
2140
|
-
this.trackMobileAddedGK(enhancedEvent);
|
|
2516
|
+
this.trackMobileAddedGK(enhancedEvent, adapterParams);
|
|
2141
2517
|
break;
|
|
2142
2518
|
case "address_selected_gk" /* ADDRESS_SELECTED_GK */:
|
|
2143
|
-
this.trackAddressSelectedGK(enhancedEvent);
|
|
2519
|
+
this.trackAddressSelectedGK(enhancedEvent, adapterParams);
|
|
2144
2520
|
break;
|
|
2145
2521
|
case "address_completed_gk" /* ADDRESS_COMPLETED_GK */:
|
|
2146
|
-
this.trackAddressCompletedGK(enhancedEvent);
|
|
2522
|
+
this.trackAddressCompletedGK(enhancedEvent, adapterParams);
|
|
2147
2523
|
break;
|
|
2148
2524
|
case "address_added_gk" /* ADDRESS_ADDED_GK */:
|
|
2149
|
-
this.trackAddressAddedGK(enhancedEvent);
|
|
2525
|
+
this.trackAddressAddedGK(enhancedEvent, adapterParams);
|
|
2150
2526
|
break;
|
|
2151
2527
|
case "pin_code_added_gk" /* PIN_CODE_ADDED_GK */:
|
|
2152
|
-
this.trackPinCodeAddedGK(enhancedEvent);
|
|
2528
|
+
this.trackPinCodeAddedGK(enhancedEvent, adapterParams);
|
|
2153
2529
|
break;
|
|
2154
2530
|
case "payment_method_selected_gk" /* PAYMENT_METHOD_SELECTED_GK */:
|
|
2155
|
-
this.trackPaymentMethodSelectedGK(enhancedEvent);
|
|
2531
|
+
this.trackPaymentMethodSelectedGK(enhancedEvent, adapterParams);
|
|
2156
2532
|
break;
|
|
2157
2533
|
case "payment_completed_gk" /* PAYMENT_COMPLETED_GK */:
|
|
2158
|
-
this.trackPaymentCompletedGK(enhancedEvent);
|
|
2534
|
+
this.trackPaymentCompletedGK(enhancedEvent, adapterParams);
|
|
2159
2535
|
break;
|
|
2160
2536
|
case "order_success" /* ORDER_SUCCESS */:
|
|
2161
|
-
this.trackOrderSuccess(enhancedEvent);
|
|
2537
|
+
this.trackOrderSuccess(enhancedEvent, adapterParams);
|
|
2162
2538
|
break;
|
|
2163
2539
|
case "order_completed" /* ORDER_COMPLETED */:
|
|
2164
|
-
this.trackOrderCompleted(enhancedEvent);
|
|
2540
|
+
this.trackOrderCompleted(enhancedEvent, adapterParams);
|
|
2165
2541
|
break;
|
|
2166
2542
|
case "cart_viewed" /* CART_VIEWED */:
|
|
2167
|
-
this.trackCartViewed(enhancedEvent);
|
|
2543
|
+
this.trackCartViewed(enhancedEvent, adapterParams);
|
|
2168
2544
|
break;
|
|
2169
2545
|
case "checkout_started" /* CHECKOUT_STARTED */:
|
|
2170
|
-
this.trackCheckoutStarted(enhancedEvent);
|
|
2546
|
+
this.trackCheckoutStarted(enhancedEvent, adapterParams);
|
|
2171
2547
|
break;
|
|
2172
2548
|
case "checkout_completed" /* CHECKOUT_COMPLETED */:
|
|
2173
|
-
this.trackCheckoutCompleted(enhancedEvent);
|
|
2549
|
+
this.trackCheckoutCompleted(enhancedEvent, adapterParams);
|
|
2174
2550
|
break;
|
|
2175
2551
|
case "add_payment_info" /* ADD_PAYMENT_INFO */:
|
|
2176
|
-
this.trackAddPaymentInfo(enhancedEvent);
|
|
2552
|
+
this.trackAddPaymentInfo(enhancedEvent, adapterParams);
|
|
2177
2553
|
break;
|
|
2178
2554
|
default:
|
|
2179
2555
|
this.logger.debug("Event not supported", { eventType: event.type });
|
|
@@ -2188,171 +2564,233 @@ var KwikCheckoutAdapter = class extends BaseAdapter {
|
|
|
2188
2564
|
/**
|
|
2189
2565
|
* Send event to GoKwik platform
|
|
2190
2566
|
*/
|
|
2191
|
-
sendGoKwikEvent(eventName, eventData) {
|
|
2192
|
-
this.
|
|
2567
|
+
sendGoKwikEvent(eventName, eventData, adapterParams) {
|
|
2568
|
+
const customEventName = this.getEventName(adapterParams, eventName);
|
|
2569
|
+
const enhancedEventData = this.mergeEventData(eventData, adapterParams);
|
|
2570
|
+
this.logger.debug(`Sending ${customEventName}`, {
|
|
2571
|
+
eventData: enhancedEventData
|
|
2572
|
+
});
|
|
2193
2573
|
if (typeof window !== "undefined" && window.gokwikSdk) {
|
|
2194
2574
|
try {
|
|
2195
|
-
window.gokwikSdk.track?.(
|
|
2196
|
-
this.logger.debug(`${
|
|
2575
|
+
window.gokwikSdk.track?.(customEventName, enhancedEventData);
|
|
2576
|
+
this.logger.debug(`${customEventName} sent via SDK successfully`);
|
|
2197
2577
|
} catch (error) {
|
|
2198
2578
|
this.logger.error(
|
|
2199
|
-
`Error sending GoKwik event ${
|
|
2579
|
+
`Error sending GoKwik event ${customEventName} via SDK`,
|
|
2200
2580
|
error
|
|
2201
2581
|
);
|
|
2202
2582
|
}
|
|
2203
2583
|
} else {
|
|
2204
2584
|
if (typeof window !== "undefined") {
|
|
2205
|
-
const customEvent = new CustomEvent(`gokwik_${
|
|
2206
|
-
detail:
|
|
2585
|
+
const customEvent = new CustomEvent(`gokwik_${customEventName}`, {
|
|
2586
|
+
detail: enhancedEventData
|
|
2207
2587
|
});
|
|
2208
2588
|
window.dispatchEvent(customEvent);
|
|
2209
|
-
this.logger.debug(
|
|
2589
|
+
this.logger.debug(
|
|
2590
|
+
`${customEventName} sent via custom event successfully`
|
|
2591
|
+
);
|
|
2210
2592
|
}
|
|
2211
2593
|
}
|
|
2212
2594
|
}
|
|
2213
2595
|
/**
|
|
2214
2596
|
* Track started checkout GK event
|
|
2215
2597
|
*/
|
|
2216
|
-
trackStartedCheckoutGK(event) {
|
|
2217
|
-
this.sendGoKwikEvent(
|
|
2218
|
-
|
|
2219
|
-
|
|
2220
|
-
|
|
2221
|
-
|
|
2598
|
+
trackStartedCheckoutGK(event, adapterParams) {
|
|
2599
|
+
this.sendGoKwikEvent(
|
|
2600
|
+
"started_checkout",
|
|
2601
|
+
{
|
|
2602
|
+
cart_value: event.cartValue,
|
|
2603
|
+
currency: event.currency,
|
|
2604
|
+
timestamp: event.timestamp || Date.now()
|
|
2605
|
+
},
|
|
2606
|
+
adapterParams
|
|
2607
|
+
);
|
|
2222
2608
|
}
|
|
2223
2609
|
/**
|
|
2224
2610
|
* Track mobile added GK event
|
|
2225
2611
|
*/
|
|
2226
|
-
trackMobileAddedGK(event) {
|
|
2227
|
-
this.sendGoKwikEvent(
|
|
2228
|
-
|
|
2229
|
-
|
|
2230
|
-
|
|
2612
|
+
trackMobileAddedGK(event, adapterParams) {
|
|
2613
|
+
this.sendGoKwikEvent(
|
|
2614
|
+
"mobile_added",
|
|
2615
|
+
{
|
|
2616
|
+
mobile: event.mobile,
|
|
2617
|
+
timestamp: event.timestamp || Date.now()
|
|
2618
|
+
},
|
|
2619
|
+
adapterParams
|
|
2620
|
+
);
|
|
2231
2621
|
}
|
|
2232
2622
|
/**
|
|
2233
2623
|
* Track address selected GK event
|
|
2234
2624
|
*/
|
|
2235
|
-
trackAddressSelectedGK(event) {
|
|
2236
|
-
this.sendGoKwikEvent(
|
|
2237
|
-
|
|
2238
|
-
|
|
2239
|
-
|
|
2625
|
+
trackAddressSelectedGK(event, adapterParams) {
|
|
2626
|
+
this.sendGoKwikEvent(
|
|
2627
|
+
"address_selected",
|
|
2628
|
+
{
|
|
2629
|
+
address_id: event.addressId,
|
|
2630
|
+
timestamp: event.timestamp || Date.now()
|
|
2631
|
+
},
|
|
2632
|
+
adapterParams
|
|
2633
|
+
);
|
|
2240
2634
|
}
|
|
2241
2635
|
/**
|
|
2242
2636
|
* Track address completed GK event
|
|
2243
2637
|
*/
|
|
2244
|
-
trackAddressCompletedGK(event) {
|
|
2245
|
-
this.sendGoKwikEvent(
|
|
2246
|
-
|
|
2247
|
-
|
|
2248
|
-
|
|
2638
|
+
trackAddressCompletedGK(event, adapterParams) {
|
|
2639
|
+
this.sendGoKwikEvent(
|
|
2640
|
+
"address_completed",
|
|
2641
|
+
{
|
|
2642
|
+
address_id: event.addressId,
|
|
2643
|
+
timestamp: event.timestamp || Date.now()
|
|
2644
|
+
},
|
|
2645
|
+
adapterParams
|
|
2646
|
+
);
|
|
2249
2647
|
}
|
|
2250
2648
|
/**
|
|
2251
2649
|
* Track address added GK event
|
|
2252
2650
|
*/
|
|
2253
|
-
trackAddressAddedGK(event) {
|
|
2254
|
-
this.sendGoKwikEvent(
|
|
2255
|
-
|
|
2256
|
-
|
|
2257
|
-
|
|
2651
|
+
trackAddressAddedGK(event, adapterParams) {
|
|
2652
|
+
this.sendGoKwikEvent(
|
|
2653
|
+
"address_added",
|
|
2654
|
+
{
|
|
2655
|
+
address_id: event.addressId,
|
|
2656
|
+
timestamp: event.timestamp || Date.now()
|
|
2657
|
+
},
|
|
2658
|
+
adapterParams
|
|
2659
|
+
);
|
|
2258
2660
|
}
|
|
2259
2661
|
/**
|
|
2260
2662
|
* Track PIN code added GK event
|
|
2261
2663
|
*/
|
|
2262
|
-
trackPinCodeAddedGK(event) {
|
|
2263
|
-
this.sendGoKwikEvent(
|
|
2264
|
-
|
|
2265
|
-
|
|
2266
|
-
|
|
2664
|
+
trackPinCodeAddedGK(event, adapterParams) {
|
|
2665
|
+
this.sendGoKwikEvent(
|
|
2666
|
+
"pin_code_added",
|
|
2667
|
+
{
|
|
2668
|
+
pin_code: event.pinCode,
|
|
2669
|
+
timestamp: event.timestamp || Date.now()
|
|
2670
|
+
},
|
|
2671
|
+
adapterParams
|
|
2672
|
+
);
|
|
2267
2673
|
}
|
|
2268
2674
|
/**
|
|
2269
2675
|
* Track payment method selected GK event
|
|
2270
2676
|
*/
|
|
2271
|
-
trackPaymentMethodSelectedGK(event) {
|
|
2272
|
-
this.sendGoKwikEvent(
|
|
2273
|
-
|
|
2274
|
-
|
|
2275
|
-
|
|
2677
|
+
trackPaymentMethodSelectedGK(event, adapterParams) {
|
|
2678
|
+
this.sendGoKwikEvent(
|
|
2679
|
+
"payment_method_selected",
|
|
2680
|
+
{
|
|
2681
|
+
payment_method: event.paymentMethod,
|
|
2682
|
+
timestamp: event.timestamp || Date.now()
|
|
2683
|
+
},
|
|
2684
|
+
adapterParams
|
|
2685
|
+
);
|
|
2276
2686
|
}
|
|
2277
2687
|
/**
|
|
2278
2688
|
* Track payment completed GK event
|
|
2279
2689
|
*/
|
|
2280
|
-
trackPaymentCompletedGK(event) {
|
|
2281
|
-
this.sendGoKwikEvent(
|
|
2282
|
-
|
|
2283
|
-
|
|
2284
|
-
|
|
2285
|
-
|
|
2690
|
+
trackPaymentCompletedGK(event, adapterParams) {
|
|
2691
|
+
this.sendGoKwikEvent(
|
|
2692
|
+
"payment_completed",
|
|
2693
|
+
{
|
|
2694
|
+
amount: event.amount,
|
|
2695
|
+
currency: event.currency,
|
|
2696
|
+
timestamp: event.timestamp || Date.now()
|
|
2697
|
+
},
|
|
2698
|
+
adapterParams
|
|
2699
|
+
);
|
|
2286
2700
|
}
|
|
2287
2701
|
/**
|
|
2288
2702
|
* Track order success event
|
|
2289
2703
|
*/
|
|
2290
|
-
trackOrderSuccess(event) {
|
|
2291
|
-
this.sendGoKwikEvent(
|
|
2292
|
-
|
|
2293
|
-
|
|
2294
|
-
|
|
2295
|
-
|
|
2296
|
-
|
|
2704
|
+
trackOrderSuccess(event, adapterParams) {
|
|
2705
|
+
this.sendGoKwikEvent(
|
|
2706
|
+
"order_success",
|
|
2707
|
+
{
|
|
2708
|
+
order_id: event.orderId,
|
|
2709
|
+
amount: event.amount,
|
|
2710
|
+
currency: event.currency,
|
|
2711
|
+
timestamp: event.timestamp || Date.now()
|
|
2712
|
+
},
|
|
2713
|
+
adapterParams
|
|
2714
|
+
);
|
|
2297
2715
|
}
|
|
2298
2716
|
/**
|
|
2299
2717
|
* Track order completed event
|
|
2300
2718
|
*/
|
|
2301
|
-
trackOrderCompleted(event) {
|
|
2302
|
-
this.sendGoKwikEvent(
|
|
2303
|
-
|
|
2304
|
-
|
|
2305
|
-
|
|
2306
|
-
|
|
2307
|
-
|
|
2719
|
+
trackOrderCompleted(event, adapterParams) {
|
|
2720
|
+
this.sendGoKwikEvent(
|
|
2721
|
+
"order_completed",
|
|
2722
|
+
{
|
|
2723
|
+
order_id: event.orderId,
|
|
2724
|
+
amount: event.amount,
|
|
2725
|
+
currency: event.currency,
|
|
2726
|
+
timestamp: event.timestamp || Date.now()
|
|
2727
|
+
},
|
|
2728
|
+
adapterParams
|
|
2729
|
+
);
|
|
2308
2730
|
}
|
|
2309
2731
|
/**
|
|
2310
2732
|
* Track cart viewed event
|
|
2311
2733
|
*/
|
|
2312
|
-
trackCartViewed(event) {
|
|
2313
|
-
this.sendGoKwikEvent(
|
|
2314
|
-
|
|
2315
|
-
|
|
2316
|
-
|
|
2317
|
-
|
|
2734
|
+
trackCartViewed(event, adapterParams) {
|
|
2735
|
+
this.sendGoKwikEvent(
|
|
2736
|
+
"cart_viewed",
|
|
2737
|
+
{
|
|
2738
|
+
cart_id: event.cartId,
|
|
2739
|
+
products: event.products,
|
|
2740
|
+
timestamp: event.timestamp || Date.now()
|
|
2741
|
+
},
|
|
2742
|
+
adapterParams
|
|
2743
|
+
);
|
|
2318
2744
|
}
|
|
2319
2745
|
/**
|
|
2320
2746
|
* Track checkout started event
|
|
2321
2747
|
*/
|
|
2322
|
-
trackCheckoutStarted(event) {
|
|
2323
|
-
this.sendGoKwikEvent(
|
|
2324
|
-
|
|
2325
|
-
|
|
2326
|
-
|
|
2327
|
-
|
|
2328
|
-
|
|
2329
|
-
|
|
2748
|
+
trackCheckoutStarted(event, adapterParams) {
|
|
2749
|
+
this.sendGoKwikEvent(
|
|
2750
|
+
"checkout_started",
|
|
2751
|
+
{
|
|
2752
|
+
cart_value: event.cartValue,
|
|
2753
|
+
currency: event.currency,
|
|
2754
|
+
item_count: event.itemCount,
|
|
2755
|
+
items: event.items,
|
|
2756
|
+
timestamp: event.timestamp || Date.now()
|
|
2757
|
+
},
|
|
2758
|
+
adapterParams
|
|
2759
|
+
);
|
|
2330
2760
|
}
|
|
2331
2761
|
/**
|
|
2332
2762
|
* Track checkout completed event
|
|
2333
2763
|
*/
|
|
2334
|
-
trackCheckoutCompleted(event) {
|
|
2335
|
-
this.sendGoKwikEvent(
|
|
2336
|
-
|
|
2337
|
-
|
|
2338
|
-
|
|
2339
|
-
|
|
2340
|
-
|
|
2341
|
-
|
|
2342
|
-
|
|
2764
|
+
trackCheckoutCompleted(event, adapterParams) {
|
|
2765
|
+
this.sendGoKwikEvent(
|
|
2766
|
+
"checkout_completed",
|
|
2767
|
+
{
|
|
2768
|
+
order_id: event.orderId,
|
|
2769
|
+
cart_value: event.cartValue,
|
|
2770
|
+
currency: event.currency,
|
|
2771
|
+
item_count: event.itemCount,
|
|
2772
|
+
items: event.items,
|
|
2773
|
+
timestamp: event.timestamp || Date.now()
|
|
2774
|
+
},
|
|
2775
|
+
adapterParams
|
|
2776
|
+
);
|
|
2343
2777
|
}
|
|
2344
2778
|
/**
|
|
2345
2779
|
* Track add payment info event
|
|
2346
2780
|
*/
|
|
2347
|
-
trackAddPaymentInfo(event) {
|
|
2348
|
-
this.sendGoKwikEvent(
|
|
2349
|
-
|
|
2350
|
-
|
|
2351
|
-
|
|
2352
|
-
|
|
2353
|
-
|
|
2354
|
-
|
|
2355
|
-
|
|
2781
|
+
trackAddPaymentInfo(event, adapterParams) {
|
|
2782
|
+
this.sendGoKwikEvent(
|
|
2783
|
+
"add_payment_info",
|
|
2784
|
+
{
|
|
2785
|
+
cart_value: event.cartValue,
|
|
2786
|
+
currency: event.currency,
|
|
2787
|
+
item_count: event.itemCount,
|
|
2788
|
+
payment_type: event.paymentType,
|
|
2789
|
+
items: event.items,
|
|
2790
|
+
timestamp: event.timestamp || Date.now()
|
|
2791
|
+
},
|
|
2792
|
+
adapterParams
|
|
2793
|
+
);
|
|
2356
2794
|
}
|
|
2357
2795
|
};
|
|
2358
2796
|
|
|
@@ -2365,11 +2803,10 @@ export {
|
|
|
2365
2803
|
GoogleAdapter,
|
|
2366
2804
|
EventNames,
|
|
2367
2805
|
DEFAULT_CURRENCY,
|
|
2368
|
-
HARDCODED_HANDLE,
|
|
2369
2806
|
MoengageAdapter,
|
|
2370
2807
|
PostHogAdapter,
|
|
2371
2808
|
ShopifyAdapter,
|
|
2372
2809
|
KwikPassAdapter,
|
|
2373
2810
|
KwikCheckoutAdapter
|
|
2374
2811
|
};
|
|
2375
|
-
//# sourceMappingURL=chunk-
|
|
2812
|
+
//# sourceMappingURL=chunk-U3UOXFS4.mjs.map
|