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