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.
Files changed (41) hide show
  1. package/README.md +258 -3
  2. package/dist/adapters/index.d.mts +2 -2
  3. package/dist/adapters/index.d.ts +2 -2
  4. package/dist/adapters/index.js +1039 -600
  5. package/dist/adapters/index.js.map +1 -1
  6. package/dist/adapters/index.mjs +2 -2
  7. package/dist/{chunk-3TQR5DOP.mjs → chunk-3NR2AKE4.mjs} +1 -31
  8. package/dist/chunk-3NR2AKE4.mjs.map +1 -0
  9. package/dist/{chunk-P4OJDCEZ.mjs → chunk-BNV3EVHH.mjs} +3 -3
  10. package/dist/{chunk-JVEGG6JV.mjs → chunk-HCA4E2RA.mjs} +19 -13
  11. package/dist/chunk-HCA4E2RA.mjs.map +1 -0
  12. package/dist/{chunk-4MZH5OLR.mjs → chunk-U3UOXFS4.mjs} +1040 -603
  13. package/dist/chunk-U3UOXFS4.mjs.map +1 -0
  14. package/dist/events/index.d.mts +9 -41
  15. package/dist/events/index.d.ts +9 -41
  16. package/dist/events/index.js +801 -490
  17. package/dist/events/index.js.map +1 -1
  18. package/dist/events/index.mjs +5 -7
  19. package/dist/{index-GODWc1s6.d.mts → index-Bym1_EAp.d.mts} +74 -17
  20. package/dist/{index-BnNRgdUv.d.ts → index-DS9OI5Mz.d.ts} +74 -17
  21. package/dist/index.d.mts +6 -6
  22. package/dist/index.d.ts +6 -6
  23. package/dist/index.js +1057 -645
  24. package/dist/index.js.map +1 -1
  25. package/dist/index.mjs +4 -6
  26. package/dist/index.mjs.map +1 -1
  27. package/dist/{subscriber-43gnCKWe.d.ts → subscriber-BDAm_BAi.d.ts} +38 -2
  28. package/dist/{subscriber-sWesj_5p.d.mts → subscriber-BoyOlh9t.d.mts} +38 -2
  29. package/dist/subscriber-VF3IYUCU.mjs +8 -0
  30. package/dist/types.d.mts +4 -340
  31. package/dist/types.d.ts +4 -340
  32. package/dist/types.js +0 -30
  33. package/dist/types.js.map +1 -1
  34. package/dist/types.mjs +1 -1
  35. package/package.json +2 -3
  36. package/dist/chunk-3TQR5DOP.mjs.map +0 -1
  37. package/dist/chunk-4MZH5OLR.mjs.map +0 -1
  38. package/dist/chunk-JVEGG6JV.mjs.map +0 -1
  39. package/dist/subscriber-IFZJU57V.mjs +0 -8
  40. /package/dist/{chunk-P4OJDCEZ.mjs.map → chunk-BNV3EVHH.mjs.map} +0 -0
  41. /package/dist/{subscriber-IFZJU57V.mjs.map → subscriber-VF3IYUCU.mjs.map} +0 -0
@@ -43,7 +43,14 @@ __export(adapters_exports, {
43
43
  module.exports = __toCommonJS(adapters_exports);
44
44
 
45
45
  // src/logger/index.ts
46
- var import_pino = __toESM(require("pino"));
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 PinoLogger = class _PinoLogger {
65
- constructor(logger2) {
66
- this.logger = logger2;
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.logger.trace({ args }, message);
141
+ this.log("trace", message, args);
70
142
  }
71
143
  debug(message, ...args) {
72
- this.logger.debug({ args }, message);
144
+ this.log("debug", message, args);
73
145
  }
74
146
  info(message, ...args) {
75
- this.logger.info({ args }, message);
147
+ this.log("info", message, args);
76
148
  }
77
149
  warn(message, ...args) {
78
- this.logger.warn({ args }, message);
150
+ this.log("warn", message, args);
79
151
  }
80
152
  error(message, error, ...args) {
81
- this.logger.error({ error, args }, message);
153
+ this.log("error", message, args, error);
82
154
  }
83
155
  fatal(message, error, ...args) {
84
- this.logger.fatal({ error, args }, message);
156
+ this.log("fatal", message, args, error);
85
157
  }
86
158
  child(bindings) {
87
- return new _PinoLogger(this.logger.child(bindings));
159
+ return new _UniversalLogger(this.config, { ...this.bindings, ...bindings });
88
160
  }
89
161
  };
90
162
  function createLogger(config = {}) {
91
- const {
92
- level = "info",
93
- enabled = true,
94
- name = "@shopkit/analytics",
95
- prettyPrint = false,
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 (prettyPrint && typeof window === "undefined") {
119
- pinoConfig.transport = {
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 message;
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 trackEvent(event) {
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 params = this.enhanceWithAffiliateParams({});
316
- window.fbq?.("track", "PageView", params);
317
- this.logger.debug("PageView event tracked", { params });
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 params = {
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
- window.fbq?.(
333
- "track",
334
- "ViewContent",
335
- this.enhanceWithAffiliateParams(params)
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 params = {
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 enhancedParams = this.enhanceWithAffiliateParams(params);
351
- window.fbq?.("track", "AddToCart", enhancedParams);
352
- this.logger.debug("AddToCart event tracked", { params: enhancedParams });
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 params = {
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
- window.fbq?.(
372
- "track",
373
- "InitiateCheckout",
374
- this.enhanceWithAffiliateParams(params)
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 params = {
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
- window.fbq?.("track", "Purchase", this.enhanceWithAffiliateParams(params));
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 params = {
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
- window.fbq?.("track", "Search", this.enhanceWithAffiliateParams(params));
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 params = {
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
- window.fbq?.(
426
- "track",
427
- "AddPaymentInfo",
428
- this.enhanceWithAffiliateParams(params)
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 params = {
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
- window.fbq?.(
445
- "track",
446
- "ViewContent",
447
- this.enhanceWithAffiliateParams(params)
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 params = {
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
- window.fbq?.("track", "Purchase", this.enhanceWithAffiliateParams(params));
464
- }
465
- /**
466
- * Convert an event to Facebook Pixel parameters
467
- * @param event The event to convert
468
- */
469
- eventToParams(event) {
470
- const { type, timestamp, ...params } = event;
471
- return this.enhanceWithAffiliateParams(params);
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(event, measurementId);
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(event);
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
- case "shopify_add_to_cart" /* SHOPIFY_ADD_TO_CART */:
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(event);
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(event);
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(event);
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 params = this.eventToParams(event);
612
- window.gtag(
613
- "event",
614
- event.type,
615
- this.enhanceWithAffiliateParams(params)
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 params = {
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
- window.gtag?.(
651
- "event",
652
- "page_view",
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 params = {
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
- window.gtag?.(
675
- "event",
676
- "user_engagement",
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 params = {
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
- window.gtag?.(
701
- "event",
702
- "session_start",
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 params = {
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
- window.gtag?.(
729
- "event",
730
- "first_visit",
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
- window.gtag?.(
736
- "event",
737
- "view_item",
738
- this.enhanceWithAffiliateParams({
739
- currency: event.currency,
740
- value: event.value,
741
- items: event.items
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 params = {
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
- window.gtag?.("event", "scroll", this.enhanceWithAffiliateParams(params));
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
- window.gtag?.(
764
- "event",
765
- "checkout_payment",
766
- this.enhanceWithAffiliateParams({
767
- currency: event.currency,
768
- value: event.cartValue,
769
- items: event.items.map((item) => ({
770
- item_id: item.productId,
771
- item_name: item.productName,
772
- price: item.price,
773
- quantity: item.quantity
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
- window.gtag?.(
780
- "event",
781
- "viewed_product",
782
- this.enhanceWithAffiliateParams({
783
- currency: event.currency,
784
- value: event.price,
785
- items: [
786
- {
787
- item_id: event.productId,
788
- item_name: event.productName,
789
- price: event.price,
790
- currency: event.currency
791
- }
792
- ],
793
- view_duration: event.viewDuration
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 params = {
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 enhancedParams = this.enhanceWithAffiliateParams(params);
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", "add_to_cart", enhancedParams);
1089
+ window.gtag?.("event", eventName, enhancedParams);
830
1090
  }
831
- trackFormStart() {
832
- const params = {
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
- window.gtag?.(
851
- "event",
852
- "form_start",
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 params = {
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
- window.gtag?.(
881
- "event",
882
- "begin_checkout",
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 params = {
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
- window.gtag?.(
902
- "event",
903
- "form_submit",
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 params = {
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
- window.gtag?.("event", "search", this.enhanceWithAffiliateParams(params));
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 params = {
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
- window.gtag?.("event", "purchase", this.enhanceWithAffiliateParams(params));
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 params = event.properties || {};
947
- window.gtag?.("event", event.name, this.enhanceWithAffiliateParams(params));
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 params = {
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
- window.gtag?.(
967
- "event",
968
- "add_payment_info",
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 params = {
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
- window.gtag?.(
1007
- "event",
1008
- "view_item",
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 params = {
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
- window.gtag?.("event", "purchase", this.enhanceWithAffiliateParams(params));
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 params = {
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
- window.gtag?.(
1073
- "event",
1074
- "view_search_results",
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 params = {
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
- window.gtag?.("event", "purchase", this.enhanceWithAffiliateParams(params));
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 params = {
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
- window.gtag?.(
1147
- "event",
1148
- "begin_checkout",
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(event);
1538
+ this.trackCheckoutStarted(
1539
+ event,
1540
+ adapterParams
1541
+ );
1304
1542
  break;
1305
1543
  case "checkout_completed" /* CHECKOUT_COMPLETED */:
1306
- this.trackCheckoutCompleted(event);
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.sdk.track_event(event.type, this.eventToParams(event));
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 eventData = {
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.sdk.track_event(EventNames.PAGE_VIEWED, eventData);
1341
- this.logger.debug("PageView event tracked", { eventData });
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.sdk?.track_event(EventNames.BUTTON_CLICKED, {
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.sdk?.track_event(EventNames.FORM_SUBMITTED, {
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.sdk?.track_event(EventNames.PRODUCT_VIEWED, {
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.sdk?.track_event(EventNames.ADDED_TO_CART, {
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.sdk?.track_event(EventNames.REMOVED_FROM_CART, {
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.sdk?.track_event(EventNames.CHECKOUT_STARTED, {
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.sdk?.track_event(EventNames.PURCHASE_COMPLETED, {
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.sdk?.track_event(EventNames.SEARCH, {
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.sdk?.track_event(EventNames.USER_SIGNED_UP, {
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.sdk?.track_event(EventNames.USER_LOGGED_IN, {
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.sdk?.track_event(event.name, event.properties);
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 params = this.eventToParams(event);
1615
- window.posthog?.capture(
1616
- event.type,
1617
- this.enhanceWithAffiliateParams(params)
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 params = {
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
- window.posthog?.capture(
1633
- "$pageview",
1634
- this.enhanceWithAffiliateParams(params)
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 params = {
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
- window.posthog?.capture(
1650
- "product_viewed",
1651
- this.enhanceWithAffiliateParams(params)
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 params = {
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.logger.debug("Sending to PostHog with params", { params });
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 params = {
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
- window.posthog?.capture(
1697
- "checkout_started",
1698
- this.enhanceWithAffiliateParams(params)
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 params = {
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
- window.posthog?.capture(
1720
- "purchase",
1721
- this.enhanceWithAffiliateParams(params)
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 params = {
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
- window.posthog?.capture("search", this.enhanceWithAffiliateParams(params));
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 params = {
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
- window.posthog?.capture(
1755
- "add_payment_info",
1756
- this.enhanceWithAffiliateParams(params)
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
- eventData: event
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.sendPageView(import_hydrogen_react.AnalyticsEventName.PAGE_VIEW);
1897
- this.logger.debug("Sent PAGE_VIEW event to Shopify Analytics");
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.sendPageView(import_hydrogen_react.AnalyticsEventName.PRODUCT_VIEW);
1901
- this.logger.debug("Sent PRODUCT_VIEW event to Shopify Analytics");
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.trackAddToCart(event);
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.sendPageView(import_hydrogen_react.AnalyticsEventName.PAGE_VIEW, {
1909
- pageType: "checkout"
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.logger.debug(`Sending ${type}`, { eventData });
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: eventData
2446
+ type: customEventType,
2447
+ detail: enhancedEventData
2085
2448
  }
2086
2449
  });
2087
2450
  window.dispatchEvent(customEvent);
2088
- this.logger.debug(`${type} sent successfully`);
2451
+ this.logger.debug(`${customEventType} sent successfully`);
2089
2452
  }
2090
2453
  }
2091
2454
  /**
2092
- * Track product view event
2455
+ * Track collection view event
2093
2456
  */
2094
- trackCollectionView(event) {
2095
- this.sendKwikPassEvent("collection", {
2096
- product_id: event.productId,
2097
- product_name: event.productName,
2098
- price: event.price,
2099
- currency: event.currency,
2100
- category: event.category,
2101
- timestamp: event.timestamp || Date.now()
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 collection view event
2472
+ * Track product view event
2106
2473
  */
2107
- trackProductView(event) {
2108
- this.sendKwikPassEvent("product", {
2109
- product_id: event.productId,
2110
- product_name: event.productName,
2111
- price: event.price,
2112
- currency: event.currency,
2113
- category: event.category,
2114
- timestamp: event.timestamp || Date.now()
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("other", {
2122
- path: event.path,
2123
- title: event.title,
2124
- referrer: event.referrer,
2125
- timestamp: event.timestamp || Date.now()
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.logger.debug(`Sending ${eventName}`, { eventData });
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?.(eventName, eventData);
2232
- this.logger.debug(`${eventName} sent via SDK successfully`);
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 ${eventName} via SDK`,
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_${eventName}`, {
2242
- detail: eventData
2622
+ const customEvent = new CustomEvent(`gokwik_${customEventName}`, {
2623
+ detail: enhancedEventData
2243
2624
  });
2244
2625
  window.dispatchEvent(customEvent);
2245
- this.logger.debug(`${eventName} sent via custom event successfully`);
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("started_checkout", {
2254
- cart_value: event.cartValue,
2255
- currency: event.currency,
2256
- timestamp: event.timestamp || Date.now()
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("mobile_added", {
2264
- mobile: event.mobile,
2265
- timestamp: event.timestamp || Date.now()
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("address_selected", {
2273
- address_id: event.addressId,
2274
- timestamp: event.timestamp || Date.now()
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("address_completed", {
2282
- address_id: event.addressId,
2283
- timestamp: event.timestamp || Date.now()
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("address_added", {
2291
- address_id: event.addressId,
2292
- timestamp: event.timestamp || Date.now()
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("pin_code_added", {
2300
- pin_code: event.pinCode,
2301
- timestamp: event.timestamp || Date.now()
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("payment_method_selected", {
2309
- payment_method: event.paymentMethod,
2310
- timestamp: event.timestamp || Date.now()
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("payment_completed", {
2318
- amount: event.amount,
2319
- currency: event.currency,
2320
- timestamp: event.timestamp || Date.now()
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("order_success", {
2328
- order_id: event.orderId,
2329
- amount: event.amount,
2330
- currency: event.currency,
2331
- timestamp: event.timestamp || Date.now()
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("order_completed", {
2339
- order_id: event.orderId,
2340
- amount: event.amount,
2341
- currency: event.currency,
2342
- timestamp: event.timestamp || Date.now()
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("cart_viewed", {
2350
- cart_id: event.cartId,
2351
- products: event.products,
2352
- timestamp: event.timestamp || Date.now()
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("checkout_started", {
2360
- cart_value: event.cartValue,
2361
- currency: event.currency,
2362
- item_count: event.itemCount,
2363
- items: event.items,
2364
- timestamp: event.timestamp || Date.now()
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("checkout_completed", {
2372
- order_id: event.orderId,
2373
- cart_value: event.cartValue,
2374
- currency: event.currency,
2375
- item_count: event.itemCount,
2376
- items: event.items,
2377
- timestamp: event.timestamp || Date.now()
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("add_payment_info", {
2385
- cart_value: event.cartValue,
2386
- currency: event.currency,
2387
- item_count: event.itemCount,
2388
- payment_type: event.paymentType,
2389
- items: event.items,
2390
- timestamp: event.timestamp || Date.now()
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: