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
package/dist/index.js CHANGED
@@ -32,9 +32,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
32
32
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
33
33
 
34
34
  // src/events/publisher.ts
35
- function publishEvent(event) {
35
+ function publishEvent(event, params) {
36
36
  try {
37
- eventPublisher.publish(event);
37
+ eventPublisher.publish(event, params);
38
38
  } catch (error) {
39
39
  console.error("Error in publishEvent helper:", error);
40
40
  }
@@ -75,19 +75,24 @@ var init_publisher = __esm({
75
75
  /**
76
76
  * Publish an event to all subscribers
77
77
  * @param event The event to publish
78
+ * @param params Optional adapter-specific parameters
78
79
  */
79
- publish(event) {
80
+ publish(event, params) {
80
81
  try {
81
82
  console.log("EventPublisher: Received event", {
82
83
  type: event.type,
83
- data: event
84
+ data: event,
85
+ params
84
86
  });
85
87
  const eventWithTimestamp = !event.timestamp ? { ...event, timestamp: Date.now() } : event;
86
- console.log("EventPublisher: Number of subscribers:", this.subscribers.length);
88
+ console.log(
89
+ "EventPublisher: Number of subscribers:",
90
+ this.subscribers.length
91
+ );
87
92
  for (const subscriber of this.subscribers) {
88
93
  try {
89
94
  console.log("EventPublisher: Notifying subscriber");
90
- subscriber(eventWithTimestamp);
95
+ subscriber(eventWithTimestamp, params);
91
96
  console.log("EventPublisher: Subscriber notified successfully");
92
97
  } catch (error) {
93
98
  console.error("EventPublisher: Error in subscriber:", error);
@@ -196,18 +201,19 @@ var init_subscriber = __esm({
196
201
  /**
197
202
  * Handle an event by forwarding it to all enabled adapters
198
203
  * @param event The event to handle
204
+ * @param params Optional adapter-specific parameters
199
205
  */
200
- handleEvent(event) {
201
- console.log("Handling event:", event.type);
206
+ handleEvent(event, params) {
207
+ console.log("Handling event:", event.type, "with params:", params);
202
208
  if (!this.initialized) {
203
209
  console.log("Subscriber not initialized, queueing event");
204
- this.eventQueue.push(event);
210
+ this.eventQueue.push({ event, params });
205
211
  return;
206
212
  }
207
213
  for (const adapter of this.adapters) {
208
214
  if (adapter.isEnabled()) {
209
215
  console.log(`Forwarding event to adapter: ${adapter.name}`);
210
- adapter.trackEvent(event).catch((error) => {
216
+ adapter.trackEvent(event, params).catch((error) => {
211
217
  console.error(
212
218
  `Error tracking event in adapter "${adapter.name}":`,
213
219
  error
@@ -226,8 +232,8 @@ var init_subscriber = __esm({
226
232
  return;
227
233
  }
228
234
  console.log(`Processing ${this.eventQueue.length} queued events.`);
229
- for (const event of this.eventQueue) {
230
- this.handleEvent(event);
235
+ for (const { event, params } of this.eventQueue) {
236
+ this.handleEvent(event, params);
231
237
  }
232
238
  this.eventQueue = [];
233
239
  }
@@ -262,7 +268,6 @@ __export(src_exports, {
262
268
  EventNames: () => EventNames,
263
269
  EventType: () => EventType,
264
270
  GoogleAdapter: () => GoogleAdapter,
265
- HARDCODED_HANDLE: () => HARDCODED_HANDLE,
266
271
  KwikCheckoutAdapter: () => KwikCheckoutAdapter,
267
272
  KwikPassAdapter: () => KwikPassAdapter,
268
273
  MoengageAdapter: () => MoengageAdapter,
@@ -295,7 +300,14 @@ var import_react3 = require("react");
295
300
  var import_hydrogen_react2 = require("@shopify/hydrogen-react");
296
301
 
297
302
  // src/logger/index.ts
298
- var import_pino = __toESM(require("pino"));
303
+ var LOG_LEVELS = {
304
+ trace: 10,
305
+ debug: 20,
306
+ info: 30,
307
+ warn: 40,
308
+ error: 50,
309
+ fatal: 60
310
+ };
299
311
  var NoOpLogger = class _NoOpLogger {
300
312
  trace() {
301
313
  }
@@ -313,92 +325,109 @@ var NoOpLogger = class _NoOpLogger {
313
325
  return new _NoOpLogger();
314
326
  }
315
327
  };
316
- var PinoLogger = class _PinoLogger {
317
- constructor(logger2) {
318
- this.logger = logger2;
328
+ var UniversalLogger = class _UniversalLogger {
329
+ constructor(config, bindings = {}) {
330
+ this.config = config;
331
+ this.bindings = bindings;
332
+ }
333
+ shouldLog(level) {
334
+ return LOG_LEVELS[level] >= LOG_LEVELS[this.config.level];
335
+ }
336
+ formatMessage(level, message, args, error) {
337
+ const timestamp = (/* @__PURE__ */ new Date()).toISOString();
338
+ const name = this.config.name;
339
+ let logMessage = this.config.prettyPrint ? `[${timestamp}] ${level.toUpperCase()} [${name}]: ${message}` : JSON.stringify({
340
+ timestamp,
341
+ level,
342
+ name,
343
+ message,
344
+ ...this.bindings,
345
+ ...args.length > 0 && { args },
346
+ ...error && {
347
+ error: { message: error.message, stack: error.stack }
348
+ }
349
+ });
350
+ if (this.config.prettyPrint && args.length > 0) {
351
+ logMessage += ` ${args.map(
352
+ (arg) => typeof arg === "object" ? JSON.stringify(arg) : String(arg)
353
+ ).join(" ")}`;
354
+ }
355
+ if (this.config.prettyPrint && error) {
356
+ logMessage += ` Error: ${error.message}`;
357
+ if (error.stack) {
358
+ logMessage += `
359
+ ${error.stack}`;
360
+ }
361
+ }
362
+ return this.redactSensitiveData(logMessage);
363
+ }
364
+ redactSensitiveData(message) {
365
+ let redactedMessage = message;
366
+ for (const field of this.config.redact) {
367
+ const regex = new RegExp(`"${field}"\\s*:\\s*"[^"]*"`, "gi");
368
+ redactedMessage = redactedMessage.replace(
369
+ regex,
370
+ `"${field}":"[REDACTED]"`
371
+ );
372
+ }
373
+ return redactedMessage;
374
+ }
375
+ log(level, message, args, error) {
376
+ if (!this.shouldLog(level)) return;
377
+ const formattedMessage = this.formatMessage(level, message, args, error);
378
+ switch (level) {
379
+ case "trace":
380
+ console.trace(formattedMessage);
381
+ break;
382
+ case "debug":
383
+ console.debug(formattedMessage);
384
+ break;
385
+ case "info":
386
+ console.info(formattedMessage);
387
+ break;
388
+ case "warn":
389
+ console.warn(formattedMessage);
390
+ break;
391
+ case "error":
392
+ case "fatal":
393
+ console.error(formattedMessage);
394
+ break;
395
+ }
319
396
  }
320
397
  trace(message, ...args) {
321
- this.logger.trace({ args }, message);
398
+ this.log("trace", message, args);
322
399
  }
323
400
  debug(message, ...args) {
324
- this.logger.debug({ args }, message);
401
+ this.log("debug", message, args);
325
402
  }
326
403
  info(message, ...args) {
327
- this.logger.info({ args }, message);
404
+ this.log("info", message, args);
328
405
  }
329
406
  warn(message, ...args) {
330
- this.logger.warn({ args }, message);
407
+ this.log("warn", message, args);
331
408
  }
332
409
  error(message, error, ...args) {
333
- this.logger.error({ error, args }, message);
410
+ this.log("error", message, args, error);
334
411
  }
335
412
  fatal(message, error, ...args) {
336
- this.logger.fatal({ error, args }, message);
413
+ this.log("fatal", message, args, error);
337
414
  }
338
415
  child(bindings) {
339
- return new _PinoLogger(this.logger.child(bindings));
416
+ return new _UniversalLogger(this.config, { ...this.bindings, ...bindings });
340
417
  }
341
418
  };
342
419
  function createLogger(config = {}) {
343
- const {
344
- level = "info",
345
- enabled = true,
346
- name = "@shopkit/analytics",
347
- prettyPrint = false,
348
- redact = []
349
- } = config;
350
- if (!enabled) {
351
- return new NoOpLogger();
352
- }
353
- const pinoConfig = {
354
- name,
355
- level,
356
- redact,
357
- browser: {
358
- asObject: true,
359
- serialize: true,
360
- write: {
361
- trace: (o) => console.trace(formatBrowserLog(o)),
362
- debug: (o) => console.debug(formatBrowserLog(o)),
363
- info: (o) => console.info(formatBrowserLog(o)),
364
- warn: (o) => console.warn(formatBrowserLog(o)),
365
- error: (o) => console.error(formatBrowserLog(o)),
366
- fatal: (o) => console.error(formatBrowserLog(o))
367
- }
368
- }
420
+ const fullConfig = {
421
+ level: config.level || "info",
422
+ enabled: config.enabled !== false,
423
+ name: config.name || "@shopkit/analytics",
424
+ prettyPrint: config.prettyPrint || false,
425
+ redact: config.redact || []
369
426
  };
370
- if (prettyPrint && typeof window === "undefined") {
371
- pinoConfig.transport = {
372
- target: "pino-pretty",
373
- options: {
374
- colorize: true,
375
- translateTime: "HH:MM:ss Z",
376
- ignore: "pid,hostname"
377
- }
378
- };
379
- }
380
- const pinoLogger = (0, import_pino.default)(pinoConfig);
381
- return new PinoLogger(pinoLogger);
382
- }
383
- function formatBrowserLog(logObj) {
384
- const { level, time, msg, name, args, error, ...rest } = logObj;
385
- let message = `[${name}] ${msg}`;
386
- if (args && args.length > 0) {
387
- message += ` ${args.map(
388
- (arg) => typeof arg === "object" ? JSON.stringify(arg) : String(arg)
389
- ).join(" ")}`;
390
- }
391
- if (error) {
392
- message += ` Error: ${error.message}`;
393
- if (error.stack) {
394
- message += `
395
- ${error.stack}`;
396
- }
397
- }
398
- if (Object.keys(rest).length > 0) {
399
- message += ` ${JSON.stringify(rest)}`;
427
+ if (!fullConfig.enabled) {
428
+ return new NoOpLogger();
400
429
  }
401
- return message;
430
+ return new UniversalLogger(fullConfig);
402
431
  }
403
432
  var logger = createLogger({
404
433
  enabled: true,
@@ -447,6 +476,38 @@ var BaseAdapter = class {
447
476
  isEnabled() {
448
477
  return this.initialized;
449
478
  }
479
+ /**
480
+ * Extract adapter-specific parameters for this adapter
481
+ * @param params The adapter parameters object
482
+ * @returns Adapter-specific parameters or empty object
483
+ */
484
+ getAdapterParams(params) {
485
+ return params?.[this.name] || {};
486
+ }
487
+ /**
488
+ * Get custom event name or fall back to default
489
+ * @param params The adapter parameters object
490
+ * @param defaultName The default event name to use
491
+ * @returns Custom event name or default
492
+ */
493
+ getEventName(params, defaultName) {
494
+ const adapterParams = this.getAdapterParams(params);
495
+ return adapterParams.event_name || defaultName;
496
+ }
497
+ /**
498
+ * Merge standard event data with adapter-specific parameters
499
+ * @param params The adapter parameters object
500
+ * @param standardData The standard event data
501
+ * @returns Merged data with adapter-specific overrides
502
+ */
503
+ mergeEventData(standardData, params) {
504
+ const adapterParams = this.getAdapterParams(params);
505
+ const { event_name, ...customParams } = adapterParams;
506
+ return {
507
+ ...standardData,
508
+ ...customParams
509
+ };
510
+ }
450
511
  /**
451
512
  * Get a configuration value
452
513
  * @param key The configuration key
@@ -482,7 +543,6 @@ var BaseAdapter = class {
482
543
  // src/types.ts
483
544
  var EventType = /* @__PURE__ */ ((EventType2) => {
484
545
  EventType2["PRODUCT_VIEW"] = "product_view";
485
- EventType2["STARTED_ORDER"] = "started_order";
486
546
  EventType2["PAGE_VIEW"] = "page_view";
487
547
  EventType2["BUTTON_CLICK"] = "button_click";
488
548
  EventType2["FORM_SUBMISSION"] = "form_submission";
@@ -495,11 +555,6 @@ var EventType = /* @__PURE__ */ ((EventType2) => {
495
555
  EventType2["CHECKOUT_STARTED"] = "checkout_started";
496
556
  EventType2["CHECKOUT_COMPLETED"] = "checkout_completed";
497
557
  EventType2["SEARCH"] = "search";
498
- EventType2["CART_PAGE_LAND"] = "cart_page_land";
499
- EventType2["CLOSE_CART"] = "close_cart";
500
- EventType2["QUANTITY_CHANGE"] = "quantity_change";
501
- EventType2["FILTER_APPLIED"] = "filter_applied";
502
- EventType2["NEWSLETTER_SUBSCRIPTION"] = "newsletter_subscription";
503
558
  EventType2["USER_SIGNUP"] = "user_signup";
504
559
  EventType2["USER_LOGIN"] = "user_login";
505
560
  EventType2["CUSTOM"] = "custom";
@@ -510,25 +565,11 @@ var EventType = /* @__PURE__ */ ((EventType2) => {
510
565
  EventType2["FORM_START"] = "form_start";
511
566
  EventType2["ADD_PAYMENT_INFO"] = "add_payment_info";
512
567
  EventType2["CART_VIEWED"] = "cart_viewed";
513
- EventType2["PAGES_SCREENS_PER_SESSION"] = "pages_screens_per_session";
514
568
  EventType2["VIEW_CONTENT"] = "view_content";
515
569
  EventType2["PURCHASE"] = "purchase";
516
570
  EventType2["VIEW_SEARCH_RESULTS"] = "view_search_results";
517
571
  EventType2["ORDER_PLACED"] = "order_placed";
518
572
  EventType2["BEGIN_CHECKOUT"] = "begin_checkout";
519
- EventType2["ITEM_PURCHASED"] = "item_purchased";
520
- EventType2["UPDATE_CART"] = "update_cart";
521
- EventType2["CUSTOMER_REGISTERED"] = "customer_registered";
522
- EventType2["CUSTOMER_LOGGED_IN"] = "customer_logged_in";
523
- EventType2["SHOPIFY_CHECKOUT_UPDATED"] = "shopify_checkout_updated";
524
- EventType2["SHOPIFY_ABANDONED_CHECKOUT"] = "shopify_abandoned_checkout";
525
- EventType2["SHOPIFY_ORDER_FULFILLED"] = "shopify_order_fulfilled";
526
- EventType2["SHOPIFY_CHECKOUT_STARTED"] = "shopify_checkout_started";
527
- EventType2["SHOPIFY_ADD_TO_CART"] = "shopify_add_to_cart";
528
- EventType2["SHOPIFY_REMOVED_FROM_CART"] = "shopify_removed_from_cart";
529
- EventType2["SHOPIFY_UPDATE_CART"] = "shopify_update_cart";
530
- EventType2["SPINFORM_RESULT"] = "spinform_result";
531
- EventType2["COUPON_COPIED"] = "coupon_copied";
532
573
  EventType2["STARTED_CHECKOUT_GK"] = "started_checkout_gk";
533
574
  EventType2["MOBILE_ADDED_GK"] = "mobile_added_gk";
534
575
  EventType2["ADDRESS_SELECTED_GK"] = "address_selected_gk";
@@ -539,19 +580,60 @@ var EventType = /* @__PURE__ */ ((EventType2) => {
539
580
  EventType2["ORDER_COMPLETED"] = "order_completed";
540
581
  EventType2["PIN_CODE_ADDED_GK"] = "pin_code_added_gk";
541
582
  EventType2["ADDRESS_ADDED_GK"] = "address_added_gk";
542
- EventType2["KP_MP_PHONE_NUMBER_LOGGED_IN"] = "kp_mp_phone_number_logged_in";
543
- EventType2["KP_PHONE_NUMBER_LOGGED_IN"] = "kp_phone_number_logged_in";
544
- EventType2["KP_MP_SHOPIFY_LOGGED_IN"] = "kp_mp_shopify_logged_in";
545
- EventType2["KP_MP_SUCCESSFULLY_LOGGED_OUT"] = "kp_mp_successfully_logged_out";
546
- EventType2["KP_WHATSAPP_LOGGED_IN"] = "kp_whatsapp_logged_in";
547
- EventType2["KP_MP_TRUECALLER_LOGGED_IN"] = "kp_mp_truecaller_logged_in";
548
- EventType2["KP_MP_WHATSAPP_LOGGED_IN"] = "kp_mp_whatsapp_logged_in";
549
- EventType2["KP_TRUECALLER_LOGGED_IN"] = "kp_truecaller_logged_in";
550
- EventType2["KP_SHOPIFY_LOGGED_IN"] = "kp_shopify_logged_in";
551
- EventType2["KP_SUCCESSFULLY_LOGGED_OUT"] = "kp_successfully_logged_out";
552
583
  return EventType2;
553
584
  })(EventType || {});
554
585
 
586
+ // src/utils/event-id.ts
587
+ function generateEventId(eventType) {
588
+ const timestamp = Date.now();
589
+ const randomString = Math.random().toString(36).substring(2, 8);
590
+ return `${timestamp}_${randomString}_${eventType}`;
591
+ }
592
+ function getBrowserInfo() {
593
+ if (typeof window === "undefined") {
594
+ return {};
595
+ }
596
+ const userAgent = navigator.userAgent;
597
+ const fbc = getFacebookClickId();
598
+ const fbp = getFacebookBrowserId();
599
+ return {
600
+ clientUserAgent: userAgent,
601
+ fbc,
602
+ fbp
603
+ };
604
+ }
605
+ function getFacebookClickId() {
606
+ if (typeof window === "undefined") {
607
+ return void 0;
608
+ }
609
+ const urlParams = new URLSearchParams(window.location.search);
610
+ const fbclid = urlParams.get("fbclid");
611
+ if (fbclid) {
612
+ return `fb.1.${Date.now()}.${fbclid}`;
613
+ }
614
+ const cookies = document.cookie.split(";");
615
+ for (const cookie of cookies) {
616
+ const [name, value] = cookie.trim().split("=");
617
+ if (name === "_fbc") {
618
+ return value;
619
+ }
620
+ }
621
+ return void 0;
622
+ }
623
+ function getFacebookBrowserId() {
624
+ if (typeof window === "undefined") {
625
+ return void 0;
626
+ }
627
+ const cookies = document.cookie.split(";");
628
+ for (const cookie of cookies) {
629
+ const [name, value] = cookie.trim().split("=");
630
+ if (name === "_fbp") {
631
+ return value;
632
+ }
633
+ }
634
+ return void 0;
635
+ }
636
+
555
637
  // src/adapters/pixel-adapter.ts
556
638
  var PixelAdapter = class extends BaseAdapter {
557
639
  constructor(config) {
@@ -577,18 +659,34 @@ var PixelAdapter = class extends BaseAdapter {
577
659
  );
578
660
  return;
579
661
  }
580
- const pixelId = this.getConfig("pixelId");
581
662
  this.logger.info("Successfully initialized", { pixelId: "***" });
582
663
  this.initialized = true;
583
664
  }
584
665
  /**
585
666
  * Track an event with Facebook Pixel
586
667
  * @param event The event to track
668
+ * @param adapterParams Optional adapter-specific parameters
669
+ */
670
+ async trackEvent(event, adapterParams) {
671
+ if (!event.eventId) {
672
+ event.eventId = generateEventId(event.type);
673
+ }
674
+ this.logger.debug("Tracking event", {
675
+ eventType: event.type,
676
+ eventId: event.eventId
677
+ });
678
+ await this.trackClientSide(event, adapterParams);
679
+ if (this.getConfig("enableCAPI", true)) {
680
+ await this.trackServerSide(event);
681
+ }
682
+ }
683
+ /**
684
+ * Track event on client-side (browser pixel)
587
685
  */
588
- async trackEvent(event) {
686
+ async trackClientSide(event, adapterParams) {
589
687
  if (!this.initialized || typeof window === "undefined" || !window.fbq) {
590
688
  this.logger.warn(
591
- "Cannot track event, adapter not initialized or fbq not available",
689
+ "Cannot track client-side event, adapter not initialized or fbq not available",
592
690
  {
593
691
  eventType: event.type,
594
692
  initialized: this.initialized,
@@ -598,55 +696,95 @@ var PixelAdapter = class extends BaseAdapter {
598
696
  );
599
697
  return;
600
698
  }
601
- this.logger.debug("Tracking event", { eventType: event.type });
602
699
  switch (event.type) {
603
700
  case "page_view" /* PAGE_VIEW */:
604
- this.trackPageView(event);
701
+ this.trackPageView(event, adapterParams);
605
702
  break;
606
703
  case "view_content" /* VIEW_CONTENT */:
607
- this.trackViewContent(event);
704
+ this.trackViewContent(event, adapterParams);
608
705
  break;
609
706
  case "product_view" /* PRODUCT_VIEW */:
610
- this.trackProductView(event);
707
+ this.trackProductView(event, adapterParams);
611
708
  break;
612
709
  case "add_to_cart" /* ADD_TO_CART */:
613
- this.trackAddToCart(event);
710
+ this.trackAddToCart(event, adapterParams);
614
711
  break;
615
712
  case "checkout_started" /* CHECKOUT_STARTED */:
616
- this.trackCheckoutStarted(event);
713
+ this.trackCheckoutStarted(event, adapterParams);
617
714
  break;
618
715
  case "checkout_completed" /* CHECKOUT_COMPLETED */:
619
- this.trackCheckoutCompleted(event);
716
+ this.trackCheckoutCompleted(event, adapterParams);
620
717
  break;
621
718
  case "purchase" /* PURCHASE */:
622
- this.trackPurchase(event);
719
+ this.trackPurchase(event, adapterParams);
623
720
  break;
624
721
  case "add_payment_info" /* ADD_PAYMENT_INFO */:
625
- this.trackAddPaymentInfo(event);
722
+ this.trackAddPaymentInfo(event, adapterParams);
626
723
  break;
627
724
  case "search" /* SEARCH */:
628
- this.trackSearch(event);
725
+ this.trackSearch(event, adapterParams);
629
726
  break;
630
727
  default:
631
728
  this.logger.debug("Unhandled event type", { eventType: event.type });
632
729
  break;
633
730
  }
634
731
  }
732
+ /**
733
+ * Track event on server-side (CAPI) as backup
734
+ */
735
+ async trackServerSide(event) {
736
+ try {
737
+ const browserInfo = getBrowserInfo();
738
+ const payload = {
739
+ events: [event],
740
+ userInfo: browserInfo
741
+ };
742
+ const response = await fetch("/api/events", {
743
+ method: "POST",
744
+ headers: {
745
+ "Content-Type": "application/json"
746
+ },
747
+ body: JSON.stringify(payload)
748
+ });
749
+ if (!response.ok) {
750
+ throw new Error(`Server-side tracking failed: ${response.status}`);
751
+ }
752
+ this.logger.debug(
753
+ `FB Pixel: Server-side backup sent for event ${event.type}`
754
+ );
755
+ } catch (error) {
756
+ this.logger.error(
757
+ `FB Pixel: Server-side backup failed for event ${event.type}: ${error instanceof Error ? error.message : String(error)}`
758
+ );
759
+ }
760
+ }
635
761
  /**
636
762
  * Track a page view event
637
763
  * @param event The page view event
638
764
  */
639
- trackPageView(event) {
640
- const params = this.enhanceWithAffiliateParams({});
641
- window.fbq?.("track", "PageView", params);
642
- this.logger.debug("PageView event tracked", { params });
765
+ trackPageView(event, adapterParams) {
766
+ const eventName = this.getEventName(adapterParams, "PageView");
767
+ const baseParams = this.enhanceWithAffiliateParams({});
768
+ const enhancedParams = this.mergeEventData(baseParams, adapterParams);
769
+ if (event.eventId) {
770
+ window.fbq?.("track", eventName, enhancedParams, {
771
+ eventID: event.eventId
772
+ });
773
+ } else {
774
+ window.fbq?.("track", eventName, enhancedParams);
775
+ }
776
+ this.logger.debug("PageView event tracked", {
777
+ eventName,
778
+ params: enhancedParams
779
+ });
643
780
  }
644
781
  /**
645
782
  * Track a product view event
646
783
  * @param event The product view event
647
784
  */
648
- trackProductView(event) {
649
- const params = {
785
+ trackProductView(event, adapterParams) {
786
+ const eventName = this.getEventName(adapterParams, "ViewContent");
787
+ const baseParams = {
650
788
  content_type: "product_group",
651
789
  content_ids: [event.productId],
652
790
  content_name: event.productName,
@@ -654,34 +792,54 @@ var PixelAdapter = class extends BaseAdapter {
654
792
  value: event.price,
655
793
  currency: event.currency || "INR"
656
794
  };
657
- window.fbq?.(
658
- "track",
659
- "ViewContent",
660
- this.enhanceWithAffiliateParams(params)
661
- );
795
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
796
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
797
+ if (event.eventId) {
798
+ window.fbq?.("track", eventName, enhancedParams, {
799
+ eventID: event.eventId
800
+ });
801
+ } else {
802
+ window.fbq?.("track", eventName, enhancedParams);
803
+ }
804
+ this.logger.debug("ProductView event tracked", {
805
+ eventName,
806
+ params: enhancedParams
807
+ });
662
808
  }
663
809
  /**
664
810
  * Track an add to cart event
665
811
  * @param event The add to cart event
666
812
  */
667
- trackAddToCart(event) {
668
- const params = {
813
+ trackAddToCart(event, adapterParams) {
814
+ const eventName = this.getEventName(adapterParams, "AddToCart");
815
+ const baseParams = {
669
816
  content_type: "product_group",
670
817
  content_ids: [event.productId],
671
818
  content_name: event.productName,
672
819
  value: event.price,
673
820
  currency: event.currency || "INR"
674
821
  };
675
- const enhancedParams = this.enhanceWithAffiliateParams(params);
676
- window.fbq?.("track", "AddToCart", enhancedParams);
677
- this.logger.debug("AddToCart event tracked", { params: enhancedParams });
822
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
823
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
824
+ if (event.eventId) {
825
+ window.fbq?.("track", eventName, enhancedParams, {
826
+ eventID: event.eventId
827
+ });
828
+ } else {
829
+ window.fbq?.("track", eventName, enhancedParams);
830
+ }
831
+ this.logger.debug("AddToCart event tracked", {
832
+ eventName,
833
+ params: enhancedParams
834
+ });
678
835
  }
679
836
  /**
680
837
  * Track a checkout started event
681
838
  * @param event The checkout started event
682
839
  */
683
- trackCheckoutStarted(event) {
684
- const params = {
840
+ trackCheckoutStarted(event, adapterParams) {
841
+ const eventName = this.getEventName(adapterParams, "InitiateCheckout");
842
+ const baseParams = {
685
843
  content_ids: event.items.map((item) => item.productId),
686
844
  content_type: "product_group",
687
845
  value: event.cartValue,
@@ -693,18 +851,27 @@ var PixelAdapter = class extends BaseAdapter {
693
851
  item_price: item.price
694
852
  }))
695
853
  };
696
- window.fbq?.(
697
- "track",
698
- "InitiateCheckout",
699
- this.enhanceWithAffiliateParams(params)
700
- );
854
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
855
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
856
+ if (event.eventId) {
857
+ window.fbq?.("track", eventName, enhancedParams, {
858
+ eventID: event.eventId
859
+ });
860
+ } else {
861
+ window.fbq?.("track", eventName, enhancedParams);
862
+ }
863
+ this.logger.debug("CheckoutStarted event tracked", {
864
+ eventName,
865
+ params: enhancedParams
866
+ });
701
867
  }
702
868
  /**
703
869
  * Track a checkout completed event
704
870
  * @param event The checkout completed event
705
871
  */
706
- trackCheckoutCompleted(event) {
707
- const params = {
872
+ trackCheckoutCompleted(event, adapterParams) {
873
+ const eventName = this.getEventName(adapterParams, "Purchase");
874
+ const baseParams = {
708
875
  value: event.cartValue,
709
876
  currency: event.currency || "INR",
710
877
  content_type: "product_group",
@@ -716,26 +883,52 @@ var PixelAdapter = class extends BaseAdapter {
716
883
  item_price: item.price
717
884
  }))
718
885
  };
719
- window.fbq?.("track", "Purchase", this.enhanceWithAffiliateParams(params));
886
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
887
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
888
+ if (event.eventId) {
889
+ window.fbq?.("track", eventName, enhancedParams, {
890
+ eventID: event.eventId
891
+ });
892
+ } else {
893
+ window.fbq?.("track", eventName, enhancedParams);
894
+ }
895
+ this.logger.debug("CheckoutCompleted event tracked", {
896
+ eventName,
897
+ params: enhancedParams
898
+ });
720
899
  }
721
900
  /**
722
901
  * Track a search event
723
902
  * @param event The search event
724
903
  */
725
- trackSearch(event) {
726
- const params = {
904
+ trackSearch(event, adapterParams) {
905
+ const eventName = this.getEventName(adapterParams, "Search");
906
+ const baseParams = {
727
907
  search_string: event.searchTerm,
728
908
  content_category: "product",
729
909
  content_ids: event.content_ids || []
730
910
  };
731
- window.fbq?.("track", "Search", this.enhanceWithAffiliateParams(params));
911
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
912
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
913
+ if (event.eventId) {
914
+ window.fbq?.("track", eventName, enhancedParams, {
915
+ eventID: event.eventId
916
+ });
917
+ } else {
918
+ window.fbq?.("track", eventName, enhancedParams);
919
+ }
920
+ this.logger.debug("Search event tracked", {
921
+ eventName,
922
+ params: enhancedParams
923
+ });
732
924
  }
733
925
  /**
734
926
  * Track an add payment info event
735
927
  * @param event The add payment info event
736
928
  */
737
- trackAddPaymentInfo(event) {
738
- const params = {
929
+ trackAddPaymentInfo(event, adapterParams) {
930
+ const eventName = this.getEventName(adapterParams, "AddPaymentInfo");
931
+ const baseParams = {
739
932
  value: event.cartValue,
740
933
  currency: event.currency || "INR",
741
934
  content_type: "product_group",
@@ -747,18 +940,27 @@ var PixelAdapter = class extends BaseAdapter {
747
940
  })),
748
941
  payment_type: event.paymentType || ""
749
942
  };
750
- window.fbq?.(
751
- "track",
752
- "AddPaymentInfo",
753
- this.enhanceWithAffiliateParams(params)
754
- );
943
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
944
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
945
+ if (event.eventId) {
946
+ window.fbq?.("track", eventName, enhancedParams, {
947
+ eventID: event.eventId
948
+ });
949
+ } else {
950
+ window.fbq?.("track", eventName, enhancedParams);
951
+ }
952
+ this.logger.debug("AddPaymentInfo event tracked", {
953
+ eventName,
954
+ params: enhancedParams
955
+ });
755
956
  }
756
957
  /**
757
958
  * Track a view content event
758
959
  * @param event The view content event
759
960
  */
760
- trackViewContent(event) {
761
- const params = {
961
+ trackViewContent(event, adapterParams) {
962
+ const eventName = this.getEventName(adapterParams, "ViewContent");
963
+ const baseParams = {
762
964
  content_type: event.content_type || "product",
763
965
  content_ids: event.content_ids || [],
764
966
  content_name: event.content_name || "",
@@ -766,18 +968,27 @@ var PixelAdapter = class extends BaseAdapter {
766
968
  value: event.value || 0,
767
969
  currency: event.currency || "INR"
768
970
  };
769
- window.fbq?.(
770
- "track",
771
- "ViewContent",
772
- this.enhanceWithAffiliateParams(params)
773
- );
971
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
972
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
973
+ if (event.eventId) {
974
+ window.fbq?.("track", eventName, enhancedParams, {
975
+ eventID: event.eventId
976
+ });
977
+ } else {
978
+ window.fbq?.("track", eventName, enhancedParams);
979
+ }
980
+ this.logger.debug("ViewContent event tracked", {
981
+ eventName,
982
+ params: enhancedParams
983
+ });
774
984
  }
775
985
  /**
776
986
  * Track a purchase event
777
987
  * @param event The purchase event
778
988
  */
779
- trackPurchase(event) {
780
- const params = {
989
+ trackPurchase(event, adapterParams) {
990
+ const eventName = this.getEventName(adapterParams, "Purchase");
991
+ const baseParams = {
781
992
  value: event.value,
782
993
  currency: event.currency || "INR",
783
994
  content_type: event.content_type || "product_group",
@@ -785,15 +996,19 @@ var PixelAdapter = class extends BaseAdapter {
785
996
  num_items: event.num_items || 1,
786
997
  contents: event.contents || []
787
998
  };
788
- window.fbq?.("track", "Purchase", this.enhanceWithAffiliateParams(params));
789
- }
790
- /**
791
- * Convert an event to Facebook Pixel parameters
792
- * @param event The event to convert
793
- */
794
- eventToParams(event) {
795
- const { type, timestamp, ...params } = event;
796
- return this.enhanceWithAffiliateParams(params);
999
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1000
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1001
+ if (event.eventId) {
1002
+ window.fbq?.("track", eventName, enhancedParams, {
1003
+ eventID: event.eventId
1004
+ });
1005
+ } else {
1006
+ window.fbq?.("track", eventName, enhancedParams);
1007
+ }
1008
+ this.logger.debug("Purchase event tracked", {
1009
+ eventName,
1010
+ params: enhancedParams
1011
+ });
797
1012
  }
798
1013
  };
799
1014
 
@@ -842,8 +1057,9 @@ var GoogleAdapter = class extends BaseAdapter {
842
1057
  /**
843
1058
  * Track an event with Google Analytics
844
1059
  * @param event The event to track
1060
+ * @param adapterParams Optional adapter-specific parameters
845
1061
  */
846
- async trackEvent(event) {
1062
+ async trackEvent(event, adapterParams) {
847
1063
  this.logger.debug("Attempting to track event", {
848
1064
  initialized: this.initialized,
849
1065
  hasWindow: typeof window !== "undefined",
@@ -869,76 +1085,93 @@ var GoogleAdapter = class extends BaseAdapter {
869
1085
  });
870
1086
  switch (event.type) {
871
1087
  case "page_view" /* PAGE_VIEW */:
872
- this.trackPageView(event, measurementId);
1088
+ this.trackPageView(
1089
+ event,
1090
+ measurementId,
1091
+ adapterParams
1092
+ );
873
1093
  break;
874
1094
  case "user_engagement" /* USER_ENGAGEMENT */:
875
- this.trackUserEngagement();
1095
+ this.trackUserEngagement(adapterParams);
876
1096
  break;
877
1097
  case "session_start" /* SESSION_START */:
878
- this.trackSessionStart();
1098
+ this.trackSessionStart(adapterParams);
879
1099
  break;
880
1100
  case "first_visit" /* FIRST_VISIT */:
881
- this.trackFirstVisit();
1101
+ this.trackFirstVisit(adapterParams);
882
1102
  break;
883
1103
  case "view_item" /* VIEW_ITEM */:
884
- this.trackViewItem(event);
1104
+ this.trackViewItem(event, adapterParams);
885
1105
  break;
886
1106
  case "viewed_product" /* VIEWED_PRODUCT */:
887
- this.trackViewedProduct(event);
1107
+ this.trackViewedProduct(event, adapterParams);
888
1108
  break;
889
1109
  case "checkout_payment" /* CHECKOUT_PAYMENT */:
890
- this.trackCheckoutPayment(event);
1110
+ this.trackCheckoutPayment(
1111
+ event,
1112
+ adapterParams
1113
+ );
891
1114
  break;
892
1115
  case "scroll" /* SCROLL */:
893
- this.trackScroll();
1116
+ this.trackScroll(adapterParams);
894
1117
  break;
895
1118
  case "add_to_cart" /* ADD_TO_CART */:
896
- case "shopify_add_to_cart" /* SHOPIFY_ADD_TO_CART */:
897
- this.trackAddToCart(event);
1119
+ this.trackAddToCart(event, adapterParams);
898
1120
  break;
899
1121
  case "form_start" /* FORM_START */:
900
- this.trackFormStart();
1122
+ this.trackFormStart(adapterParams);
901
1123
  break;
902
1124
  case "checkout_started" /* CHECKOUT_STARTED */:
903
- this.trackCheckoutStarted(event);
1125
+ this.trackCheckoutStarted(
1126
+ event,
1127
+ adapterParams
1128
+ );
904
1129
  break;
905
1130
  case "form_submission" /* FORM_SUBMISSION */:
906
- this.trackFormSubmission(event);
1131
+ this.trackFormSubmission(event, adapterParams);
907
1132
  break;
908
1133
  case "search" /* SEARCH */:
909
- this.trackSearch(event);
1134
+ this.trackSearch(event, adapterParams);
910
1135
  break;
911
1136
  case "checkout_completed" /* CHECKOUT_COMPLETED */:
912
- this.trackCheckoutCompleted(event);
1137
+ this.trackCheckoutCompleted(
1138
+ event,
1139
+ adapterParams
1140
+ );
913
1141
  break;
914
1142
  case "add_payment_info" /* ADD_PAYMENT_INFO */:
915
- this.trackAddPaymentInfo(event);
1143
+ this.trackAddPaymentInfo(event, adapterParams);
916
1144
  break;
917
1145
  case "view_content" /* VIEW_CONTENT */:
918
- this.trackViewContent(event);
1146
+ this.trackViewContent(event, adapterParams);
919
1147
  break;
920
1148
  case "purchase" /* PURCHASE */:
921
- this.trackPurchase(event);
1149
+ this.trackPurchase(event, adapterParams);
922
1150
  break;
923
1151
  case "view_search_results" /* VIEW_SEARCH_RESULTS */:
924
- this.trackViewSearchResults(event);
1152
+ this.trackViewSearchResults(
1153
+ event,
1154
+ adapterParams
1155
+ );
925
1156
  break;
926
1157
  case "order_placed" /* ORDER_PLACED */:
927
- this.trackOrderPlaced(event);
1158
+ this.trackOrderPlaced(event, adapterParams);
928
1159
  break;
929
1160
  case "begin_checkout" /* BEGIN_CHECKOUT */:
930
- this.trackBeginCheckout(event);
1161
+ this.trackBeginCheckout(event, adapterParams);
931
1162
  break;
932
1163
  case "custom" /* CUSTOM */:
933
- this.trackCustomEvent(event);
1164
+ this.trackCustomEvent(event, adapterParams);
934
1165
  break;
935
1166
  default: {
936
- const params = this.eventToParams(event);
937
- window.gtag(
938
- "event",
939
- event.type,
940
- this.enhanceWithAffiliateParams(params)
1167
+ const eventName = this.getEventName(adapterParams, event.type);
1168
+ const baseParams = this.eventToParams(event);
1169
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1170
+ const enhancedParams = this.mergeEventData(
1171
+ affiliateParams,
1172
+ adapterParams
941
1173
  );
1174
+ window.gtag("event", eventName, enhancedParams);
942
1175
  break;
943
1176
  }
944
1177
  }
@@ -948,8 +1181,9 @@ var GoogleAdapter = class extends BaseAdapter {
948
1181
  * @param event The page view event
949
1182
  * @param measurementId The Google Analytics measurement ID
950
1183
  */
951
- trackPageView(event, measurementId) {
952
- const params = {
1184
+ trackPageView(event, measurementId, adapterParams) {
1185
+ const eventName = this.getEventName(adapterParams, "page_view");
1186
+ const baseParams = {
953
1187
  page_path: event.path,
954
1188
  page_title: event.title || document.title,
955
1189
  page_location: event.page_location || window.location.href,
@@ -972,14 +1206,13 @@ var GoogleAdapter = class extends BaseAdapter {
972
1206
  user_properties: event.user_properties,
973
1207
  session_engaged: event.session_engaged
974
1208
  };
975
- window.gtag?.(
976
- "event",
977
- "page_view",
978
- this.enhanceWithAffiliateParams(params)
979
- );
1209
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1210
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1211
+ window.gtag?.("event", eventName, enhancedParams);
980
1212
  }
981
- trackUserEngagement() {
982
- const params = {
1213
+ trackUserEngagement(adapterParams) {
1214
+ const eventName = this.getEventName(adapterParams, "user_engagement");
1215
+ const baseParams = {
983
1216
  batch_ordering_id: "",
984
1217
  batch_page_id: "",
985
1218
  campaign: "",
@@ -996,14 +1229,13 @@ var GoogleAdapter = class extends BaseAdapter {
996
1229
  srsltid: "",
997
1230
  term: ""
998
1231
  };
999
- window.gtag?.(
1000
- "event",
1001
- "user_engagement",
1002
- this.enhanceWithAffiliateParams(params)
1003
- );
1232
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1233
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1234
+ window.gtag?.("event", eventName, enhancedParams);
1004
1235
  }
1005
- trackSessionStart() {
1006
- const params = {
1236
+ trackSessionStart(adapterParams) {
1237
+ const eventName = this.getEventName(adapterParams, "session_start");
1238
+ const baseParams = {
1007
1239
  batch_ordering_id: "",
1008
1240
  batch_page_id: "",
1009
1241
  campaign: "",
@@ -1022,14 +1254,13 @@ var GoogleAdapter = class extends BaseAdapter {
1022
1254
  srsltid: "",
1023
1255
  term: ""
1024
1256
  };
1025
- window.gtag?.(
1026
- "event",
1027
- "session_start",
1028
- this.enhanceWithAffiliateParams(params)
1029
- );
1257
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1258
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1259
+ window.gtag?.("event", eventName, enhancedParams);
1030
1260
  }
1031
- trackFirstVisit() {
1032
- const params = {
1261
+ trackFirstVisit(adapterParams) {
1262
+ const eventName = this.getEventName(adapterParams, "first_visit");
1263
+ const baseParams = {
1033
1264
  batch_ordering_id: "",
1034
1265
  batch_page_id: "",
1035
1266
  campaign: "",
@@ -1050,25 +1281,24 @@ var GoogleAdapter = class extends BaseAdapter {
1050
1281
  page_source: "",
1051
1282
  page_term: ""
1052
1283
  };
1053
- window.gtag?.(
1054
- "event",
1055
- "first_visit",
1056
- this.enhanceWithAffiliateParams(params)
1057
- );
1284
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1285
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1286
+ window.gtag?.("event", eventName, enhancedParams);
1058
1287
  }
1059
- trackViewItem(event) {
1060
- window.gtag?.(
1061
- "event",
1062
- "view_item",
1063
- this.enhanceWithAffiliateParams({
1064
- currency: event.currency,
1065
- value: event.value,
1066
- items: event.items
1067
- })
1068
- );
1288
+ trackViewItem(event, adapterParams) {
1289
+ const eventName = this.getEventName(adapterParams, "view_item");
1290
+ const baseParams = {
1291
+ currency: event.currency,
1292
+ value: event.value,
1293
+ items: event.items
1294
+ };
1295
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1296
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1297
+ window.gtag?.("event", eventName, enhancedParams);
1069
1298
  }
1070
- trackScroll() {
1071
- const params = {
1299
+ trackScroll(adapterParams) {
1300
+ const eventName = this.getEventName(adapterParams, "scroll");
1301
+ const baseParams = {
1072
1302
  batch_ordering_id: "",
1073
1303
  batch_page_id: "",
1074
1304
  engagement_time_msec: void 0,
@@ -1082,46 +1312,49 @@ var GoogleAdapter = class extends BaseAdapter {
1082
1312
  percent_scrolled: 90
1083
1313
  // or dynamically captured
1084
1314
  };
1085
- window.gtag?.("event", "scroll", this.enhanceWithAffiliateParams(params));
1315
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1316
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1317
+ window.gtag?.("event", eventName, enhancedParams);
1086
1318
  }
1087
- trackCheckoutPayment(event) {
1088
- window.gtag?.(
1089
- "event",
1090
- "checkout_payment",
1091
- this.enhanceWithAffiliateParams({
1092
- currency: event.currency,
1093
- value: event.cartValue,
1094
- items: event.items.map((item) => ({
1095
- item_id: item.productId,
1096
- item_name: item.productName,
1097
- price: item.price,
1098
- quantity: item.quantity
1099
- }))
1100
- })
1101
- );
1319
+ trackCheckoutPayment(event, adapterParams) {
1320
+ const eventName = this.getEventName(adapterParams, "checkout_payment");
1321
+ const baseParams = {
1322
+ currency: event.currency,
1323
+ value: event.cartValue,
1324
+ items: event.items.map((item) => ({
1325
+ item_id: item.productId,
1326
+ item_name: item.productName,
1327
+ price: item.price,
1328
+ quantity: item.quantity
1329
+ }))
1330
+ };
1331
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1332
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1333
+ window.gtag?.("event", eventName, enhancedParams);
1102
1334
  }
1103
- trackViewedProduct(event) {
1104
- window.gtag?.(
1105
- "event",
1106
- "viewed_product",
1107
- this.enhanceWithAffiliateParams({
1108
- currency: event.currency,
1109
- value: event.price,
1110
- items: [
1111
- {
1112
- item_id: event.productId,
1113
- item_name: event.productName,
1114
- price: event.price,
1115
- currency: event.currency
1116
- }
1117
- ],
1118
- view_duration: event.viewDuration
1119
- })
1120
- );
1335
+ trackViewedProduct(event, adapterParams) {
1336
+ const eventName = this.getEventName(adapterParams, "viewed_product");
1337
+ const baseParams = {
1338
+ currency: event.currency,
1339
+ value: event.price,
1340
+ items: [
1341
+ {
1342
+ item_id: event.productId,
1343
+ item_name: event.productName,
1344
+ price: event.price,
1345
+ currency: event.currency
1346
+ }
1347
+ ],
1348
+ view_duration: event.viewDuration
1349
+ };
1350
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1351
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1352
+ window.gtag?.("event", eventName, enhancedParams);
1121
1353
  }
1122
- trackAddToCart(event) {
1354
+ trackAddToCart(event, adapterParams) {
1123
1355
  this.logger.debug("Processing add_to_cart event", { event });
1124
- const params = {
1356
+ const eventName = this.getEventName(adapterParams, "add_to_cart");
1357
+ const baseParams = {
1125
1358
  currency: event.currency || "INR",
1126
1359
  value: event.price * (event.quantity || 1),
1127
1360
  // Calculate total value
@@ -1147,14 +1380,17 @@ var GoogleAdapter = class extends BaseAdapter {
1147
1380
  user_id: event.user_id,
1148
1381
  user_properties: event.user_properties
1149
1382
  };
1150
- const enhancedParams = this.enhanceWithAffiliateParams(params);
1383
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1384
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1151
1385
  this.logger.debug("Sending add_to_cart event to gtag", {
1386
+ eventName,
1152
1387
  params: enhancedParams
1153
1388
  });
1154
- window.gtag?.("event", "add_to_cart", enhancedParams);
1389
+ window.gtag?.("event", eventName, enhancedParams);
1155
1390
  }
1156
- trackFormStart() {
1157
- const params = {
1391
+ trackFormStart(adapterParams) {
1392
+ const eventName = this.getEventName(adapterParams, "form_start");
1393
+ const baseParams = {
1158
1394
  batch_ordering_id: "",
1159
1395
  batch_page_id: "",
1160
1396
  engagement_time_msec: void 0,
@@ -1172,14 +1408,13 @@ var GoogleAdapter = class extends BaseAdapter {
1172
1408
  page_referrer: document.referrer,
1173
1409
  page_title: document.title
1174
1410
  };
1175
- window.gtag?.(
1176
- "event",
1177
- "form_start",
1178
- this.enhanceWithAffiliateParams(params)
1179
- );
1411
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1412
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1413
+ window.gtag?.("event", eventName, enhancedParams);
1180
1414
  }
1181
- trackCheckoutStarted(event) {
1182
- const params = {
1415
+ trackCheckoutStarted(event, adapterParams) {
1416
+ const eventName = this.getEventName(adapterParams, "begin_checkout");
1417
+ const baseParams = {
1183
1418
  batch_ordering_id: "",
1184
1419
  batch_page_id: "",
1185
1420
  currency: event.currency || "INR",
@@ -1202,14 +1437,13 @@ var GoogleAdapter = class extends BaseAdapter {
1202
1437
  item_variant: item.variant
1203
1438
  }))
1204
1439
  };
1205
- window.gtag?.(
1206
- "event",
1207
- "begin_checkout",
1208
- this.enhanceWithAffiliateParams(params)
1209
- );
1440
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1441
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1442
+ window.gtag?.("event", eventName, enhancedParams);
1210
1443
  }
1211
- trackFormSubmission(event) {
1212
- const params = {
1444
+ trackFormSubmission(event, adapterParams) {
1445
+ const eventName = this.getEventName(adapterParams, "form_submit");
1446
+ const baseParams = {
1213
1447
  batch_ordering_id: "",
1214
1448
  batch_page_id: "",
1215
1449
  engagement_time_msec: void 0,
@@ -1223,14 +1457,13 @@ var GoogleAdapter = class extends BaseAdapter {
1223
1457
  page_referrer: document.referrer,
1224
1458
  page_title: document.title
1225
1459
  };
1226
- window.gtag?.(
1227
- "event",
1228
- "form_submit",
1229
- this.enhanceWithAffiliateParams(params)
1230
- );
1460
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1461
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1462
+ window.gtag?.("event", eventName, enhancedParams);
1231
1463
  }
1232
- trackSearch(event) {
1233
- const params = {
1464
+ trackSearch(event, adapterParams) {
1465
+ const eventName = this.getEventName(adapterParams, "search");
1466
+ const baseParams = {
1234
1467
  batch_ordering_id: "",
1235
1468
  batch_page_id: "",
1236
1469
  engagement_time_msec: void 0,
@@ -1242,14 +1475,17 @@ var GoogleAdapter = class extends BaseAdapter {
1242
1475
  page_title: document.title,
1243
1476
  search_term: event.searchTerm
1244
1477
  };
1245
- window.gtag?.("event", "search", this.enhanceWithAffiliateParams(params));
1478
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1479
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1480
+ window.gtag?.("event", eventName, enhancedParams);
1246
1481
  }
1247
1482
  /**
1248
1483
  * Track a checkout completed event
1249
1484
  * @param event The checkout completed event
1250
1485
  */
1251
- trackCheckoutCompleted(event) {
1252
- const params = {
1486
+ trackCheckoutCompleted(event, adapterParams) {
1487
+ const eventName = this.getEventName(adapterParams, "purchase");
1488
+ const baseParams = {
1253
1489
  transaction_id: event.orderId,
1254
1490
  currency: event.currency || "INR",
1255
1491
  value: event.cartValue,
@@ -1261,22 +1497,28 @@ var GoogleAdapter = class extends BaseAdapter {
1261
1497
  item_variant: item.variant
1262
1498
  }))
1263
1499
  };
1264
- window.gtag?.("event", "purchase", this.enhanceWithAffiliateParams(params));
1500
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1501
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1502
+ window.gtag?.("event", eventName, enhancedParams);
1265
1503
  }
1266
1504
  /**
1267
1505
  * Track a custom event
1268
1506
  * @param event The custom event
1269
1507
  */
1270
- trackCustomEvent(event) {
1271
- const params = event.properties || {};
1272
- window.gtag?.("event", event.name, this.enhanceWithAffiliateParams(params));
1508
+ trackCustomEvent(event, adapterParams) {
1509
+ const eventName = this.getEventName(adapterParams, event.name);
1510
+ const baseParams = event.properties || {};
1511
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1512
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1513
+ window.gtag?.("event", eventName, enhancedParams);
1273
1514
  }
1274
1515
  /**
1275
1516
  * Track an add payment info event
1276
1517
  * @param event The add payment info event
1277
1518
  */
1278
- trackAddPaymentInfo(event) {
1279
- const params = {
1519
+ trackAddPaymentInfo(event, adapterParams) {
1520
+ const eventName = this.getEventName(adapterParams, "add_payment_info");
1521
+ const baseParams = {
1280
1522
  currency: event.currency || "INR",
1281
1523
  value: event.cartValue,
1282
1524
  payment_type: event.paymentType || "",
@@ -1288,18 +1530,17 @@ var GoogleAdapter = class extends BaseAdapter {
1288
1530
  item_variant: item.variant
1289
1531
  }))
1290
1532
  };
1291
- window.gtag?.(
1292
- "event",
1293
- "add_payment_info",
1294
- this.enhanceWithAffiliateParams(params)
1295
- );
1533
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1534
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1535
+ window.gtag?.("event", eventName, enhancedParams);
1296
1536
  }
1297
1537
  /**
1298
1538
  * Track a view content event
1299
1539
  * @param event The view content event
1300
1540
  */
1301
- trackViewContent(event) {
1302
- const params = {
1541
+ trackViewContent(event, adapterParams) {
1542
+ const eventName = this.getEventName(adapterParams, "view_item");
1543
+ const baseParams = {
1303
1544
  currency: event.currency || "USD",
1304
1545
  value: event.value || 0,
1305
1546
  items: event.items?.map((item) => ({
@@ -1328,18 +1569,17 @@ var GoogleAdapter = class extends BaseAdapter {
1328
1569
  user_id: event.user_id,
1329
1570
  user_properties: event.user_properties
1330
1571
  };
1331
- window.gtag?.(
1332
- "event",
1333
- "view_item",
1334
- this.enhanceWithAffiliateParams(params)
1335
- );
1572
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1573
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1574
+ window.gtag?.("event", eventName, enhancedParams);
1336
1575
  }
1337
1576
  /**
1338
1577
  * Track a purchase event
1339
1578
  * @param event The purchase event
1340
1579
  */
1341
- trackPurchase(event) {
1342
- const params = {
1580
+ trackPurchase(event, adapterParams) {
1581
+ const eventName = this.getEventName(adapterParams, "purchase");
1582
+ const baseParams = {
1343
1583
  transaction_id: event.transaction_id,
1344
1584
  value: event.value,
1345
1585
  currency: event.currency || "USD",
@@ -1372,14 +1612,17 @@ var GoogleAdapter = class extends BaseAdapter {
1372
1612
  user_id: event.user_id,
1373
1613
  user_properties: event.user_properties
1374
1614
  };
1375
- window.gtag?.("event", "purchase", this.enhanceWithAffiliateParams(params));
1615
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1616
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1617
+ window.gtag?.("event", eventName, enhancedParams);
1376
1618
  }
1377
1619
  /**
1378
1620
  * Track a view search results event
1379
1621
  * @param event The view search results event
1380
1622
  */
1381
- trackViewSearchResults(event) {
1382
- const params = {
1623
+ trackViewSearchResults(event, adapterParams) {
1624
+ const eventName = this.getEventName(adapterParams, "view_search_results");
1625
+ const baseParams = {
1383
1626
  search_term: event.search_term,
1384
1627
  // GA4-specific parameters
1385
1628
  batch_ordering_id: event.batch_ordering_id || "",
@@ -1394,18 +1637,17 @@ var GoogleAdapter = class extends BaseAdapter {
1394
1637
  user_id: event.user_id,
1395
1638
  user_properties: event.user_properties
1396
1639
  };
1397
- window.gtag?.(
1398
- "event",
1399
- "view_search_results",
1400
- this.enhanceWithAffiliateParams(params)
1401
- );
1640
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1641
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1642
+ window.gtag?.("event", eventName, enhancedParams);
1402
1643
  }
1403
1644
  /**
1404
1645
  * Track an order placed event
1405
1646
  * @param event The order placed event
1406
1647
  */
1407
- trackOrderPlaced(event) {
1408
- const params = {
1648
+ trackOrderPlaced(event, adapterParams) {
1649
+ const eventName = this.getEventName(adapterParams, "purchase");
1650
+ const baseParams = {
1409
1651
  transaction_id: event.order_id,
1410
1652
  value: event.total_amount,
1411
1653
  currency: event.currency || "USD",
@@ -1431,14 +1673,17 @@ var GoogleAdapter = class extends BaseAdapter {
1431
1673
  user_id: event.user_id,
1432
1674
  user_properties: event.user_properties
1433
1675
  };
1434
- window.gtag?.("event", "purchase", this.enhanceWithAffiliateParams(params));
1676
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1677
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1678
+ window.gtag?.("event", eventName, enhancedParams);
1435
1679
  }
1436
1680
  /**
1437
1681
  * Track a begin checkout event
1438
1682
  * @param event The begin checkout event
1439
1683
  */
1440
- trackBeginCheckout(event) {
1441
- const params = {
1684
+ trackBeginCheckout(event, adapterParams) {
1685
+ const eventName = this.getEventName(adapterParams, "begin_checkout");
1686
+ const baseParams = {
1442
1687
  currency: event.currency || "USD",
1443
1688
  value: event.value || 0,
1444
1689
  coupon: event.coupon,
@@ -1468,11 +1713,9 @@ var GoogleAdapter = class extends BaseAdapter {
1468
1713
  user_id: event.user_id,
1469
1714
  user_properties: event.user_properties
1470
1715
  };
1471
- window.gtag?.(
1472
- "event",
1473
- "begin_checkout",
1474
- this.enhanceWithAffiliateParams(params)
1475
- );
1716
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1717
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1718
+ window.gtag?.("event", eventName, enhancedParams);
1476
1719
  }
1477
1720
  /**
1478
1721
  * Convert an event to Google Analytics parameters
@@ -1502,44 +1745,9 @@ var EventNames = {
1502
1745
  SEARCH: "Search",
1503
1746
  // User events
1504
1747
  USER_SIGNED_UP: "User Signed Up",
1505
- USER_LOGGED_IN: "User Logged In",
1506
- // MoEngage events
1507
- ITEM_PURCHASED: "Item Purchased",
1508
- UPDATE_CART: "Update Cart",
1509
- CUSTOMER_REGISTERED: "Customer Registered",
1510
- CUSTOMER_LOGGED_IN: "Customer Logged In",
1511
- SHOPIFY_CHECKOUT_UPDATED: "Shopify - Checkout Updated",
1512
- SHOPIFY_ABANDONED_CHECKOUT: "Shopify - Abandoned Checkout",
1513
- SHOPIFY_ORDER_FULFILLED: "Shopify - Order Fulfilled",
1514
- SHOPIFY_CHECKOUT_STARTED: "Shopify - Checkout Started",
1515
- SHOPIFY_ADD_TO_CART: "Shopify - Add To Cart",
1516
- SHOPIFY_REMOVED_FROM_CART: "Shopify - Removed From Cart",
1517
- SHOPIFY_UPDATE_CART: "Shopify - Update Cart",
1518
- SPINFORM_RESULT: "Spinform Result",
1519
- COUPON_COPIED: "Coupon Copied",
1520
- STARTED_CHECKOUT_GK: "Started Checkout GK",
1521
- MOBILE_ADDED_GK: "Mobile Added GK",
1522
- ADDRESS_SELECTED_GK: "Address Selected GK",
1523
- ADDRESS_COMPLETED_GK: "Address Completed GK",
1524
- PAYMENT_METHOD_SELECTED_GK: "Payment Method Selected GK",
1525
- PAYMENT_COMPLETED_GK: "Payment Completed GK",
1526
- ORDER_SUCCESS: "Order Success",
1527
- ORDER_COMPLETED: "Order Completed",
1528
- PIN_CODE_ADDED_GK: "PIN Code Added GK",
1529
- ADDRESS_ADDED_GK: "Address Added GK",
1530
- KP_MP_PHONE_NUMBER_LOGGED_IN: "KP MP Phone Number Logged In",
1531
- KP_PHONE_NUMBER_LOGGED_IN: "KP Phone Number Logged In",
1532
- KP_MP_SHOPIFY_LOGGED_IN: "KP MP Shopify Logged In",
1533
- KP_MP_SUCCESSFULLY_LOGGED_OUT: "KP MP Successfully Logged Out",
1534
- KP_WHATSAPP_LOGGED_IN: "KP Whatsapp Logged In",
1535
- KP_MP_TRUECALLER_LOGGED_IN: "KP MP Truecaller Logged In",
1536
- KP_MP_WHATSAPP_LOGGED_IN: "KP MP Whatsapp Logged In",
1537
- KP_TRUECALLER_LOGGED_IN: "KP Truecaller Logged In",
1538
- KP_SHOPIFY_LOGGED_IN: "KP Shopify Logged In",
1539
- KP_SUCCESSFULLY_LOGGED_OUT: "KP Successfully Logged Out"
1748
+ USER_LOGGED_IN: "User Logged In"
1540
1749
  };
1541
1750
  var DEFAULT_CURRENCY = "INR";
1542
- var HARDCODED_HANDLE = "ryze-gums";
1543
1751
 
1544
1752
  // src/adapters/moengage-adapter.ts
1545
1753
  var import_web_sdk = __toESM(require("@moengage/web-sdk"));
@@ -1591,8 +1799,9 @@ var MoengageAdapter = class extends BaseAdapter {
1591
1799
  /**
1592
1800
  * Track an event with MoenGage SDK
1593
1801
  * @param event The event to track
1802
+ * @param adapterParams Optional adapter-specific parameters
1594
1803
  */
1595
- async trackEvent(event) {
1804
+ async trackEvent(event, adapterParams) {
1596
1805
  if (!this.initialized || typeof window === "undefined" || !this.sdk) {
1597
1806
  this.logger.warn(
1598
1807
  "Cannot track event, adapter not initialized or SDK not available",
@@ -1608,106 +1817,147 @@ var MoengageAdapter = class extends BaseAdapter {
1608
1817
  this.logger.debug("Tracking event", { eventType: event.type });
1609
1818
  switch (event.type) {
1610
1819
  case "page_view" /* PAGE_VIEW */:
1611
- this.trackPageView(event);
1820
+ this.trackPageView(event, adapterParams);
1612
1821
  break;
1613
1822
  case "button_click" /* BUTTON_CLICK */:
1614
- this.trackButtonClick(event);
1823
+ this.trackButtonClick(event, adapterParams);
1615
1824
  break;
1616
1825
  case "form_submission" /* FORM_SUBMISSION */:
1617
- this.trackFormSubmission(event);
1826
+ this.trackFormSubmission(event, adapterParams);
1618
1827
  break;
1619
1828
  case "product_view" /* PRODUCT_VIEW */:
1620
- this.trackProductView(event);
1829
+ this.trackProductView(event, adapterParams);
1621
1830
  break;
1622
1831
  case "add_to_cart" /* ADD_TO_CART */:
1623
- this.trackAddToCart(event);
1832
+ this.trackAddToCart(event, adapterParams);
1624
1833
  break;
1625
1834
  case "remove_from_cart" /* REMOVE_FROM_CART */:
1626
- this.trackRemoveFromCart(event);
1835
+ this.trackRemoveFromCart(event, adapterParams);
1627
1836
  break;
1628
1837
  case "checkout_started" /* CHECKOUT_STARTED */:
1629
- this.trackCheckoutStarted(event);
1838
+ this.trackCheckoutStarted(
1839
+ event,
1840
+ adapterParams
1841
+ );
1630
1842
  break;
1631
1843
  case "checkout_completed" /* CHECKOUT_COMPLETED */:
1632
- this.trackCheckoutCompleted(event);
1844
+ this.trackCheckoutCompleted(
1845
+ event,
1846
+ adapterParams
1847
+ );
1633
1848
  break;
1634
1849
  case "search" /* SEARCH */:
1635
- this.trackSearch(event);
1850
+ this.trackSearch(event, adapterParams);
1636
1851
  break;
1637
1852
  case "user_signup" /* USER_SIGNUP */:
1638
- this.trackUserSignup(event);
1853
+ this.trackUserSignup(event, adapterParams);
1639
1854
  break;
1640
1855
  case "user_login" /* USER_LOGIN */:
1641
- this.trackUserLogin(event);
1856
+ this.trackUserLogin(event, adapterParams);
1642
1857
  break;
1643
1858
  case "custom" /* CUSTOM */:
1644
- this.trackCustomEvent(event);
1859
+ this.trackCustomEvent(event, adapterParams);
1645
1860
  break;
1646
1861
  default:
1647
- this.sdk.track_event(event.type, this.eventToParams(event));
1862
+ const eventName = this.getEventName(adapterParams, event.type);
1863
+ const baseParams = this.eventToParams(event);
1864
+ const enhancedParams = this.mergeEventData(baseParams, adapterParams);
1865
+ this.sdk.track_event(eventName, enhancedParams);
1648
1866
  break;
1649
1867
  }
1650
1868
  }
1651
1869
  /**
1652
1870
  * Track a page view event
1653
1871
  * @param event The page view event
1872
+ * @param adapterParams Optional adapter-specific parameters
1654
1873
  */
1655
- trackPageView(event) {
1874
+ trackPageView(event, adapterParams) {
1656
1875
  if (!this.sdk?.track_event) {
1657
1876
  this.logger.warn("track_event not available for PageView event");
1658
1877
  return;
1659
1878
  }
1660
- const eventData = {
1879
+ const eventName = this.getEventName(adapterParams, EventNames.PAGE_VIEWED);
1880
+ const baseEventData = {
1661
1881
  page_path: event.path,
1662
1882
  page_title: event.title,
1663
1883
  page_url: window.location.href,
1664
1884
  referrer: event.referrer || document.referrer
1665
1885
  };
1666
- this.sdk.track_event(EventNames.PAGE_VIEWED, eventData);
1667
- this.logger.debug("PageView event tracked", { eventData });
1886
+ const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
1887
+ this.sdk.track_event(eventName, enhancedEventData);
1888
+ this.logger.debug("PageView event tracked", {
1889
+ eventName,
1890
+ eventData: enhancedEventData
1891
+ });
1668
1892
  }
1669
1893
  /**
1670
1894
  * Track a button click event
1671
1895
  * @param event The button click event
1896
+ * @param adapterParams Optional adapter-specific parameters
1672
1897
  */
1673
- trackButtonClick(event) {
1674
- this.sdk?.track_event(EventNames.BUTTON_CLICKED, {
1898
+ trackButtonClick(event, adapterParams) {
1899
+ const eventName = this.getEventName(
1900
+ adapterParams,
1901
+ EventNames.BUTTON_CLICKED
1902
+ );
1903
+ const baseEventData = {
1675
1904
  button_id: event.buttonId,
1676
1905
  button_text: event.buttonText,
1677
1906
  location: event.location
1678
- });
1907
+ };
1908
+ const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
1909
+ this.sdk?.track_event(eventName, enhancedEventData);
1679
1910
  }
1680
1911
  /**
1681
1912
  * Track a form submission event
1682
1913
  * @param event The form submission event
1914
+ * @param adapterParams Optional adapter-specific parameters
1683
1915
  */
1684
- trackFormSubmission(event) {
1685
- this.sdk?.track_event(EventNames.FORM_SUBMITTED, {
1916
+ trackFormSubmission(event, adapterParams) {
1917
+ const eventName = this.getEventName(
1918
+ adapterParams,
1919
+ EventNames.FORM_SUBMITTED
1920
+ );
1921
+ const baseEventData = {
1686
1922
  form_id: event.formId,
1687
1923
  form_name: event.formName,
1688
1924
  success: event.success
1689
- });
1925
+ };
1926
+ const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
1927
+ this.sdk?.track_event(eventName, enhancedEventData);
1690
1928
  }
1691
1929
  /**
1692
1930
  * Track a product view event
1693
1931
  * @param event The product view event
1932
+ * @param adapterParams Optional adapter-specific parameters
1694
1933
  */
1695
- trackProductView(event) {
1696
- this.sdk?.track_event(EventNames.PRODUCT_VIEWED, {
1934
+ trackProductView(event, adapterParams) {
1935
+ const eventName = this.getEventName(
1936
+ adapterParams,
1937
+ EventNames.PRODUCT_VIEWED
1938
+ );
1939
+ const baseEventData = {
1697
1940
  product_id: event.productId,
1698
1941
  product_name: event.productName,
1699
1942
  price: event.price,
1700
1943
  currency: event.currency || DEFAULT_CURRENCY,
1701
1944
  category: event.category
1702
- });
1945
+ };
1946
+ const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
1947
+ this.sdk?.track_event(eventName, enhancedEventData);
1703
1948
  }
1704
1949
  /**
1705
1950
  * Track an add to cart event
1706
1951
  * @param event The add to cart event
1952
+ * @param adapterParams Optional adapter-specific parameters
1707
1953
  */
1708
- trackAddToCart(event) {
1954
+ trackAddToCart(event, adapterParams) {
1709
1955
  const quantity = event.quantity ?? 1;
1710
- this.sdk?.track_event(EventNames.ADDED_TO_CART, {
1956
+ const eventName = this.getEventName(
1957
+ adapterParams,
1958
+ EventNames.ADDED_TO_CART
1959
+ );
1960
+ const baseEventData = {
1711
1961
  product_id: event.productId,
1712
1962
  product_name: event.productName,
1713
1963
  price: event.price,
@@ -1715,14 +1965,21 @@ var MoengageAdapter = class extends BaseAdapter {
1715
1965
  quantity,
1716
1966
  variant: event.variant,
1717
1967
  total_value: event.price * quantity
1718
- });
1968
+ };
1969
+ const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
1970
+ this.sdk?.track_event(eventName, enhancedEventData);
1719
1971
  }
1720
1972
  /**
1721
1973
  * Track a remove from cart event
1722
1974
  * @param event The remove from cart event
1975
+ * @param adapterParams Optional adapter-specific parameters
1723
1976
  */
1724
- trackRemoveFromCart(event) {
1725
- this.sdk?.track_event(EventNames.REMOVED_FROM_CART, {
1977
+ trackRemoveFromCart(event, adapterParams) {
1978
+ const eventName = this.getEventName(
1979
+ adapterParams,
1980
+ EventNames.REMOVED_FROM_CART
1981
+ );
1982
+ const baseEventData = {
1726
1983
  product_id: event.productId,
1727
1984
  product_name: event.productName,
1728
1985
  price: event.price,
@@ -1730,14 +1987,21 @@ var MoengageAdapter = class extends BaseAdapter {
1730
1987
  quantity: event.quantity,
1731
1988
  variant: event.variant,
1732
1989
  total_value: event.price * event.quantity
1733
- });
1990
+ };
1991
+ const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
1992
+ this.sdk?.track_event(eventName, enhancedEventData);
1734
1993
  }
1735
1994
  /**
1736
1995
  * Track a checkout started event
1737
1996
  * @param event The checkout started event
1997
+ * @param adapterParams Optional adapter-specific parameters
1738
1998
  */
1739
- trackCheckoutStarted(event) {
1740
- this.sdk?.track_event(EventNames.CHECKOUT_STARTED, {
1999
+ trackCheckoutStarted(event, adapterParams) {
2000
+ const eventName = this.getEventName(
2001
+ adapterParams,
2002
+ EventNames.CHECKOUT_STARTED
2003
+ );
2004
+ const baseEventData = {
1741
2005
  cart_value: event.cartValue,
1742
2006
  currency: event.currency || DEFAULT_CURRENCY,
1743
2007
  item_count: event.itemCount,
@@ -1748,14 +2012,21 @@ var MoengageAdapter = class extends BaseAdapter {
1748
2012
  quantity: item.quantity,
1749
2013
  variant: item.variant
1750
2014
  }))
1751
- });
2015
+ };
2016
+ const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
2017
+ this.sdk?.track_event(eventName, enhancedEventData);
1752
2018
  }
1753
2019
  /**
1754
2020
  * Track a checkout completed event
1755
2021
  * @param event The checkout completed event
2022
+ * @param adapterParams Optional adapter-specific parameters
1756
2023
  */
1757
- trackCheckoutCompleted(event) {
1758
- this.sdk?.track_event(EventNames.PURCHASE_COMPLETED, {
2024
+ trackCheckoutCompleted(event, adapterParams) {
2025
+ const eventName = this.getEventName(
2026
+ adapterParams,
2027
+ EventNames.PURCHASE_COMPLETED
2028
+ );
2029
+ const baseEventData = {
1759
2030
  order_id: event.orderId,
1760
2031
  cart_value: event.cartValue,
1761
2032
  currency: event.currency || DEFAULT_CURRENCY,
@@ -1767,28 +2038,41 @@ var MoengageAdapter = class extends BaseAdapter {
1767
2038
  quantity: item.quantity,
1768
2039
  variant: item.variant
1769
2040
  }))
1770
- });
2041
+ };
2042
+ const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
2043
+ this.sdk?.track_event(eventName, enhancedEventData);
1771
2044
  }
1772
2045
  /**
1773
2046
  * Track a search event
1774
2047
  * @param event The search event
2048
+ * @param adapterParams Optional adapter-specific parameters
1775
2049
  */
1776
- trackSearch(event) {
1777
- this.sdk?.track_event(EventNames.SEARCH, {
2050
+ trackSearch(event, adapterParams) {
2051
+ const eventName = this.getEventName(adapterParams, EventNames.SEARCH);
2052
+ const baseEventData = {
1778
2053
  search_term: event.searchTerm,
1779
2054
  results_count: event.resultsCount
1780
- });
2055
+ };
2056
+ const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
2057
+ this.sdk?.track_event(eventName, enhancedEventData);
1781
2058
  }
1782
2059
  /**
1783
2060
  * Track a user signup event
1784
2061
  * @param event The user signup event
2062
+ * @param adapterParams Optional adapter-specific parameters
1785
2063
  */
1786
- trackUserSignup(event) {
1787
- this.sdk?.track_event(EventNames.USER_SIGNED_UP, {
2064
+ trackUserSignup(event, adapterParams) {
2065
+ const eventName = this.getEventName(
2066
+ adapterParams,
2067
+ EventNames.USER_SIGNED_UP
2068
+ );
2069
+ const baseEventData = {
1788
2070
  user_id: event.userId,
1789
2071
  method: event.method,
1790
2072
  success: event.success
1791
- });
2073
+ };
2074
+ const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
2075
+ this.sdk?.track_event(eventName, enhancedEventData);
1792
2076
  if (event.userId && this.getConfig("enableUserIdentification", true)) {
1793
2077
  this.sdk?.add_unique_user_id(event.userId);
1794
2078
  }
@@ -1796,13 +2080,20 @@ var MoengageAdapter = class extends BaseAdapter {
1796
2080
  /**
1797
2081
  * Track a user login event
1798
2082
  * @param event The user login event
2083
+ * @param adapterParams Optional adapter-specific parameters
1799
2084
  */
1800
- trackUserLogin(event) {
1801
- this.sdk?.track_event(EventNames.USER_LOGGED_IN, {
2085
+ trackUserLogin(event, adapterParams) {
2086
+ const eventName = this.getEventName(
2087
+ adapterParams,
2088
+ EventNames.USER_LOGGED_IN
2089
+ );
2090
+ const baseEventData = {
1802
2091
  user_id: event.userId,
1803
2092
  method: event.method,
1804
2093
  success: event.success
1805
- });
2094
+ };
2095
+ const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
2096
+ this.sdk?.track_event(eventName, enhancedEventData);
1806
2097
  if (event.userId && this.getConfig("enableUserIdentification", true)) {
1807
2098
  this.sdk?.add_unique_user_id(event.userId);
1808
2099
  }
@@ -1810,9 +2101,13 @@ var MoengageAdapter = class extends BaseAdapter {
1810
2101
  /**
1811
2102
  * Track a custom event
1812
2103
  * @param event The custom event
2104
+ * @param adapterParams Optional adapter-specific parameters
1813
2105
  */
1814
- trackCustomEvent(event) {
1815
- this.sdk?.track_event(event.name, event.properties);
2106
+ trackCustomEvent(event, adapterParams) {
2107
+ const eventName = this.getEventName(adapterParams, event.name);
2108
+ const baseEventData = event.properties || {};
2109
+ const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
2110
+ this.sdk?.track_event(eventName, enhancedEventData);
1816
2111
  }
1817
2112
  /**
1818
2113
  * Convert an event to MoenGage parameters
@@ -1899,8 +2194,9 @@ var PostHogAdapter = class extends BaseAdapter {
1899
2194
  /**
1900
2195
  * Track an event with PostHog
1901
2196
  * @param event The event to track
2197
+ * @param adapterParams Optional adapter-specific parameters
1902
2198
  */
1903
- async trackEvent(event) {
2199
+ async trackEvent(event, adapterParams) {
1904
2200
  if (!this.initialized || typeof window === "undefined" || !window.posthog) {
1905
2201
  this.logger.warn(
1906
2202
  "Cannot track event, adapter not initialized or posthog not available",
@@ -1916,74 +2212,81 @@ var PostHogAdapter = class extends BaseAdapter {
1916
2212
  this.logger.debug("Tracking event", { eventType: event.type });
1917
2213
  switch (event.type) {
1918
2214
  case "page_view" /* PAGE_VIEW */:
1919
- this.trackPageView(event);
2215
+ this.trackPageView(event, adapterParams);
1920
2216
  break;
1921
2217
  case "product_view" /* PRODUCT_VIEW */:
1922
- this.trackProductView(event);
2218
+ this.trackProductView(event, adapterParams);
1923
2219
  break;
1924
2220
  case "add_to_cart" /* ADD_TO_CART */:
1925
- this.trackAddToCart(event);
2221
+ this.trackAddToCart(event, adapterParams);
1926
2222
  break;
1927
2223
  case "checkout_started" /* CHECKOUT_STARTED */:
1928
- this.trackCheckoutStarted(event);
2224
+ this.trackCheckoutStarted(event, adapterParams);
1929
2225
  break;
1930
2226
  case "checkout_completed" /* CHECKOUT_COMPLETED */:
1931
- this.trackCheckoutCompleted(event);
2227
+ this.trackCheckoutCompleted(event, adapterParams);
1932
2228
  break;
1933
2229
  case "add_payment_info" /* ADD_PAYMENT_INFO */:
1934
- this.trackAddPaymentInfo(event);
2230
+ this.trackAddPaymentInfo(event, adapterParams);
1935
2231
  break;
1936
2232
  case "search" /* SEARCH */:
1937
- this.trackSearch(event);
2233
+ this.trackSearch(event, adapterParams);
1938
2234
  break;
1939
2235
  default:
1940
- const params = this.eventToParams(event);
1941
- window.posthog?.capture(
1942
- event.type,
1943
- this.enhanceWithAffiliateParams(params)
2236
+ const eventName = this.getEventName(adapterParams, event.type);
2237
+ const baseParams = this.eventToParams(event);
2238
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
2239
+ const enhancedParams = this.mergeEventData(
2240
+ affiliateParams,
2241
+ adapterParams
1944
2242
  );
2243
+ window.posthog?.capture(eventName, enhancedParams);
1945
2244
  break;
1946
2245
  }
1947
2246
  }
1948
2247
  /**
1949
2248
  * Track a page view event
1950
2249
  * @param event The page view event
2250
+ * @param adapterParams Optional adapter-specific parameters
1951
2251
  */
1952
- trackPageView(event) {
1953
- const params = {
2252
+ trackPageView(event, adapterParams) {
2253
+ const eventName = this.getEventName(adapterParams, "$pageview");
2254
+ const baseParams = {
1954
2255
  path: event.path,
1955
2256
  title: event.title,
1956
2257
  referrer: event.referrer
1957
2258
  };
1958
- window.posthog?.capture(
1959
- "$pageview",
1960
- this.enhanceWithAffiliateParams(params)
1961
- );
2259
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
2260
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
2261
+ window.posthog?.capture(eventName, enhancedParams);
1962
2262
  }
1963
2263
  /**
1964
2264
  * Track a product view event
1965
2265
  * @param event The product view event
2266
+ * @param adapterParams Optional adapter-specific parameters
1966
2267
  */
1967
- trackProductView(event) {
1968
- const params = {
2268
+ trackProductView(event, adapterParams) {
2269
+ const eventName = this.getEventName(adapterParams, "product_viewed");
2270
+ const baseParams = {
1969
2271
  product_id: event.productId,
1970
2272
  product_name: event.productName,
1971
2273
  category: event.category,
1972
2274
  price: event.price,
1973
2275
  currency: event.currency || "INR"
1974
2276
  };
1975
- window.posthog?.capture(
1976
- "product_viewed",
1977
- this.enhanceWithAffiliateParams(params)
1978
- );
2277
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
2278
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
2279
+ window.posthog?.capture(eventName, enhancedParams);
1979
2280
  }
1980
2281
  /**
1981
2282
  * Track an add to cart event
1982
2283
  * @param event The add to cart event
2284
+ * @param adapterParams Optional adapter-specific parameters
1983
2285
  */
1984
- trackAddToCart(event) {
2286
+ trackAddToCart(event, adapterParams) {
1985
2287
  this.logger.debug("Handling ADD_TO_CART event", { event });
1986
- const params = {
2288
+ const eventName = this.getEventName(adapterParams, "add_to_cart");
2289
+ const baseParams = {
1987
2290
  product_id: event.productId,
1988
2291
  product_name: event.productName,
1989
2292
  price: event.price,
@@ -1991,23 +2294,27 @@ var PostHogAdapter = class extends BaseAdapter {
1991
2294
  quantity: event.quantity,
1992
2295
  variant: event.variant
1993
2296
  };
1994
- this.logger.debug("Sending to PostHog with params", { params });
2297
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
2298
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
2299
+ this.logger.debug("Sending to PostHog with params", {
2300
+ eventName,
2301
+ params: enhancedParams
2302
+ });
1995
2303
  if (!window.posthog) {
1996
2304
  this.logger.error("window.posthog is not available");
1997
2305
  return;
1998
2306
  }
1999
- window.posthog.capture(
2000
- "add_to_cart",
2001
- this.enhanceWithAffiliateParams(params)
2002
- );
2307
+ window.posthog.capture(eventName, enhancedParams);
2003
2308
  this.logger.debug("Event sent to PostHog successfully");
2004
2309
  }
2005
2310
  /**
2006
2311
  * Track a checkout started event
2007
2312
  * @param event The checkout started event
2313
+ * @param adapterParams Optional adapter-specific parameters
2008
2314
  */
2009
- trackCheckoutStarted(event) {
2010
- const params = {
2315
+ trackCheckoutStarted(event, adapterParams) {
2316
+ const eventName = this.getEventName(adapterParams, "checkout_started");
2317
+ const baseParams = {
2011
2318
  cart_value: event.cartValue,
2012
2319
  currency: event.currency || "INR",
2013
2320
  item_count: event.itemCount,
@@ -2019,17 +2326,18 @@ var PostHogAdapter = class extends BaseAdapter {
2019
2326
  variant: item.variant
2020
2327
  }))
2021
2328
  };
2022
- window.posthog?.capture(
2023
- "checkout_started",
2024
- this.enhanceWithAffiliateParams(params)
2025
- );
2329
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
2330
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
2331
+ window.posthog?.capture(eventName, enhancedParams);
2026
2332
  }
2027
2333
  /**
2028
2334
  * Track a checkout completed event
2029
2335
  * @param event The checkout completed event
2336
+ * @param adapterParams Optional adapter-specific parameters
2030
2337
  */
2031
- trackCheckoutCompleted(event) {
2032
- const params = {
2338
+ trackCheckoutCompleted(event, adapterParams) {
2339
+ const eventName = this.getEventName(adapterParams, "purchase");
2340
+ const baseParams = {
2033
2341
  order_id: event.orderId,
2034
2342
  cart_value: event.cartValue,
2035
2343
  currency: event.currency || "INR",
@@ -2042,29 +2350,34 @@ var PostHogAdapter = class extends BaseAdapter {
2042
2350
  variant: item.variant
2043
2351
  }))
2044
2352
  };
2045
- window.posthog?.capture(
2046
- "purchase",
2047
- this.enhanceWithAffiliateParams(params)
2048
- );
2353
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
2354
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
2355
+ window.posthog?.capture(eventName, enhancedParams);
2049
2356
  }
2050
2357
  /**
2051
2358
  * Track a search event
2052
2359
  * @param event The search event
2360
+ * @param adapterParams Optional adapter-specific parameters
2053
2361
  */
2054
- trackSearch(event) {
2055
- const params = {
2362
+ trackSearch(event, adapterParams) {
2363
+ const eventName = this.getEventName(adapterParams, "search");
2364
+ const baseParams = {
2056
2365
  search_term: event.searchTerm,
2057
2366
  results_count: event.resultsCount,
2058
2367
  content_ids: event.content_ids
2059
2368
  };
2060
- window.posthog?.capture("search", this.enhanceWithAffiliateParams(params));
2369
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
2370
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
2371
+ window.posthog?.capture(eventName, enhancedParams);
2061
2372
  }
2062
2373
  /**
2063
2374
  * Track an add payment info event
2064
2375
  * @param event The add payment info event
2376
+ * @param adapterParams Optional adapter-specific parameters
2065
2377
  */
2066
- trackAddPaymentInfo(event) {
2067
- const params = {
2378
+ trackAddPaymentInfo(event, adapterParams) {
2379
+ const eventName = this.getEventName(adapterParams, "add_payment_info");
2380
+ const baseParams = {
2068
2381
  cart_value: event.cartValue,
2069
2382
  currency: event.currency || "INR",
2070
2383
  payment_type: event.paymentType,
@@ -2077,10 +2390,9 @@ var PostHogAdapter = class extends BaseAdapter {
2077
2390
  variant: item.variant
2078
2391
  }))
2079
2392
  };
2080
- window.posthog?.capture(
2081
- "add_payment_info",
2082
- this.enhanceWithAffiliateParams(params)
2083
- );
2393
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
2394
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
2395
+ window.posthog?.capture(eventName, enhancedParams);
2084
2396
  }
2085
2397
  /**
2086
2398
  * Convert an event to PostHog parameters
@@ -2205,37 +2517,56 @@ var ShopifyAdapter = class extends BaseAdapter {
2205
2517
  /**
2206
2518
  * Track an event using Shopify Analytics
2207
2519
  */
2208
- async trackEvent(event) {
2520
+ async trackEvent(event, adapterParams) {
2209
2521
  if (!this.initialized || typeof window === "undefined") {
2210
2522
  this.logger.warn(
2211
2523
  "Shopify Analytics not initialized or not in browser environment"
2212
2524
  );
2213
2525
  return;
2214
2526
  }
2527
+ const params = this.getAdapterParams(adapterParams);
2528
+ const customEventName = this.getEventName(params, event.type);
2215
2529
  this.logger.debug("Processing Shopify Analytics event", {
2216
2530
  eventType: event.type,
2217
- eventData: event
2531
+ customEventName,
2532
+ eventData: event,
2533
+ adapterParams: params
2218
2534
  });
2219
2535
  try {
2220
2536
  switch (event.type) {
2221
2537
  case "page_view" /* PAGE_VIEW */:
2222
- this.sendPageView(import_hydrogen_react.AnalyticsEventName.PAGE_VIEW);
2223
- this.logger.debug("Sent PAGE_VIEW event to Shopify Analytics");
2538
+ const pageViewPayload = this.mergeEventData({}, params);
2539
+ this.sendPageView(import_hydrogen_react.AnalyticsEventName.PAGE_VIEW, pageViewPayload);
2540
+ this.logger.debug("Sent PAGE_VIEW event to Shopify Analytics", {
2541
+ payload: pageViewPayload
2542
+ });
2224
2543
  break;
2225
2544
  case "view_content" /* VIEW_CONTENT */:
2226
- this.sendPageView(import_hydrogen_react.AnalyticsEventName.PRODUCT_VIEW);
2227
- this.logger.debug("Sent PRODUCT_VIEW event to Shopify Analytics");
2545
+ const viewContentPayload = this.mergeEventData({}, params);
2546
+ this.sendPageView(
2547
+ import_hydrogen_react.AnalyticsEventName.PRODUCT_VIEW,
2548
+ viewContentPayload
2549
+ );
2550
+ this.logger.debug("Sent PRODUCT_VIEW event to Shopify Analytics", {
2551
+ payload: viewContentPayload
2552
+ });
2228
2553
  break;
2229
2554
  case "add_to_cart" /* ADD_TO_CART */:
2230
- this.trackAddToCart(event);
2555
+ const enhancedEvent = this.mergeEventData(event, params);
2556
+ this.trackAddToCart(enhancedEvent);
2231
2557
  break;
2232
2558
  case "checkout_started" /* CHECKOUT_STARTED */:
2233
2559
  case "begin_checkout" /* BEGIN_CHECKOUT */:
2234
- this.sendPageView(import_hydrogen_react.AnalyticsEventName.PAGE_VIEW, {
2235
- pageType: "checkout"
2236
- });
2560
+ const checkoutPayload = this.mergeEventData(
2561
+ {
2562
+ pageType: "checkout"
2563
+ },
2564
+ params
2565
+ );
2566
+ this.sendPageView(import_hydrogen_react.AnalyticsEventName.PAGE_VIEW, checkoutPayload);
2237
2567
  this.logger.debug(
2238
- "Sent checkout PAGE_VIEW event to Shopify Analytics"
2568
+ "Sent checkout PAGE_VIEW event to Shopify Analytics",
2569
+ { payload: checkoutPayload }
2239
2570
  );
2240
2571
  break;
2241
2572
  default:
@@ -2361,8 +2692,10 @@ var KwikPassAdapter = class extends BaseAdapter {
2361
2692
  }
2362
2693
  /**
2363
2694
  * Track an event using KwikPass
2695
+ * @param event The event to track
2696
+ * @param adapterParams Optional adapter-specific parameters
2364
2697
  */
2365
- async trackEvent(event) {
2698
+ async trackEvent(event, adapterParams) {
2366
2699
  if (!this.initialized || typeof window === "undefined") {
2367
2700
  this.logger.warn(
2368
2701
  "KwikPass adapter not initialized or not in browser environment"
@@ -2380,13 +2713,13 @@ var KwikPassAdapter = class extends BaseAdapter {
2380
2713
  const enhancedEvent = this.enhanceWithAffiliateParams(event);
2381
2714
  switch (event.type) {
2382
2715
  case "product_view" /* PRODUCT_VIEW */:
2383
- this.trackProductView(enhancedEvent);
2716
+ this.trackProductView(enhancedEvent, adapterParams);
2384
2717
  break;
2385
2718
  case "collection_view" /* COLLECTION_VIEW */:
2386
- this.trackCollectionView(enhancedEvent);
2719
+ this.trackCollectionView(enhancedEvent, adapterParams);
2387
2720
  break;
2388
2721
  case "page_view" /* PAGE_VIEW */:
2389
- this.trackPageView(enhancedEvent);
2722
+ this.trackPageView(enhancedEvent, adapterParams);
2390
2723
  break;
2391
2724
  default:
2392
2725
  this.logger.debug("Event not supported", { eventType: event.type });
@@ -2401,55 +2734,71 @@ var KwikPassAdapter = class extends BaseAdapter {
2401
2734
  /**
2402
2735
  * Send event to KwikPass platform
2403
2736
  */
2404
- sendKwikPassEvent(type, eventData) {
2405
- this.logger.debug(`Sending ${type}`, { eventData });
2737
+ sendKwikPassEvent(type, eventData, adapterParams) {
2738
+ const customEventType = this.getEventName(adapterParams, type);
2739
+ const enhancedEventData = this.mergeEventData(eventData, adapterParams);
2740
+ this.logger.debug(`Sending ${customEventType}`, {
2741
+ eventData: enhancedEventData
2742
+ });
2406
2743
  if (typeof window !== "undefined") {
2407
2744
  const customEvent = new CustomEvent(`page_view_kp`, {
2408
2745
  detail: {
2409
- type,
2410
- detail: eventData
2746
+ type: customEventType,
2747
+ detail: enhancedEventData
2411
2748
  }
2412
2749
  });
2413
2750
  window.dispatchEvent(customEvent);
2414
- this.logger.debug(`${type} sent successfully`);
2751
+ this.logger.debug(`${customEventType} sent successfully`);
2415
2752
  }
2416
2753
  }
2417
2754
  /**
2418
- * Track product view event
2755
+ * Track collection view event
2419
2756
  */
2420
- trackCollectionView(event) {
2421
- this.sendKwikPassEvent("collection", {
2422
- product_id: event.productId,
2423
- product_name: event.productName,
2424
- price: event.price,
2425
- currency: event.currency,
2426
- category: event.category,
2427
- timestamp: event.timestamp || Date.now()
2428
- });
2757
+ trackCollectionView(event, adapterParams) {
2758
+ this.sendKwikPassEvent(
2759
+ "collection",
2760
+ {
2761
+ product_id: event.productId,
2762
+ product_name: event.productName,
2763
+ price: event.price,
2764
+ currency: event.currency,
2765
+ category: event.category,
2766
+ timestamp: event.timestamp || Date.now()
2767
+ },
2768
+ adapterParams
2769
+ );
2429
2770
  }
2430
2771
  /**
2431
- * Track collection view event
2772
+ * Track product view event
2432
2773
  */
2433
- trackProductView(event) {
2434
- this.sendKwikPassEvent("product", {
2435
- product_id: event.productId,
2436
- product_name: event.productName,
2437
- price: event.price,
2438
- currency: event.currency,
2439
- category: event.category,
2440
- timestamp: event.timestamp || Date.now()
2441
- });
2774
+ trackProductView(event, adapterParams) {
2775
+ this.sendKwikPassEvent(
2776
+ "product",
2777
+ {
2778
+ product_id: event.productId,
2779
+ product_name: event.productName,
2780
+ price: event.price,
2781
+ currency: event.currency,
2782
+ category: event.category,
2783
+ timestamp: event.timestamp || Date.now()
2784
+ },
2785
+ adapterParams
2786
+ );
2442
2787
  }
2443
2788
  /**
2444
2789
  * Track page view event
2445
2790
  */
2446
- trackPageView(event) {
2447
- this.sendKwikPassEvent("other", {
2448
- path: event.path,
2449
- title: event.title,
2450
- referrer: event.referrer,
2451
- timestamp: event.timestamp || Date.now()
2452
- });
2791
+ trackPageView(event, adapterParams) {
2792
+ this.sendKwikPassEvent(
2793
+ "other",
2794
+ {
2795
+ path: event.path,
2796
+ title: event.title,
2797
+ referrer: event.referrer,
2798
+ timestamp: event.timestamp || Date.now()
2799
+ },
2800
+ adapterParams
2801
+ );
2453
2802
  }
2454
2803
  };
2455
2804
 
@@ -2483,8 +2832,10 @@ var KwikCheckoutAdapter = class extends BaseAdapter {
2483
2832
  }
2484
2833
  /**
2485
2834
  * Track an event using GoKwik
2835
+ * @param event The event to track
2836
+ * @param adapterParams Optional adapter-specific parameters
2486
2837
  */
2487
- async trackEvent(event) {
2838
+ async trackEvent(event, adapterParams) {
2488
2839
  if (!this.initialized || typeof window === "undefined") {
2489
2840
  this.logger.warn(
2490
2841
  "GoKwik adapter not initialized or not in browser environment"
@@ -2496,46 +2847,46 @@ var KwikCheckoutAdapter = class extends BaseAdapter {
2496
2847
  const enhancedEvent = this.enhanceWithAffiliateParams(event);
2497
2848
  switch (event.type) {
2498
2849
  case "started_checkout_gk" /* STARTED_CHECKOUT_GK */:
2499
- this.trackStartedCheckoutGK(enhancedEvent);
2850
+ this.trackStartedCheckoutGK(enhancedEvent, adapterParams);
2500
2851
  break;
2501
2852
  case "mobile_added_gk" /* MOBILE_ADDED_GK */:
2502
- this.trackMobileAddedGK(enhancedEvent);
2853
+ this.trackMobileAddedGK(enhancedEvent, adapterParams);
2503
2854
  break;
2504
2855
  case "address_selected_gk" /* ADDRESS_SELECTED_GK */:
2505
- this.trackAddressSelectedGK(enhancedEvent);
2856
+ this.trackAddressSelectedGK(enhancedEvent, adapterParams);
2506
2857
  break;
2507
2858
  case "address_completed_gk" /* ADDRESS_COMPLETED_GK */:
2508
- this.trackAddressCompletedGK(enhancedEvent);
2859
+ this.trackAddressCompletedGK(enhancedEvent, adapterParams);
2509
2860
  break;
2510
2861
  case "address_added_gk" /* ADDRESS_ADDED_GK */:
2511
- this.trackAddressAddedGK(enhancedEvent);
2862
+ this.trackAddressAddedGK(enhancedEvent, adapterParams);
2512
2863
  break;
2513
2864
  case "pin_code_added_gk" /* PIN_CODE_ADDED_GK */:
2514
- this.trackPinCodeAddedGK(enhancedEvent);
2865
+ this.trackPinCodeAddedGK(enhancedEvent, adapterParams);
2515
2866
  break;
2516
2867
  case "payment_method_selected_gk" /* PAYMENT_METHOD_SELECTED_GK */:
2517
- this.trackPaymentMethodSelectedGK(enhancedEvent);
2868
+ this.trackPaymentMethodSelectedGK(enhancedEvent, adapterParams);
2518
2869
  break;
2519
2870
  case "payment_completed_gk" /* PAYMENT_COMPLETED_GK */:
2520
- this.trackPaymentCompletedGK(enhancedEvent);
2871
+ this.trackPaymentCompletedGK(enhancedEvent, adapterParams);
2521
2872
  break;
2522
2873
  case "order_success" /* ORDER_SUCCESS */:
2523
- this.trackOrderSuccess(enhancedEvent);
2874
+ this.trackOrderSuccess(enhancedEvent, adapterParams);
2524
2875
  break;
2525
2876
  case "order_completed" /* ORDER_COMPLETED */:
2526
- this.trackOrderCompleted(enhancedEvent);
2877
+ this.trackOrderCompleted(enhancedEvent, adapterParams);
2527
2878
  break;
2528
2879
  case "cart_viewed" /* CART_VIEWED */:
2529
- this.trackCartViewed(enhancedEvent);
2880
+ this.trackCartViewed(enhancedEvent, adapterParams);
2530
2881
  break;
2531
2882
  case "checkout_started" /* CHECKOUT_STARTED */:
2532
- this.trackCheckoutStarted(enhancedEvent);
2883
+ this.trackCheckoutStarted(enhancedEvent, adapterParams);
2533
2884
  break;
2534
2885
  case "checkout_completed" /* CHECKOUT_COMPLETED */:
2535
- this.trackCheckoutCompleted(enhancedEvent);
2886
+ this.trackCheckoutCompleted(enhancedEvent, adapterParams);
2536
2887
  break;
2537
2888
  case "add_payment_info" /* ADD_PAYMENT_INFO */:
2538
- this.trackAddPaymentInfo(enhancedEvent);
2889
+ this.trackAddPaymentInfo(enhancedEvent, adapterParams);
2539
2890
  break;
2540
2891
  default:
2541
2892
  this.logger.debug("Event not supported", { eventType: event.type });
@@ -2550,171 +2901,233 @@ var KwikCheckoutAdapter = class extends BaseAdapter {
2550
2901
  /**
2551
2902
  * Send event to GoKwik platform
2552
2903
  */
2553
- sendGoKwikEvent(eventName, eventData) {
2554
- this.logger.debug(`Sending ${eventName}`, { eventData });
2904
+ sendGoKwikEvent(eventName, eventData, adapterParams) {
2905
+ const customEventName = this.getEventName(adapterParams, eventName);
2906
+ const enhancedEventData = this.mergeEventData(eventData, adapterParams);
2907
+ this.logger.debug(`Sending ${customEventName}`, {
2908
+ eventData: enhancedEventData
2909
+ });
2555
2910
  if (typeof window !== "undefined" && window.gokwikSdk) {
2556
2911
  try {
2557
- window.gokwikSdk.track?.(eventName, eventData);
2558
- this.logger.debug(`${eventName} sent via SDK successfully`);
2912
+ window.gokwikSdk.track?.(customEventName, enhancedEventData);
2913
+ this.logger.debug(`${customEventName} sent via SDK successfully`);
2559
2914
  } catch (error) {
2560
2915
  this.logger.error(
2561
- `Error sending GoKwik event ${eventName} via SDK`,
2916
+ `Error sending GoKwik event ${customEventName} via SDK`,
2562
2917
  error
2563
2918
  );
2564
2919
  }
2565
2920
  } else {
2566
2921
  if (typeof window !== "undefined") {
2567
- const customEvent = new CustomEvent(`gokwik_${eventName}`, {
2568
- detail: eventData
2922
+ const customEvent = new CustomEvent(`gokwik_${customEventName}`, {
2923
+ detail: enhancedEventData
2569
2924
  });
2570
2925
  window.dispatchEvent(customEvent);
2571
- this.logger.debug(`${eventName} sent via custom event successfully`);
2926
+ this.logger.debug(
2927
+ `${customEventName} sent via custom event successfully`
2928
+ );
2572
2929
  }
2573
2930
  }
2574
2931
  }
2575
2932
  /**
2576
2933
  * Track started checkout GK event
2577
2934
  */
2578
- trackStartedCheckoutGK(event) {
2579
- this.sendGoKwikEvent("started_checkout", {
2580
- cart_value: event.cartValue,
2581
- currency: event.currency,
2582
- timestamp: event.timestamp || Date.now()
2583
- });
2935
+ trackStartedCheckoutGK(event, adapterParams) {
2936
+ this.sendGoKwikEvent(
2937
+ "started_checkout",
2938
+ {
2939
+ cart_value: event.cartValue,
2940
+ currency: event.currency,
2941
+ timestamp: event.timestamp || Date.now()
2942
+ },
2943
+ adapterParams
2944
+ );
2584
2945
  }
2585
2946
  /**
2586
2947
  * Track mobile added GK event
2587
2948
  */
2588
- trackMobileAddedGK(event) {
2589
- this.sendGoKwikEvent("mobile_added", {
2590
- mobile: event.mobile,
2591
- timestamp: event.timestamp || Date.now()
2592
- });
2949
+ trackMobileAddedGK(event, adapterParams) {
2950
+ this.sendGoKwikEvent(
2951
+ "mobile_added",
2952
+ {
2953
+ mobile: event.mobile,
2954
+ timestamp: event.timestamp || Date.now()
2955
+ },
2956
+ adapterParams
2957
+ );
2593
2958
  }
2594
2959
  /**
2595
2960
  * Track address selected GK event
2596
2961
  */
2597
- trackAddressSelectedGK(event) {
2598
- this.sendGoKwikEvent("address_selected", {
2599
- address_id: event.addressId,
2600
- timestamp: event.timestamp || Date.now()
2601
- });
2962
+ trackAddressSelectedGK(event, adapterParams) {
2963
+ this.sendGoKwikEvent(
2964
+ "address_selected",
2965
+ {
2966
+ address_id: event.addressId,
2967
+ timestamp: event.timestamp || Date.now()
2968
+ },
2969
+ adapterParams
2970
+ );
2602
2971
  }
2603
2972
  /**
2604
2973
  * Track address completed GK event
2605
2974
  */
2606
- trackAddressCompletedGK(event) {
2607
- this.sendGoKwikEvent("address_completed", {
2608
- address_id: event.addressId,
2609
- timestamp: event.timestamp || Date.now()
2610
- });
2975
+ trackAddressCompletedGK(event, adapterParams) {
2976
+ this.sendGoKwikEvent(
2977
+ "address_completed",
2978
+ {
2979
+ address_id: event.addressId,
2980
+ timestamp: event.timestamp || Date.now()
2981
+ },
2982
+ adapterParams
2983
+ );
2611
2984
  }
2612
2985
  /**
2613
2986
  * Track address added GK event
2614
2987
  */
2615
- trackAddressAddedGK(event) {
2616
- this.sendGoKwikEvent("address_added", {
2617
- address_id: event.addressId,
2618
- timestamp: event.timestamp || Date.now()
2619
- });
2988
+ trackAddressAddedGK(event, adapterParams) {
2989
+ this.sendGoKwikEvent(
2990
+ "address_added",
2991
+ {
2992
+ address_id: event.addressId,
2993
+ timestamp: event.timestamp || Date.now()
2994
+ },
2995
+ adapterParams
2996
+ );
2620
2997
  }
2621
2998
  /**
2622
2999
  * Track PIN code added GK event
2623
3000
  */
2624
- trackPinCodeAddedGK(event) {
2625
- this.sendGoKwikEvent("pin_code_added", {
2626
- pin_code: event.pinCode,
2627
- timestamp: event.timestamp || Date.now()
2628
- });
3001
+ trackPinCodeAddedGK(event, adapterParams) {
3002
+ this.sendGoKwikEvent(
3003
+ "pin_code_added",
3004
+ {
3005
+ pin_code: event.pinCode,
3006
+ timestamp: event.timestamp || Date.now()
3007
+ },
3008
+ adapterParams
3009
+ );
2629
3010
  }
2630
3011
  /**
2631
3012
  * Track payment method selected GK event
2632
3013
  */
2633
- trackPaymentMethodSelectedGK(event) {
2634
- this.sendGoKwikEvent("payment_method_selected", {
2635
- payment_method: event.paymentMethod,
2636
- timestamp: event.timestamp || Date.now()
2637
- });
3014
+ trackPaymentMethodSelectedGK(event, adapterParams) {
3015
+ this.sendGoKwikEvent(
3016
+ "payment_method_selected",
3017
+ {
3018
+ payment_method: event.paymentMethod,
3019
+ timestamp: event.timestamp || Date.now()
3020
+ },
3021
+ adapterParams
3022
+ );
2638
3023
  }
2639
3024
  /**
2640
3025
  * Track payment completed GK event
2641
3026
  */
2642
- trackPaymentCompletedGK(event) {
2643
- this.sendGoKwikEvent("payment_completed", {
2644
- amount: event.amount,
2645
- currency: event.currency,
2646
- timestamp: event.timestamp || Date.now()
2647
- });
3027
+ trackPaymentCompletedGK(event, adapterParams) {
3028
+ this.sendGoKwikEvent(
3029
+ "payment_completed",
3030
+ {
3031
+ amount: event.amount,
3032
+ currency: event.currency,
3033
+ timestamp: event.timestamp || Date.now()
3034
+ },
3035
+ adapterParams
3036
+ );
2648
3037
  }
2649
3038
  /**
2650
3039
  * Track order success event
2651
3040
  */
2652
- trackOrderSuccess(event) {
2653
- this.sendGoKwikEvent("order_success", {
2654
- order_id: event.orderId,
2655
- amount: event.amount,
2656
- currency: event.currency,
2657
- timestamp: event.timestamp || Date.now()
2658
- });
3041
+ trackOrderSuccess(event, adapterParams) {
3042
+ this.sendGoKwikEvent(
3043
+ "order_success",
3044
+ {
3045
+ order_id: event.orderId,
3046
+ amount: event.amount,
3047
+ currency: event.currency,
3048
+ timestamp: event.timestamp || Date.now()
3049
+ },
3050
+ adapterParams
3051
+ );
2659
3052
  }
2660
3053
  /**
2661
3054
  * Track order completed event
2662
3055
  */
2663
- trackOrderCompleted(event) {
2664
- this.sendGoKwikEvent("order_completed", {
2665
- order_id: event.orderId,
2666
- amount: event.amount,
2667
- currency: event.currency,
2668
- timestamp: event.timestamp || Date.now()
2669
- });
3056
+ trackOrderCompleted(event, adapterParams) {
3057
+ this.sendGoKwikEvent(
3058
+ "order_completed",
3059
+ {
3060
+ order_id: event.orderId,
3061
+ amount: event.amount,
3062
+ currency: event.currency,
3063
+ timestamp: event.timestamp || Date.now()
3064
+ },
3065
+ adapterParams
3066
+ );
2670
3067
  }
2671
3068
  /**
2672
3069
  * Track cart viewed event
2673
3070
  */
2674
- trackCartViewed(event) {
2675
- this.sendGoKwikEvent("cart_viewed", {
2676
- cart_id: event.cartId,
2677
- products: event.products,
2678
- timestamp: event.timestamp || Date.now()
2679
- });
3071
+ trackCartViewed(event, adapterParams) {
3072
+ this.sendGoKwikEvent(
3073
+ "cart_viewed",
3074
+ {
3075
+ cart_id: event.cartId,
3076
+ products: event.products,
3077
+ timestamp: event.timestamp || Date.now()
3078
+ },
3079
+ adapterParams
3080
+ );
2680
3081
  }
2681
3082
  /**
2682
3083
  * Track checkout started event
2683
3084
  */
2684
- trackCheckoutStarted(event) {
2685
- this.sendGoKwikEvent("checkout_started", {
2686
- cart_value: event.cartValue,
2687
- currency: event.currency,
2688
- item_count: event.itemCount,
2689
- items: event.items,
2690
- timestamp: event.timestamp || Date.now()
2691
- });
3085
+ trackCheckoutStarted(event, adapterParams) {
3086
+ this.sendGoKwikEvent(
3087
+ "checkout_started",
3088
+ {
3089
+ cart_value: event.cartValue,
3090
+ currency: event.currency,
3091
+ item_count: event.itemCount,
3092
+ items: event.items,
3093
+ timestamp: event.timestamp || Date.now()
3094
+ },
3095
+ adapterParams
3096
+ );
2692
3097
  }
2693
3098
  /**
2694
3099
  * Track checkout completed event
2695
3100
  */
2696
- trackCheckoutCompleted(event) {
2697
- this.sendGoKwikEvent("checkout_completed", {
2698
- order_id: event.orderId,
2699
- cart_value: event.cartValue,
2700
- currency: event.currency,
2701
- item_count: event.itemCount,
2702
- items: event.items,
2703
- timestamp: event.timestamp || Date.now()
2704
- });
3101
+ trackCheckoutCompleted(event, adapterParams) {
3102
+ this.sendGoKwikEvent(
3103
+ "checkout_completed",
3104
+ {
3105
+ order_id: event.orderId,
3106
+ cart_value: event.cartValue,
3107
+ currency: event.currency,
3108
+ item_count: event.itemCount,
3109
+ items: event.items,
3110
+ timestamp: event.timestamp || Date.now()
3111
+ },
3112
+ adapterParams
3113
+ );
2705
3114
  }
2706
3115
  /**
2707
3116
  * Track add payment info event
2708
3117
  */
2709
- trackAddPaymentInfo(event) {
2710
- this.sendGoKwikEvent("add_payment_info", {
2711
- cart_value: event.cartValue,
2712
- currency: event.currency,
2713
- item_count: event.itemCount,
2714
- payment_type: event.paymentType,
2715
- items: event.items,
2716
- timestamp: event.timestamp || Date.now()
2717
- });
3118
+ trackAddPaymentInfo(event, adapterParams) {
3119
+ this.sendGoKwikEvent(
3120
+ "add_payment_info",
3121
+ {
3122
+ cart_value: event.cartValue,
3123
+ currency: event.currency,
3124
+ item_count: event.itemCount,
3125
+ payment_type: event.paymentType,
3126
+ items: event.items,
3127
+ timestamp: event.timestamp || Date.now()
3128
+ },
3129
+ adapterParams
3130
+ );
2718
3131
  }
2719
3132
  };
2720
3133
 
@@ -3241,7 +3654,6 @@ init_subscriber();
3241
3654
  EventNames,
3242
3655
  EventType,
3243
3656
  GoogleAdapter,
3244
- HARDCODED_HANDLE,
3245
3657
  KwikCheckoutAdapter,
3246
3658
  KwikPassAdapter,
3247
3659
  MoengageAdapter,