shopkit-analytics 1.0.1 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +193 -3
- package/dist/adapters/index.d.mts +3 -2
- package/dist/adapters/index.d.ts +3 -2
- package/dist/adapters/index.js +1220 -615
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/index.mjs +4 -2
- package/dist/{chunk-3TQR5DOP.mjs → chunk-3NR2AKE4.mjs} +1 -31
- package/dist/chunk-3NR2AKE4.mjs.map +1 -0
- package/dist/chunk-4RDPDMGW.mjs +68 -0
- package/dist/chunk-4RDPDMGW.mjs.map +1 -0
- package/dist/{chunk-JVEGG6JV.mjs → chunk-HCA4E2RA.mjs} +19 -13
- package/dist/chunk-HCA4E2RA.mjs.map +1 -0
- package/dist/chunk-NC25KOAF.mjs +156 -0
- package/dist/chunk-NC25KOAF.mjs.map +1 -0
- package/dist/chunk-NGPUKV7E.mjs +46 -0
- package/dist/chunk-NGPUKV7E.mjs.map +1 -0
- package/dist/{chunk-4MZH5OLR.mjs → chunk-NJQ2MOM2.mjs} +1145 -618
- package/dist/chunk-NJQ2MOM2.mjs.map +1 -0
- package/dist/chunk-NKDB4KX2.mjs +2 -0
- package/dist/{chunk-P4OJDCEZ.mjs → chunk-QCS5UARA.mjs} +3 -3
- package/dist/events/index.d.mts +9 -41
- package/dist/events/index.d.ts +9 -41
- package/dist/events/index.js +973 -498
- package/dist/events/index.js.map +1 -1
- package/dist/events/index.mjs +11 -11
- package/dist/experiment/index.d.mts +25 -0
- package/dist/experiment/index.d.ts +25 -0
- package/dist/experiment/index.js +74 -0
- package/dist/experiment/index.js.map +1 -0
- package/dist/experiment/index.mjs +15 -0
- package/dist/experiment/index.mjs.map +1 -0
- package/dist/{index-BnNRgdUv.d.ts → index-D_8w5bL_.d.ts} +87 -17
- package/dist/{index-GODWc1s6.d.mts → index-th6sBtE3.d.mts} +87 -17
- package/dist/index.d.mts +10 -6
- package/dist/index.d.ts +10 -6
- package/dist/index.js +1408 -660
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +31 -10
- package/dist/index.mjs.map +1 -1
- package/dist/services/index.d.mts +51 -0
- package/dist/services/index.d.ts +51 -0
- package/dist/services/index.js +180 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/index.mjs +11 -0
- package/dist/services/index.mjs.map +1 -0
- package/dist/{subscriber-43gnCKWe.d.ts → subscriber-BDAm_BAi.d.ts} +38 -2
- package/dist/{subscriber-sWesj_5p.d.mts → subscriber-BoyOlh9t.d.mts} +38 -2
- package/dist/subscriber-VF3IYUCU.mjs +8 -0
- package/dist/subscriber-VF3IYUCU.mjs.map +1 -0
- package/dist/types-C__2IBCj.d.mts +7 -0
- package/dist/types-C__2IBCj.d.ts +7 -0
- package/dist/types.d.mts +4 -340
- package/dist/types.d.ts +4 -340
- package/dist/types.js +0 -30
- package/dist/types.js.map +1 -1
- package/dist/types.mjs +1 -1
- package/dist/utils/index.d.mts +19 -0
- package/dist/utils/index.d.ts +19 -0
- package/dist/utils/index.js +93 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/index.mjs +12 -0
- package/dist/utils/index.mjs.map +1 -0
- package/package.json +21 -8
- package/templates/nextjs/README.md +206 -0
- package/templates/nextjs/api-events-route.ts +62 -0
- package/dist/chunk-3TQR5DOP.mjs.map +0 -1
- package/dist/chunk-4MZH5OLR.mjs.map +0 -1
- package/dist/chunk-JVEGG6JV.mjs.map +0 -1
- package/dist/subscriber-IFZJU57V.mjs +0 -8
- /package/dist/{subscriber-IFZJU57V.mjs.map → chunk-NKDB4KX2.mjs.map} +0 -0
- /package/dist/{chunk-P4OJDCEZ.mjs.map → chunk-QCS5UARA.mjs.map} +0 -0
package/dist/events/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(
|
|
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
|
}
|
|
@@ -259,7 +265,6 @@ __export(events_exports, {
|
|
|
259
265
|
DEFAULT_CURRENCY: () => DEFAULT_CURRENCY,
|
|
260
266
|
EventNames: () => EventNames,
|
|
261
267
|
EventType: () => EventType,
|
|
262
|
-
HARDCODED_HANDLE: () => HARDCODED_HANDLE,
|
|
263
268
|
eventPublisher: () => eventPublisher,
|
|
264
269
|
eventSubscriber: () => eventSubscriber,
|
|
265
270
|
initTracking: () => initTracking,
|
|
@@ -271,7 +276,6 @@ module.exports = __toCommonJS(events_exports);
|
|
|
271
276
|
// src/types.ts
|
|
272
277
|
var EventType = /* @__PURE__ */ ((EventType2) => {
|
|
273
278
|
EventType2["PRODUCT_VIEW"] = "product_view";
|
|
274
|
-
EventType2["STARTED_ORDER"] = "started_order";
|
|
275
279
|
EventType2["PAGE_VIEW"] = "page_view";
|
|
276
280
|
EventType2["BUTTON_CLICK"] = "button_click";
|
|
277
281
|
EventType2["FORM_SUBMISSION"] = "form_submission";
|
|
@@ -284,11 +288,6 @@ var EventType = /* @__PURE__ */ ((EventType2) => {
|
|
|
284
288
|
EventType2["CHECKOUT_STARTED"] = "checkout_started";
|
|
285
289
|
EventType2["CHECKOUT_COMPLETED"] = "checkout_completed";
|
|
286
290
|
EventType2["SEARCH"] = "search";
|
|
287
|
-
EventType2["CART_PAGE_LAND"] = "cart_page_land";
|
|
288
|
-
EventType2["CLOSE_CART"] = "close_cart";
|
|
289
|
-
EventType2["QUANTITY_CHANGE"] = "quantity_change";
|
|
290
|
-
EventType2["FILTER_APPLIED"] = "filter_applied";
|
|
291
|
-
EventType2["NEWSLETTER_SUBSCRIPTION"] = "newsletter_subscription";
|
|
292
291
|
EventType2["USER_SIGNUP"] = "user_signup";
|
|
293
292
|
EventType2["USER_LOGIN"] = "user_login";
|
|
294
293
|
EventType2["CUSTOM"] = "custom";
|
|
@@ -299,25 +298,11 @@ var EventType = /* @__PURE__ */ ((EventType2) => {
|
|
|
299
298
|
EventType2["FORM_START"] = "form_start";
|
|
300
299
|
EventType2["ADD_PAYMENT_INFO"] = "add_payment_info";
|
|
301
300
|
EventType2["CART_VIEWED"] = "cart_viewed";
|
|
302
|
-
EventType2["PAGES_SCREENS_PER_SESSION"] = "pages_screens_per_session";
|
|
303
301
|
EventType2["VIEW_CONTENT"] = "view_content";
|
|
304
302
|
EventType2["PURCHASE"] = "purchase";
|
|
305
303
|
EventType2["VIEW_SEARCH_RESULTS"] = "view_search_results";
|
|
306
304
|
EventType2["ORDER_PLACED"] = "order_placed";
|
|
307
305
|
EventType2["BEGIN_CHECKOUT"] = "begin_checkout";
|
|
308
|
-
EventType2["ITEM_PURCHASED"] = "item_purchased";
|
|
309
|
-
EventType2["UPDATE_CART"] = "update_cart";
|
|
310
|
-
EventType2["CUSTOMER_REGISTERED"] = "customer_registered";
|
|
311
|
-
EventType2["CUSTOMER_LOGGED_IN"] = "customer_logged_in";
|
|
312
|
-
EventType2["SHOPIFY_CHECKOUT_UPDATED"] = "shopify_checkout_updated";
|
|
313
|
-
EventType2["SHOPIFY_ABANDONED_CHECKOUT"] = "shopify_abandoned_checkout";
|
|
314
|
-
EventType2["SHOPIFY_ORDER_FULFILLED"] = "shopify_order_fulfilled";
|
|
315
|
-
EventType2["SHOPIFY_CHECKOUT_STARTED"] = "shopify_checkout_started";
|
|
316
|
-
EventType2["SHOPIFY_ADD_TO_CART"] = "shopify_add_to_cart";
|
|
317
|
-
EventType2["SHOPIFY_REMOVED_FROM_CART"] = "shopify_removed_from_cart";
|
|
318
|
-
EventType2["SHOPIFY_UPDATE_CART"] = "shopify_update_cart";
|
|
319
|
-
EventType2["SPINFORM_RESULT"] = "spinform_result";
|
|
320
|
-
EventType2["COUPON_COPIED"] = "coupon_copied";
|
|
321
306
|
EventType2["STARTED_CHECKOUT_GK"] = "started_checkout_gk";
|
|
322
307
|
EventType2["MOBILE_ADDED_GK"] = "mobile_added_gk";
|
|
323
308
|
EventType2["ADDRESS_SELECTED_GK"] = "address_selected_gk";
|
|
@@ -328,16 +313,6 @@ var EventType = /* @__PURE__ */ ((EventType2) => {
|
|
|
328
313
|
EventType2["ORDER_COMPLETED"] = "order_completed";
|
|
329
314
|
EventType2["PIN_CODE_ADDED_GK"] = "pin_code_added_gk";
|
|
330
315
|
EventType2["ADDRESS_ADDED_GK"] = "address_added_gk";
|
|
331
|
-
EventType2["KP_MP_PHONE_NUMBER_LOGGED_IN"] = "kp_mp_phone_number_logged_in";
|
|
332
|
-
EventType2["KP_PHONE_NUMBER_LOGGED_IN"] = "kp_phone_number_logged_in";
|
|
333
|
-
EventType2["KP_MP_SHOPIFY_LOGGED_IN"] = "kp_mp_shopify_logged_in";
|
|
334
|
-
EventType2["KP_MP_SUCCESSFULLY_LOGGED_OUT"] = "kp_mp_successfully_logged_out";
|
|
335
|
-
EventType2["KP_WHATSAPP_LOGGED_IN"] = "kp_whatsapp_logged_in";
|
|
336
|
-
EventType2["KP_MP_TRUECALLER_LOGGED_IN"] = "kp_mp_truecaller_logged_in";
|
|
337
|
-
EventType2["KP_MP_WHATSAPP_LOGGED_IN"] = "kp_mp_whatsapp_logged_in";
|
|
338
|
-
EventType2["KP_TRUECALLER_LOGGED_IN"] = "kp_truecaller_logged_in";
|
|
339
|
-
EventType2["KP_SHOPIFY_LOGGED_IN"] = "kp_shopify_logged_in";
|
|
340
|
-
EventType2["KP_SUCCESSFULLY_LOGGED_OUT"] = "kp_successfully_logged_out";
|
|
341
316
|
return EventType2;
|
|
342
317
|
})(EventType || {});
|
|
343
318
|
|
|
@@ -346,7 +321,14 @@ init_publisher();
|
|
|
346
321
|
init_subscriber();
|
|
347
322
|
|
|
348
323
|
// src/logger/index.ts
|
|
349
|
-
var
|
|
324
|
+
var LOG_LEVELS = {
|
|
325
|
+
trace: 10,
|
|
326
|
+
debug: 20,
|
|
327
|
+
info: 30,
|
|
328
|
+
warn: 40,
|
|
329
|
+
error: 50,
|
|
330
|
+
fatal: 60
|
|
331
|
+
};
|
|
350
332
|
var NoOpLogger = class _NoOpLogger {
|
|
351
333
|
trace() {
|
|
352
334
|
}
|
|
@@ -364,92 +346,109 @@ var NoOpLogger = class _NoOpLogger {
|
|
|
364
346
|
return new _NoOpLogger();
|
|
365
347
|
}
|
|
366
348
|
};
|
|
367
|
-
var
|
|
368
|
-
constructor(
|
|
369
|
-
this.
|
|
349
|
+
var UniversalLogger = class _UniversalLogger {
|
|
350
|
+
constructor(config, bindings = {}) {
|
|
351
|
+
this.config = config;
|
|
352
|
+
this.bindings = bindings;
|
|
353
|
+
}
|
|
354
|
+
shouldLog(level) {
|
|
355
|
+
return LOG_LEVELS[level] >= LOG_LEVELS[this.config.level];
|
|
356
|
+
}
|
|
357
|
+
formatMessage(level, message, args, error) {
|
|
358
|
+
const timestamp = (/* @__PURE__ */ new Date()).toISOString();
|
|
359
|
+
const name = this.config.name;
|
|
360
|
+
let logMessage = this.config.prettyPrint ? `[${timestamp}] ${level.toUpperCase()} [${name}]: ${message}` : JSON.stringify({
|
|
361
|
+
timestamp,
|
|
362
|
+
level,
|
|
363
|
+
name,
|
|
364
|
+
message,
|
|
365
|
+
...this.bindings,
|
|
366
|
+
...args.length > 0 && { args },
|
|
367
|
+
...error && {
|
|
368
|
+
error: { message: error.message, stack: error.stack }
|
|
369
|
+
}
|
|
370
|
+
});
|
|
371
|
+
if (this.config.prettyPrint && args.length > 0) {
|
|
372
|
+
logMessage += ` ${args.map(
|
|
373
|
+
(arg) => typeof arg === "object" ? JSON.stringify(arg) : String(arg)
|
|
374
|
+
).join(" ")}`;
|
|
375
|
+
}
|
|
376
|
+
if (this.config.prettyPrint && error) {
|
|
377
|
+
logMessage += ` Error: ${error.message}`;
|
|
378
|
+
if (error.stack) {
|
|
379
|
+
logMessage += `
|
|
380
|
+
${error.stack}`;
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
return this.redactSensitiveData(logMessage);
|
|
384
|
+
}
|
|
385
|
+
redactSensitiveData(message) {
|
|
386
|
+
let redactedMessage = message;
|
|
387
|
+
for (const field of this.config.redact) {
|
|
388
|
+
const regex = new RegExp(`"${field}"\\s*:\\s*"[^"]*"`, "gi");
|
|
389
|
+
redactedMessage = redactedMessage.replace(
|
|
390
|
+
regex,
|
|
391
|
+
`"${field}":"[REDACTED]"`
|
|
392
|
+
);
|
|
393
|
+
}
|
|
394
|
+
return redactedMessage;
|
|
395
|
+
}
|
|
396
|
+
log(level, message, args, error) {
|
|
397
|
+
if (!this.shouldLog(level)) return;
|
|
398
|
+
const formattedMessage = this.formatMessage(level, message, args, error);
|
|
399
|
+
switch (level) {
|
|
400
|
+
case "trace":
|
|
401
|
+
console.trace(formattedMessage);
|
|
402
|
+
break;
|
|
403
|
+
case "debug":
|
|
404
|
+
console.debug(formattedMessage);
|
|
405
|
+
break;
|
|
406
|
+
case "info":
|
|
407
|
+
console.info(formattedMessage);
|
|
408
|
+
break;
|
|
409
|
+
case "warn":
|
|
410
|
+
console.warn(formattedMessage);
|
|
411
|
+
break;
|
|
412
|
+
case "error":
|
|
413
|
+
case "fatal":
|
|
414
|
+
console.error(formattedMessage);
|
|
415
|
+
break;
|
|
416
|
+
}
|
|
370
417
|
}
|
|
371
418
|
trace(message, ...args) {
|
|
372
|
-
this.
|
|
419
|
+
this.log("trace", message, args);
|
|
373
420
|
}
|
|
374
421
|
debug(message, ...args) {
|
|
375
|
-
this.
|
|
422
|
+
this.log("debug", message, args);
|
|
376
423
|
}
|
|
377
424
|
info(message, ...args) {
|
|
378
|
-
this.
|
|
425
|
+
this.log("info", message, args);
|
|
379
426
|
}
|
|
380
427
|
warn(message, ...args) {
|
|
381
|
-
this.
|
|
428
|
+
this.log("warn", message, args);
|
|
382
429
|
}
|
|
383
430
|
error(message, error, ...args) {
|
|
384
|
-
this.
|
|
431
|
+
this.log("error", message, args, error);
|
|
385
432
|
}
|
|
386
433
|
fatal(message, error, ...args) {
|
|
387
|
-
this.
|
|
434
|
+
this.log("fatal", message, args, error);
|
|
388
435
|
}
|
|
389
436
|
child(bindings) {
|
|
390
|
-
return new
|
|
437
|
+
return new _UniversalLogger(this.config, { ...this.bindings, ...bindings });
|
|
391
438
|
}
|
|
392
439
|
};
|
|
393
440
|
function createLogger(config = {}) {
|
|
394
|
-
const {
|
|
395
|
-
level
|
|
396
|
-
enabled
|
|
397
|
-
name
|
|
398
|
-
prettyPrint
|
|
399
|
-
redact
|
|
400
|
-
} = config;
|
|
401
|
-
if (!enabled) {
|
|
402
|
-
return new NoOpLogger();
|
|
403
|
-
}
|
|
404
|
-
const pinoConfig = {
|
|
405
|
-
name,
|
|
406
|
-
level,
|
|
407
|
-
redact,
|
|
408
|
-
browser: {
|
|
409
|
-
asObject: true,
|
|
410
|
-
serialize: true,
|
|
411
|
-
write: {
|
|
412
|
-
trace: (o) => console.trace(formatBrowserLog(o)),
|
|
413
|
-
debug: (o) => console.debug(formatBrowserLog(o)),
|
|
414
|
-
info: (o) => console.info(formatBrowserLog(o)),
|
|
415
|
-
warn: (o) => console.warn(formatBrowserLog(o)),
|
|
416
|
-
error: (o) => console.error(formatBrowserLog(o)),
|
|
417
|
-
fatal: (o) => console.error(formatBrowserLog(o))
|
|
418
|
-
}
|
|
419
|
-
}
|
|
441
|
+
const fullConfig = {
|
|
442
|
+
level: config.level || "info",
|
|
443
|
+
enabled: config.enabled !== false,
|
|
444
|
+
name: config.name || "@shopkit/analytics",
|
|
445
|
+
prettyPrint: config.prettyPrint || false,
|
|
446
|
+
redact: config.redact || []
|
|
420
447
|
};
|
|
421
|
-
if (
|
|
422
|
-
|
|
423
|
-
target: "pino-pretty",
|
|
424
|
-
options: {
|
|
425
|
-
colorize: true,
|
|
426
|
-
translateTime: "HH:MM:ss Z",
|
|
427
|
-
ignore: "pid,hostname"
|
|
428
|
-
}
|
|
429
|
-
};
|
|
430
|
-
}
|
|
431
|
-
const pinoLogger = (0, import_pino.default)(pinoConfig);
|
|
432
|
-
return new PinoLogger(pinoLogger);
|
|
433
|
-
}
|
|
434
|
-
function formatBrowserLog(logObj) {
|
|
435
|
-
const { level, time, msg, name, args, error, ...rest } = logObj;
|
|
436
|
-
let message = `[${name}] ${msg}`;
|
|
437
|
-
if (args && args.length > 0) {
|
|
438
|
-
message += ` ${args.map(
|
|
439
|
-
(arg) => typeof arg === "object" ? JSON.stringify(arg) : String(arg)
|
|
440
|
-
).join(" ")}`;
|
|
441
|
-
}
|
|
442
|
-
if (error) {
|
|
443
|
-
message += ` Error: ${error.message}`;
|
|
444
|
-
if (error.stack) {
|
|
445
|
-
message += `
|
|
446
|
-
${error.stack}`;
|
|
447
|
-
}
|
|
448
|
-
}
|
|
449
|
-
if (Object.keys(rest).length > 0) {
|
|
450
|
-
message += ` ${JSON.stringify(rest)}`;
|
|
448
|
+
if (!fullConfig.enabled) {
|
|
449
|
+
return new NoOpLogger();
|
|
451
450
|
}
|
|
452
|
-
return
|
|
451
|
+
return new UniversalLogger(fullConfig);
|
|
453
452
|
}
|
|
454
453
|
var logger = createLogger({
|
|
455
454
|
enabled: true,
|
|
@@ -461,6 +460,38 @@ function createAdapterLogger(adapterName, config = {}) {
|
|
|
461
460
|
return baseLogger.child({ adapter: adapterName });
|
|
462
461
|
}
|
|
463
462
|
|
|
463
|
+
// src/experiment/constants.ts
|
|
464
|
+
var PRIMA_EXPERIMENT_COOKIES = {
|
|
465
|
+
HOME: "_prima_pr_ab_home",
|
|
466
|
+
COLLECTION: "_prima_pr_ab_collection",
|
|
467
|
+
PRODUCT: "_prima_pr_ab_product"
|
|
468
|
+
};
|
|
469
|
+
var PRIMA_EXPERIMENT_COOKIE_NAMES = Object.values(
|
|
470
|
+
PRIMA_EXPERIMENT_COOKIES
|
|
471
|
+
);
|
|
472
|
+
|
|
473
|
+
// src/experiment/experiment-tracker.ts
|
|
474
|
+
function getCookie(name) {
|
|
475
|
+
if (typeof document === "undefined") return null;
|
|
476
|
+
const value = `; ${document.cookie}`;
|
|
477
|
+
const parts = value.split(`; ${name}=`);
|
|
478
|
+
if (parts.length === 2) {
|
|
479
|
+
return parts.pop()?.split(";").shift() || null;
|
|
480
|
+
}
|
|
481
|
+
return null;
|
|
482
|
+
}
|
|
483
|
+
function getExperimentParams() {
|
|
484
|
+
return {
|
|
485
|
+
[PRIMA_EXPERIMENT_COOKIES.HOME]: getCookie(PRIMA_EXPERIMENT_COOKIES.HOME),
|
|
486
|
+
[PRIMA_EXPERIMENT_COOKIES.COLLECTION]: getCookie(
|
|
487
|
+
PRIMA_EXPERIMENT_COOKIES.COLLECTION
|
|
488
|
+
),
|
|
489
|
+
[PRIMA_EXPERIMENT_COOKIES.PRODUCT]: getCookie(
|
|
490
|
+
PRIMA_EXPERIMENT_COOKIES.PRODUCT
|
|
491
|
+
)
|
|
492
|
+
};
|
|
493
|
+
}
|
|
494
|
+
|
|
464
495
|
// src/adapters/base-adapter.ts
|
|
465
496
|
var BaseAdapter = class {
|
|
466
497
|
/**
|
|
@@ -498,6 +529,38 @@ var BaseAdapter = class {
|
|
|
498
529
|
isEnabled() {
|
|
499
530
|
return this.initialized;
|
|
500
531
|
}
|
|
532
|
+
/**
|
|
533
|
+
* Extract adapter-specific parameters for this adapter
|
|
534
|
+
* @param params The adapter parameters object
|
|
535
|
+
* @returns Adapter-specific parameters or empty object
|
|
536
|
+
*/
|
|
537
|
+
getAdapterParams(params) {
|
|
538
|
+
return params?.[this.name] || {};
|
|
539
|
+
}
|
|
540
|
+
/**
|
|
541
|
+
* Get custom event name or fall back to default
|
|
542
|
+
* @param params The adapter parameters object
|
|
543
|
+
* @param defaultName The default event name to use
|
|
544
|
+
* @returns Custom event name or default
|
|
545
|
+
*/
|
|
546
|
+
getEventName(params, defaultName) {
|
|
547
|
+
const adapterParams = this.getAdapterParams(params);
|
|
548
|
+
return adapterParams.event_name || defaultName;
|
|
549
|
+
}
|
|
550
|
+
/**
|
|
551
|
+
* Merge standard event data with adapter-specific parameters
|
|
552
|
+
* @param params The adapter parameters object
|
|
553
|
+
* @param standardData The standard event data
|
|
554
|
+
* @returns Merged data with adapter-specific overrides
|
|
555
|
+
*/
|
|
556
|
+
mergeEventData(standardData, params) {
|
|
557
|
+
const adapterParams = this.getAdapterParams(params);
|
|
558
|
+
const { event_name, ...customParams } = adapterParams;
|
|
559
|
+
return {
|
|
560
|
+
...standardData,
|
|
561
|
+
...customParams
|
|
562
|
+
};
|
|
563
|
+
}
|
|
501
564
|
/**
|
|
502
565
|
* Get a configuration value
|
|
503
566
|
* @param key The configuration key
|
|
@@ -514,6 +577,21 @@ var BaseAdapter = class {
|
|
|
514
577
|
getAffiliateParams() {
|
|
515
578
|
return null;
|
|
516
579
|
}
|
|
580
|
+
/**
|
|
581
|
+
* Get experiment parameters from cookies
|
|
582
|
+
* @returns Experiment parameters
|
|
583
|
+
*/
|
|
584
|
+
getExperimentParams() {
|
|
585
|
+
try {
|
|
586
|
+
return getExperimentParams();
|
|
587
|
+
} catch (error) {
|
|
588
|
+
return {
|
|
589
|
+
_prima_pr_ab_home: null,
|
|
590
|
+
_prima_pr_ab_collection: null,
|
|
591
|
+
_prima_pr_ab_product: null
|
|
592
|
+
};
|
|
593
|
+
}
|
|
594
|
+
}
|
|
517
595
|
/**
|
|
518
596
|
* Enhance event parameters with affiliate data
|
|
519
597
|
* @param params The original parameters
|
|
@@ -528,8 +606,71 @@ var BaseAdapter = class {
|
|
|
528
606
|
...affiliateParams
|
|
529
607
|
};
|
|
530
608
|
}
|
|
609
|
+
/**
|
|
610
|
+
* Enhance event parameters with experiment data
|
|
611
|
+
* @param params The original parameters
|
|
612
|
+
* @returns Parameters enhanced with experiment data
|
|
613
|
+
*/
|
|
614
|
+
enhanceWithExperimentParams(params) {
|
|
615
|
+
const experimentParams = this.getExperimentParams();
|
|
616
|
+
return {
|
|
617
|
+
...params,
|
|
618
|
+
experiment: experimentParams
|
|
619
|
+
};
|
|
620
|
+
}
|
|
531
621
|
};
|
|
532
622
|
|
|
623
|
+
// src/utils/event-id.ts
|
|
624
|
+
function generateEventId(eventType) {
|
|
625
|
+
const timestamp = Date.now();
|
|
626
|
+
const randomString = Math.random().toString(36).substring(2, 8);
|
|
627
|
+
return `${timestamp}_${randomString}_${eventType}`;
|
|
628
|
+
}
|
|
629
|
+
function getBrowserInfo() {
|
|
630
|
+
if (typeof window === "undefined") {
|
|
631
|
+
return {};
|
|
632
|
+
}
|
|
633
|
+
const userAgent = navigator.userAgent;
|
|
634
|
+
const fbc = getFacebookClickId();
|
|
635
|
+
const fbp = getFacebookBrowserId();
|
|
636
|
+
return {
|
|
637
|
+
clientUserAgent: userAgent,
|
|
638
|
+
fbc,
|
|
639
|
+
fbp
|
|
640
|
+
};
|
|
641
|
+
}
|
|
642
|
+
function getFacebookClickId() {
|
|
643
|
+
if (typeof window === "undefined") {
|
|
644
|
+
return void 0;
|
|
645
|
+
}
|
|
646
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
647
|
+
const fbclid = urlParams.get("fbclid");
|
|
648
|
+
if (fbclid) {
|
|
649
|
+
return `fb.1.${Date.now()}.${fbclid}`;
|
|
650
|
+
}
|
|
651
|
+
const cookies = document.cookie.split(";");
|
|
652
|
+
for (const cookie of cookies) {
|
|
653
|
+
const [name, value] = cookie.trim().split("=");
|
|
654
|
+
if (name === "_fbc") {
|
|
655
|
+
return value;
|
|
656
|
+
}
|
|
657
|
+
}
|
|
658
|
+
return void 0;
|
|
659
|
+
}
|
|
660
|
+
function getFacebookBrowserId() {
|
|
661
|
+
if (typeof window === "undefined") {
|
|
662
|
+
return void 0;
|
|
663
|
+
}
|
|
664
|
+
const cookies = document.cookie.split(";");
|
|
665
|
+
for (const cookie of cookies) {
|
|
666
|
+
const [name, value] = cookie.trim().split("=");
|
|
667
|
+
if (name === "_fbp") {
|
|
668
|
+
return value;
|
|
669
|
+
}
|
|
670
|
+
}
|
|
671
|
+
return void 0;
|
|
672
|
+
}
|
|
673
|
+
|
|
533
674
|
// src/adapters/pixel-adapter.ts
|
|
534
675
|
var PixelAdapter = class extends BaseAdapter {
|
|
535
676
|
constructor(config) {
|
|
@@ -555,18 +696,34 @@ var PixelAdapter = class extends BaseAdapter {
|
|
|
555
696
|
);
|
|
556
697
|
return;
|
|
557
698
|
}
|
|
558
|
-
const pixelId = this.getConfig("pixelId");
|
|
559
699
|
this.logger.info("Successfully initialized", { pixelId: "***" });
|
|
560
700
|
this.initialized = true;
|
|
561
701
|
}
|
|
562
702
|
/**
|
|
563
703
|
* Track an event with Facebook Pixel
|
|
564
704
|
* @param event The event to track
|
|
705
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
706
|
+
*/
|
|
707
|
+
async trackEvent(event, adapterParams) {
|
|
708
|
+
if (!event.eventId) {
|
|
709
|
+
event.eventId = generateEventId(event.type);
|
|
710
|
+
}
|
|
711
|
+
this.logger.debug("Tracking event", {
|
|
712
|
+
eventType: event.type,
|
|
713
|
+
eventId: event.eventId
|
|
714
|
+
});
|
|
715
|
+
await this.trackClientSide(event, adapterParams);
|
|
716
|
+
if (this.getConfig("enableCAPI", true)) {
|
|
717
|
+
await this.trackServerSide(event);
|
|
718
|
+
}
|
|
719
|
+
}
|
|
720
|
+
/**
|
|
721
|
+
* Track event on client-side (browser pixel)
|
|
565
722
|
*/
|
|
566
|
-
async
|
|
723
|
+
async trackClientSide(event, adapterParams) {
|
|
567
724
|
if (!this.initialized || typeof window === "undefined" || !window.fbq) {
|
|
568
725
|
this.logger.warn(
|
|
569
|
-
"Cannot track event, adapter not initialized or fbq not available",
|
|
726
|
+
"Cannot track client-side event, adapter not initialized or fbq not available",
|
|
570
727
|
{
|
|
571
728
|
eventType: event.type,
|
|
572
729
|
initialized: this.initialized,
|
|
@@ -576,55 +733,96 @@ var PixelAdapter = class extends BaseAdapter {
|
|
|
576
733
|
);
|
|
577
734
|
return;
|
|
578
735
|
}
|
|
579
|
-
this.logger.debug("Tracking event", { eventType: event.type });
|
|
580
736
|
switch (event.type) {
|
|
581
737
|
case "page_view" /* PAGE_VIEW */:
|
|
582
|
-
this.trackPageView(event);
|
|
738
|
+
this.trackPageView(event, adapterParams);
|
|
583
739
|
break;
|
|
584
740
|
case "view_content" /* VIEW_CONTENT */:
|
|
585
|
-
this.trackViewContent(event);
|
|
741
|
+
this.trackViewContent(event, adapterParams);
|
|
586
742
|
break;
|
|
587
743
|
case "product_view" /* PRODUCT_VIEW */:
|
|
588
|
-
this.trackProductView(event);
|
|
744
|
+
this.trackProductView(event, adapterParams);
|
|
589
745
|
break;
|
|
590
746
|
case "add_to_cart" /* ADD_TO_CART */:
|
|
591
|
-
this.trackAddToCart(event);
|
|
747
|
+
this.trackAddToCart(event, adapterParams);
|
|
592
748
|
break;
|
|
593
749
|
case "checkout_started" /* CHECKOUT_STARTED */:
|
|
594
|
-
this.trackCheckoutStarted(event);
|
|
750
|
+
this.trackCheckoutStarted(event, adapterParams);
|
|
595
751
|
break;
|
|
596
752
|
case "checkout_completed" /* CHECKOUT_COMPLETED */:
|
|
597
|
-
this.trackCheckoutCompleted(event);
|
|
753
|
+
this.trackCheckoutCompleted(event, adapterParams);
|
|
598
754
|
break;
|
|
599
755
|
case "purchase" /* PURCHASE */:
|
|
600
|
-
this.trackPurchase(event);
|
|
756
|
+
this.trackPurchase(event, adapterParams);
|
|
601
757
|
break;
|
|
602
758
|
case "add_payment_info" /* ADD_PAYMENT_INFO */:
|
|
603
|
-
this.trackAddPaymentInfo(event);
|
|
759
|
+
this.trackAddPaymentInfo(event, adapterParams);
|
|
604
760
|
break;
|
|
605
761
|
case "search" /* SEARCH */:
|
|
606
|
-
this.trackSearch(event);
|
|
762
|
+
this.trackSearch(event, adapterParams);
|
|
607
763
|
break;
|
|
608
764
|
default:
|
|
609
765
|
this.logger.debug("Unhandled event type", { eventType: event.type });
|
|
610
766
|
break;
|
|
611
767
|
}
|
|
612
768
|
}
|
|
769
|
+
/**
|
|
770
|
+
* Track event on server-side (CAPI) as backup
|
|
771
|
+
*/
|
|
772
|
+
async trackServerSide(event) {
|
|
773
|
+
try {
|
|
774
|
+
const browserInfo = getBrowserInfo();
|
|
775
|
+
const payload = {
|
|
776
|
+
events: [event],
|
|
777
|
+
userInfo: browserInfo
|
|
778
|
+
};
|
|
779
|
+
const response = await fetch("/api/events", {
|
|
780
|
+
method: "POST",
|
|
781
|
+
headers: {
|
|
782
|
+
"Content-Type": "application/json"
|
|
783
|
+
},
|
|
784
|
+
body: JSON.stringify(payload)
|
|
785
|
+
});
|
|
786
|
+
if (!response.ok) {
|
|
787
|
+
throw new Error(`Server-side tracking failed: ${response.status}`);
|
|
788
|
+
}
|
|
789
|
+
this.logger.debug(
|
|
790
|
+
`FB Pixel: Server-side backup sent for event ${event.type}`
|
|
791
|
+
);
|
|
792
|
+
} catch (error) {
|
|
793
|
+
this.logger.error(
|
|
794
|
+
`FB Pixel: Server-side backup failed for event ${event.type}: ${error instanceof Error ? error.message : String(error)}`
|
|
795
|
+
);
|
|
796
|
+
}
|
|
797
|
+
}
|
|
613
798
|
/**
|
|
614
799
|
* Track a page view event
|
|
615
800
|
* @param event The page view event
|
|
616
801
|
*/
|
|
617
|
-
trackPageView(event) {
|
|
618
|
-
const
|
|
619
|
-
|
|
620
|
-
this.
|
|
802
|
+
trackPageView(event, adapterParams) {
|
|
803
|
+
const eventName = this.getEventName(adapterParams, "PageView");
|
|
804
|
+
const affiliateParams = this.enhanceWithAffiliateParams({});
|
|
805
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
806
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
807
|
+
if (event.eventId) {
|
|
808
|
+
window.fbq?.("track", eventName, enhancedParams, {
|
|
809
|
+
eventID: event.eventId
|
|
810
|
+
});
|
|
811
|
+
} else {
|
|
812
|
+
window.fbq?.("track", eventName, enhancedParams);
|
|
813
|
+
}
|
|
814
|
+
this.logger.debug("PageView event tracked", {
|
|
815
|
+
eventName,
|
|
816
|
+
params: enhancedParams
|
|
817
|
+
});
|
|
621
818
|
}
|
|
622
819
|
/**
|
|
623
820
|
* Track a product view event
|
|
624
821
|
* @param event The product view event
|
|
625
822
|
*/
|
|
626
|
-
trackProductView(event) {
|
|
627
|
-
const
|
|
823
|
+
trackProductView(event, adapterParams) {
|
|
824
|
+
const eventName = this.getEventName(adapterParams, "ViewContent");
|
|
825
|
+
const baseParams = {
|
|
628
826
|
content_type: "product_group",
|
|
629
827
|
content_ids: [event.productId],
|
|
630
828
|
content_name: event.productName,
|
|
@@ -632,34 +830,56 @@ var PixelAdapter = class extends BaseAdapter {
|
|
|
632
830
|
value: event.price,
|
|
633
831
|
currency: event.currency || "INR"
|
|
634
832
|
};
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
833
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
834
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
835
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
836
|
+
if (event.eventId) {
|
|
837
|
+
window.fbq?.("track", eventName, enhancedParams, {
|
|
838
|
+
eventID: event.eventId
|
|
839
|
+
});
|
|
840
|
+
} else {
|
|
841
|
+
window.fbq?.("track", eventName, enhancedParams);
|
|
842
|
+
}
|
|
843
|
+
this.logger.debug("ProductView event tracked", {
|
|
844
|
+
eventName,
|
|
845
|
+
params: enhancedParams
|
|
846
|
+
});
|
|
640
847
|
}
|
|
641
848
|
/**
|
|
642
849
|
* Track an add to cart event
|
|
643
850
|
* @param event The add to cart event
|
|
644
851
|
*/
|
|
645
|
-
trackAddToCart(event) {
|
|
646
|
-
const
|
|
852
|
+
trackAddToCart(event, adapterParams) {
|
|
853
|
+
const eventName = this.getEventName(adapterParams, "AddToCart");
|
|
854
|
+
const baseParams = {
|
|
647
855
|
content_type: "product_group",
|
|
648
856
|
content_ids: [event.productId],
|
|
649
857
|
content_name: event.productName,
|
|
650
858
|
value: event.price,
|
|
651
859
|
currency: event.currency || "INR"
|
|
652
860
|
};
|
|
653
|
-
const
|
|
654
|
-
|
|
655
|
-
this.
|
|
861
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
862
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
863
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
864
|
+
if (event.eventId) {
|
|
865
|
+
window.fbq?.("track", eventName, enhancedParams, {
|
|
866
|
+
eventID: event.eventId
|
|
867
|
+
});
|
|
868
|
+
} else {
|
|
869
|
+
window.fbq?.("track", eventName, enhancedParams);
|
|
870
|
+
}
|
|
871
|
+
this.logger.debug("AddToCart event tracked", {
|
|
872
|
+
eventName,
|
|
873
|
+
params: enhancedParams
|
|
874
|
+
});
|
|
656
875
|
}
|
|
657
876
|
/**
|
|
658
877
|
* Track a checkout started event
|
|
659
878
|
* @param event The checkout started event
|
|
660
879
|
*/
|
|
661
|
-
trackCheckoutStarted(event) {
|
|
662
|
-
const
|
|
880
|
+
trackCheckoutStarted(event, adapterParams) {
|
|
881
|
+
const eventName = this.getEventName(adapterParams, "InitiateCheckout");
|
|
882
|
+
const baseParams = {
|
|
663
883
|
content_ids: event.items.map((item) => item.productId),
|
|
664
884
|
content_type: "product_group",
|
|
665
885
|
value: event.cartValue,
|
|
@@ -671,18 +891,28 @@ var PixelAdapter = class extends BaseAdapter {
|
|
|
671
891
|
item_price: item.price
|
|
672
892
|
}))
|
|
673
893
|
};
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
894
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
895
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
896
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
897
|
+
if (event.eventId) {
|
|
898
|
+
window.fbq?.("track", eventName, enhancedParams, {
|
|
899
|
+
eventID: event.eventId
|
|
900
|
+
});
|
|
901
|
+
} else {
|
|
902
|
+
window.fbq?.("track", eventName, enhancedParams);
|
|
903
|
+
}
|
|
904
|
+
this.logger.debug("CheckoutStarted event tracked", {
|
|
905
|
+
eventName,
|
|
906
|
+
params: enhancedParams
|
|
907
|
+
});
|
|
679
908
|
}
|
|
680
909
|
/**
|
|
681
910
|
* Track a checkout completed event
|
|
682
911
|
* @param event The checkout completed event
|
|
683
912
|
*/
|
|
684
|
-
trackCheckoutCompleted(event) {
|
|
685
|
-
const
|
|
913
|
+
trackCheckoutCompleted(event, adapterParams) {
|
|
914
|
+
const eventName = this.getEventName(adapterParams, "Purchase");
|
|
915
|
+
const baseParams = {
|
|
686
916
|
value: event.cartValue,
|
|
687
917
|
currency: event.currency || "INR",
|
|
688
918
|
content_type: "product_group",
|
|
@@ -694,26 +924,54 @@ var PixelAdapter = class extends BaseAdapter {
|
|
|
694
924
|
item_price: item.price
|
|
695
925
|
}))
|
|
696
926
|
};
|
|
697
|
-
|
|
927
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
928
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
929
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
930
|
+
if (event.eventId) {
|
|
931
|
+
window.fbq?.("track", eventName, enhancedParams, {
|
|
932
|
+
eventID: event.eventId
|
|
933
|
+
});
|
|
934
|
+
} else {
|
|
935
|
+
window.fbq?.("track", eventName, enhancedParams);
|
|
936
|
+
}
|
|
937
|
+
this.logger.debug("CheckoutCompleted event tracked", {
|
|
938
|
+
eventName,
|
|
939
|
+
params: enhancedParams
|
|
940
|
+
});
|
|
698
941
|
}
|
|
699
942
|
/**
|
|
700
943
|
* Track a search event
|
|
701
944
|
* @param event The search event
|
|
702
945
|
*/
|
|
703
|
-
trackSearch(event) {
|
|
704
|
-
const
|
|
946
|
+
trackSearch(event, adapterParams) {
|
|
947
|
+
const eventName = this.getEventName(adapterParams, "Search");
|
|
948
|
+
const baseParams = {
|
|
705
949
|
search_string: event.searchTerm,
|
|
706
950
|
content_category: "product",
|
|
707
951
|
content_ids: event.content_ids || []
|
|
708
952
|
};
|
|
709
|
-
|
|
953
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
954
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
955
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
956
|
+
if (event.eventId) {
|
|
957
|
+
window.fbq?.("track", eventName, enhancedParams, {
|
|
958
|
+
eventID: event.eventId
|
|
959
|
+
});
|
|
960
|
+
} else {
|
|
961
|
+
window.fbq?.("track", eventName, enhancedParams);
|
|
962
|
+
}
|
|
963
|
+
this.logger.debug("Search event tracked", {
|
|
964
|
+
eventName,
|
|
965
|
+
params: enhancedParams
|
|
966
|
+
});
|
|
710
967
|
}
|
|
711
968
|
/**
|
|
712
969
|
* Track an add payment info event
|
|
713
970
|
* @param event The add payment info event
|
|
714
971
|
*/
|
|
715
|
-
trackAddPaymentInfo(event) {
|
|
716
|
-
const
|
|
972
|
+
trackAddPaymentInfo(event, adapterParams) {
|
|
973
|
+
const eventName = this.getEventName(adapterParams, "AddPaymentInfo");
|
|
974
|
+
const baseParams = {
|
|
717
975
|
value: event.cartValue,
|
|
718
976
|
currency: event.currency || "INR",
|
|
719
977
|
content_type: "product_group",
|
|
@@ -725,18 +983,28 @@ var PixelAdapter = class extends BaseAdapter {
|
|
|
725
983
|
})),
|
|
726
984
|
payment_type: event.paymentType || ""
|
|
727
985
|
};
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
986
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
987
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
988
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
989
|
+
if (event.eventId) {
|
|
990
|
+
window.fbq?.("track", eventName, enhancedParams, {
|
|
991
|
+
eventID: event.eventId
|
|
992
|
+
});
|
|
993
|
+
} else {
|
|
994
|
+
window.fbq?.("track", eventName, enhancedParams);
|
|
995
|
+
}
|
|
996
|
+
this.logger.debug("AddPaymentInfo event tracked", {
|
|
997
|
+
eventName,
|
|
998
|
+
params: enhancedParams
|
|
999
|
+
});
|
|
733
1000
|
}
|
|
734
1001
|
/**
|
|
735
1002
|
* Track a view content event
|
|
736
1003
|
* @param event The view content event
|
|
737
1004
|
*/
|
|
738
|
-
trackViewContent(event) {
|
|
739
|
-
const
|
|
1005
|
+
trackViewContent(event, adapterParams) {
|
|
1006
|
+
const eventName = this.getEventName(adapterParams, "ViewContent");
|
|
1007
|
+
const baseParams = {
|
|
740
1008
|
content_type: event.content_type || "product",
|
|
741
1009
|
content_ids: event.content_ids || [],
|
|
742
1010
|
content_name: event.content_name || "",
|
|
@@ -744,18 +1012,28 @@ var PixelAdapter = class extends BaseAdapter {
|
|
|
744
1012
|
value: event.value || 0,
|
|
745
1013
|
currency: event.currency || "INR"
|
|
746
1014
|
};
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
1015
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1016
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1017
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1018
|
+
if (event.eventId) {
|
|
1019
|
+
window.fbq?.("track", eventName, enhancedParams, {
|
|
1020
|
+
eventID: event.eventId
|
|
1021
|
+
});
|
|
1022
|
+
} else {
|
|
1023
|
+
window.fbq?.("track", eventName, enhancedParams);
|
|
1024
|
+
}
|
|
1025
|
+
this.logger.debug("ViewContent event tracked", {
|
|
1026
|
+
eventName,
|
|
1027
|
+
params: enhancedParams
|
|
1028
|
+
});
|
|
752
1029
|
}
|
|
753
1030
|
/**
|
|
754
1031
|
* Track a purchase event
|
|
755
1032
|
* @param event The purchase event
|
|
756
1033
|
*/
|
|
757
|
-
trackPurchase(event) {
|
|
758
|
-
const
|
|
1034
|
+
trackPurchase(event, adapterParams) {
|
|
1035
|
+
const eventName = this.getEventName(adapterParams, "Purchase");
|
|
1036
|
+
const baseParams = {
|
|
759
1037
|
value: event.value,
|
|
760
1038
|
currency: event.currency || "INR",
|
|
761
1039
|
content_type: event.content_type || "product_group",
|
|
@@ -763,15 +1041,20 @@ var PixelAdapter = class extends BaseAdapter {
|
|
|
763
1041
|
num_items: event.num_items || 1,
|
|
764
1042
|
contents: event.contents || []
|
|
765
1043
|
};
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
1044
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1045
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1046
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1047
|
+
if (event.eventId) {
|
|
1048
|
+
window.fbq?.("track", eventName, enhancedParams, {
|
|
1049
|
+
eventID: event.eventId
|
|
1050
|
+
});
|
|
1051
|
+
} else {
|
|
1052
|
+
window.fbq?.("track", eventName, enhancedParams);
|
|
1053
|
+
}
|
|
1054
|
+
this.logger.debug("Purchase event tracked", {
|
|
1055
|
+
eventName,
|
|
1056
|
+
params: enhancedParams
|
|
1057
|
+
});
|
|
775
1058
|
}
|
|
776
1059
|
};
|
|
777
1060
|
|
|
@@ -820,8 +1103,9 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
820
1103
|
/**
|
|
821
1104
|
* Track an event with Google Analytics
|
|
822
1105
|
* @param event The event to track
|
|
1106
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
823
1107
|
*/
|
|
824
|
-
async trackEvent(event) {
|
|
1108
|
+
async trackEvent(event, adapterParams) {
|
|
825
1109
|
this.logger.debug("Attempting to track event", {
|
|
826
1110
|
initialized: this.initialized,
|
|
827
1111
|
hasWindow: typeof window !== "undefined",
|
|
@@ -847,76 +1131,94 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
847
1131
|
});
|
|
848
1132
|
switch (event.type) {
|
|
849
1133
|
case "page_view" /* PAGE_VIEW */:
|
|
850
|
-
this.trackPageView(
|
|
1134
|
+
this.trackPageView(
|
|
1135
|
+
event,
|
|
1136
|
+
measurementId,
|
|
1137
|
+
adapterParams
|
|
1138
|
+
);
|
|
851
1139
|
break;
|
|
852
1140
|
case "user_engagement" /* USER_ENGAGEMENT */:
|
|
853
|
-
this.trackUserEngagement();
|
|
1141
|
+
this.trackUserEngagement(adapterParams);
|
|
854
1142
|
break;
|
|
855
1143
|
case "session_start" /* SESSION_START */:
|
|
856
|
-
this.trackSessionStart();
|
|
1144
|
+
this.trackSessionStart(adapterParams);
|
|
857
1145
|
break;
|
|
858
1146
|
case "first_visit" /* FIRST_VISIT */:
|
|
859
|
-
this.trackFirstVisit();
|
|
1147
|
+
this.trackFirstVisit(adapterParams);
|
|
860
1148
|
break;
|
|
861
1149
|
case "view_item" /* VIEW_ITEM */:
|
|
862
|
-
this.trackViewItem(event);
|
|
1150
|
+
this.trackViewItem(event, adapterParams);
|
|
863
1151
|
break;
|
|
864
1152
|
case "viewed_product" /* VIEWED_PRODUCT */:
|
|
865
|
-
this.trackViewedProduct(event);
|
|
1153
|
+
this.trackViewedProduct(event, adapterParams);
|
|
866
1154
|
break;
|
|
867
1155
|
case "checkout_payment" /* CHECKOUT_PAYMENT */:
|
|
868
|
-
this.trackCheckoutPayment(
|
|
1156
|
+
this.trackCheckoutPayment(
|
|
1157
|
+
event,
|
|
1158
|
+
adapterParams
|
|
1159
|
+
);
|
|
869
1160
|
break;
|
|
870
1161
|
case "scroll" /* SCROLL */:
|
|
871
|
-
this.trackScroll();
|
|
1162
|
+
this.trackScroll(adapterParams);
|
|
872
1163
|
break;
|
|
873
1164
|
case "add_to_cart" /* ADD_TO_CART */:
|
|
874
|
-
|
|
875
|
-
this.trackAddToCart(event);
|
|
1165
|
+
this.trackAddToCart(event, adapterParams);
|
|
876
1166
|
break;
|
|
877
1167
|
case "form_start" /* FORM_START */:
|
|
878
|
-
this.trackFormStart();
|
|
1168
|
+
this.trackFormStart(adapterParams);
|
|
879
1169
|
break;
|
|
880
1170
|
case "checkout_started" /* CHECKOUT_STARTED */:
|
|
881
|
-
this.trackCheckoutStarted(
|
|
1171
|
+
this.trackCheckoutStarted(
|
|
1172
|
+
event,
|
|
1173
|
+
adapterParams
|
|
1174
|
+
);
|
|
882
1175
|
break;
|
|
883
1176
|
case "form_submission" /* FORM_SUBMISSION */:
|
|
884
|
-
this.trackFormSubmission(event);
|
|
1177
|
+
this.trackFormSubmission(event, adapterParams);
|
|
885
1178
|
break;
|
|
886
1179
|
case "search" /* SEARCH */:
|
|
887
|
-
this.trackSearch(event);
|
|
1180
|
+
this.trackSearch(event, adapterParams);
|
|
888
1181
|
break;
|
|
889
1182
|
case "checkout_completed" /* CHECKOUT_COMPLETED */:
|
|
890
|
-
this.trackCheckoutCompleted(
|
|
1183
|
+
this.trackCheckoutCompleted(
|
|
1184
|
+
event,
|
|
1185
|
+
adapterParams
|
|
1186
|
+
);
|
|
891
1187
|
break;
|
|
892
1188
|
case "add_payment_info" /* ADD_PAYMENT_INFO */:
|
|
893
|
-
this.trackAddPaymentInfo(event);
|
|
1189
|
+
this.trackAddPaymentInfo(event, adapterParams);
|
|
894
1190
|
break;
|
|
895
1191
|
case "view_content" /* VIEW_CONTENT */:
|
|
896
|
-
this.trackViewContent(event);
|
|
1192
|
+
this.trackViewContent(event, adapterParams);
|
|
897
1193
|
break;
|
|
898
1194
|
case "purchase" /* PURCHASE */:
|
|
899
|
-
this.trackPurchase(event);
|
|
1195
|
+
this.trackPurchase(event, adapterParams);
|
|
900
1196
|
break;
|
|
901
1197
|
case "view_search_results" /* VIEW_SEARCH_RESULTS */:
|
|
902
|
-
this.trackViewSearchResults(
|
|
1198
|
+
this.trackViewSearchResults(
|
|
1199
|
+
event,
|
|
1200
|
+
adapterParams
|
|
1201
|
+
);
|
|
903
1202
|
break;
|
|
904
1203
|
case "order_placed" /* ORDER_PLACED */:
|
|
905
|
-
this.trackOrderPlaced(event);
|
|
1204
|
+
this.trackOrderPlaced(event, adapterParams);
|
|
906
1205
|
break;
|
|
907
1206
|
case "begin_checkout" /* BEGIN_CHECKOUT */:
|
|
908
|
-
this.trackBeginCheckout(event);
|
|
1207
|
+
this.trackBeginCheckout(event, adapterParams);
|
|
909
1208
|
break;
|
|
910
1209
|
case "custom" /* CUSTOM */:
|
|
911
|
-
this.trackCustomEvent(event);
|
|
1210
|
+
this.trackCustomEvent(event, adapterParams);
|
|
912
1211
|
break;
|
|
913
1212
|
default: {
|
|
914
|
-
const
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
1213
|
+
const eventName = this.getEventName(adapterParams, event.type);
|
|
1214
|
+
const baseParams = this.eventToParams(event);
|
|
1215
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1216
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1217
|
+
const enhancedParams = this.mergeEventData(
|
|
1218
|
+
experimentParams,
|
|
1219
|
+
adapterParams
|
|
919
1220
|
);
|
|
1221
|
+
window.gtag("event", eventName, enhancedParams);
|
|
920
1222
|
break;
|
|
921
1223
|
}
|
|
922
1224
|
}
|
|
@@ -926,8 +1228,9 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
926
1228
|
* @param event The page view event
|
|
927
1229
|
* @param measurementId The Google Analytics measurement ID
|
|
928
1230
|
*/
|
|
929
|
-
trackPageView(event, measurementId) {
|
|
930
|
-
const
|
|
1231
|
+
trackPageView(event, measurementId, adapterParams) {
|
|
1232
|
+
const eventName = this.getEventName(adapterParams, "page_view");
|
|
1233
|
+
const baseParams = {
|
|
931
1234
|
page_path: event.path,
|
|
932
1235
|
page_title: event.title || document.title,
|
|
933
1236
|
page_location: event.page_location || window.location.href,
|
|
@@ -950,14 +1253,14 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
950
1253
|
user_properties: event.user_properties,
|
|
951
1254
|
session_engaged: event.session_engaged
|
|
952
1255
|
};
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
const
|
|
1256
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1257
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1258
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1259
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1260
|
+
}
|
|
1261
|
+
trackUserEngagement(adapterParams) {
|
|
1262
|
+
const eventName = this.getEventName(adapterParams, "user_engagement");
|
|
1263
|
+
const baseParams = {
|
|
961
1264
|
batch_ordering_id: "",
|
|
962
1265
|
batch_page_id: "",
|
|
963
1266
|
campaign: "",
|
|
@@ -974,14 +1277,14 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
974
1277
|
srsltid: "",
|
|
975
1278
|
term: ""
|
|
976
1279
|
};
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
const
|
|
1280
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1281
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1282
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1283
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1284
|
+
}
|
|
1285
|
+
trackSessionStart(adapterParams) {
|
|
1286
|
+
const eventName = this.getEventName(adapterParams, "session_start");
|
|
1287
|
+
const baseParams = {
|
|
985
1288
|
batch_ordering_id: "",
|
|
986
1289
|
batch_page_id: "",
|
|
987
1290
|
campaign: "",
|
|
@@ -1000,14 +1303,14 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
1000
1303
|
srsltid: "",
|
|
1001
1304
|
term: ""
|
|
1002
1305
|
};
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
const
|
|
1306
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1307
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1308
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1309
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1310
|
+
}
|
|
1311
|
+
trackFirstVisit(adapterParams) {
|
|
1312
|
+
const eventName = this.getEventName(adapterParams, "first_visit");
|
|
1313
|
+
const baseParams = {
|
|
1011
1314
|
batch_ordering_id: "",
|
|
1012
1315
|
batch_page_id: "",
|
|
1013
1316
|
campaign: "",
|
|
@@ -1028,25 +1331,26 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
1028
1331
|
page_source: "",
|
|
1029
1332
|
page_term: ""
|
|
1030
1333
|
};
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
);
|
|
1047
|
-
}
|
|
1048
|
-
trackScroll() {
|
|
1049
|
-
const
|
|
1334
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1335
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1336
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1337
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1338
|
+
}
|
|
1339
|
+
trackViewItem(event, adapterParams) {
|
|
1340
|
+
const eventName = this.getEventName(adapterParams, "view_item");
|
|
1341
|
+
const baseParams = {
|
|
1342
|
+
currency: event.currency,
|
|
1343
|
+
value: event.value,
|
|
1344
|
+
items: event.items
|
|
1345
|
+
};
|
|
1346
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1347
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1348
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1349
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1350
|
+
}
|
|
1351
|
+
trackScroll(adapterParams) {
|
|
1352
|
+
const eventName = this.getEventName(adapterParams, "scroll");
|
|
1353
|
+
const baseParams = {
|
|
1050
1354
|
batch_ordering_id: "",
|
|
1051
1355
|
batch_page_id: "",
|
|
1052
1356
|
engagement_time_msec: void 0,
|
|
@@ -1060,46 +1364,52 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
1060
1364
|
percent_scrolled: 90
|
|
1061
1365
|
// or dynamically captured
|
|
1062
1366
|
};
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
window.gtag?.(
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
})
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1367
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1368
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1369
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1370
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1371
|
+
}
|
|
1372
|
+
trackCheckoutPayment(event, adapterParams) {
|
|
1373
|
+
const eventName = this.getEventName(adapterParams, "checkout_payment");
|
|
1374
|
+
const baseParams = {
|
|
1375
|
+
currency: event.currency,
|
|
1376
|
+
value: event.cartValue,
|
|
1377
|
+
items: event.items.map((item) => ({
|
|
1378
|
+
item_id: item.productId,
|
|
1379
|
+
item_name: item.productName,
|
|
1380
|
+
price: item.price,
|
|
1381
|
+
quantity: item.quantity
|
|
1382
|
+
}))
|
|
1383
|
+
};
|
|
1384
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1385
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1386
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1387
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1388
|
+
}
|
|
1389
|
+
trackViewedProduct(event, adapterParams) {
|
|
1390
|
+
const eventName = this.getEventName(adapterParams, "viewed_product");
|
|
1391
|
+
const baseParams = {
|
|
1392
|
+
currency: event.currency,
|
|
1393
|
+
value: event.price,
|
|
1394
|
+
items: [
|
|
1395
|
+
{
|
|
1396
|
+
item_id: event.productId,
|
|
1397
|
+
item_name: event.productName,
|
|
1398
|
+
price: event.price,
|
|
1399
|
+
currency: event.currency
|
|
1400
|
+
}
|
|
1401
|
+
],
|
|
1402
|
+
view_duration: event.viewDuration
|
|
1403
|
+
};
|
|
1404
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1405
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1406
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1407
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1099
1408
|
}
|
|
1100
|
-
trackAddToCart(event) {
|
|
1409
|
+
trackAddToCart(event, adapterParams) {
|
|
1101
1410
|
this.logger.debug("Processing add_to_cart event", { event });
|
|
1102
|
-
const
|
|
1411
|
+
const eventName = this.getEventName(adapterParams, "add_to_cart");
|
|
1412
|
+
const baseParams = {
|
|
1103
1413
|
currency: event.currency || "INR",
|
|
1104
1414
|
value: event.price * (event.quantity || 1),
|
|
1105
1415
|
// Calculate total value
|
|
@@ -1125,14 +1435,18 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
1125
1435
|
user_id: event.user_id,
|
|
1126
1436
|
user_properties: event.user_properties
|
|
1127
1437
|
};
|
|
1128
|
-
const
|
|
1438
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1439
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1440
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1129
1441
|
this.logger.debug("Sending add_to_cart event to gtag", {
|
|
1442
|
+
eventName,
|
|
1130
1443
|
params: enhancedParams
|
|
1131
1444
|
});
|
|
1132
|
-
window.gtag?.("event",
|
|
1445
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1133
1446
|
}
|
|
1134
|
-
trackFormStart() {
|
|
1135
|
-
const
|
|
1447
|
+
trackFormStart(adapterParams) {
|
|
1448
|
+
const eventName = this.getEventName(adapterParams, "form_start");
|
|
1449
|
+
const baseParams = {
|
|
1136
1450
|
batch_ordering_id: "",
|
|
1137
1451
|
batch_page_id: "",
|
|
1138
1452
|
engagement_time_msec: void 0,
|
|
@@ -1150,14 +1464,14 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
1150
1464
|
page_referrer: document.referrer,
|
|
1151
1465
|
page_title: document.title
|
|
1152
1466
|
};
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
const
|
|
1467
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1468
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1469
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1470
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1471
|
+
}
|
|
1472
|
+
trackCheckoutStarted(event, adapterParams) {
|
|
1473
|
+
const eventName = this.getEventName(adapterParams, "begin_checkout");
|
|
1474
|
+
const baseParams = {
|
|
1161
1475
|
batch_ordering_id: "",
|
|
1162
1476
|
batch_page_id: "",
|
|
1163
1477
|
currency: event.currency || "INR",
|
|
@@ -1180,14 +1494,14 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
1180
1494
|
item_variant: item.variant
|
|
1181
1495
|
}))
|
|
1182
1496
|
};
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
const
|
|
1497
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1498
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1499
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1500
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1501
|
+
}
|
|
1502
|
+
trackFormSubmission(event, adapterParams) {
|
|
1503
|
+
const eventName = this.getEventName(adapterParams, "form_submit");
|
|
1504
|
+
const baseParams = {
|
|
1191
1505
|
batch_ordering_id: "",
|
|
1192
1506
|
batch_page_id: "",
|
|
1193
1507
|
engagement_time_msec: void 0,
|
|
@@ -1201,14 +1515,14 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
1201
1515
|
page_referrer: document.referrer,
|
|
1202
1516
|
page_title: document.title
|
|
1203
1517
|
};
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
const
|
|
1518
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1519
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1520
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1521
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1522
|
+
}
|
|
1523
|
+
trackSearch(event, adapterParams) {
|
|
1524
|
+
const eventName = this.getEventName(adapterParams, "search");
|
|
1525
|
+
const baseParams = {
|
|
1212
1526
|
batch_ordering_id: "",
|
|
1213
1527
|
batch_page_id: "",
|
|
1214
1528
|
engagement_time_msec: void 0,
|
|
@@ -1220,14 +1534,18 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
1220
1534
|
page_title: document.title,
|
|
1221
1535
|
search_term: event.searchTerm
|
|
1222
1536
|
};
|
|
1223
|
-
|
|
1537
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1538
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1539
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1540
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1224
1541
|
}
|
|
1225
1542
|
/**
|
|
1226
1543
|
* Track a checkout completed event
|
|
1227
1544
|
* @param event The checkout completed event
|
|
1228
1545
|
*/
|
|
1229
|
-
trackCheckoutCompleted(event) {
|
|
1230
|
-
const
|
|
1546
|
+
trackCheckoutCompleted(event, adapterParams) {
|
|
1547
|
+
const eventName = this.getEventName(adapterParams, "purchase");
|
|
1548
|
+
const baseParams = {
|
|
1231
1549
|
transaction_id: event.orderId,
|
|
1232
1550
|
currency: event.currency || "INR",
|
|
1233
1551
|
value: event.cartValue,
|
|
@@ -1239,22 +1557,30 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
1239
1557
|
item_variant: item.variant
|
|
1240
1558
|
}))
|
|
1241
1559
|
};
|
|
1242
|
-
|
|
1560
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1561
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1562
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1563
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1243
1564
|
}
|
|
1244
1565
|
/**
|
|
1245
1566
|
* Track a custom event
|
|
1246
1567
|
* @param event The custom event
|
|
1247
1568
|
*/
|
|
1248
|
-
trackCustomEvent(event) {
|
|
1249
|
-
const
|
|
1250
|
-
|
|
1569
|
+
trackCustomEvent(event, adapterParams) {
|
|
1570
|
+
const eventName = this.getEventName(adapterParams, event.name);
|
|
1571
|
+
const baseParams = event.properties || {};
|
|
1572
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1573
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1574
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1575
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1251
1576
|
}
|
|
1252
1577
|
/**
|
|
1253
1578
|
* Track an add payment info event
|
|
1254
1579
|
* @param event The add payment info event
|
|
1255
1580
|
*/
|
|
1256
|
-
trackAddPaymentInfo(event) {
|
|
1257
|
-
const
|
|
1581
|
+
trackAddPaymentInfo(event, adapterParams) {
|
|
1582
|
+
const eventName = this.getEventName(adapterParams, "add_payment_info");
|
|
1583
|
+
const baseParams = {
|
|
1258
1584
|
currency: event.currency || "INR",
|
|
1259
1585
|
value: event.cartValue,
|
|
1260
1586
|
payment_type: event.paymentType || "",
|
|
@@ -1266,18 +1592,18 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
1266
1592
|
item_variant: item.variant
|
|
1267
1593
|
}))
|
|
1268
1594
|
};
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
);
|
|
1595
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1596
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1597
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1598
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1274
1599
|
}
|
|
1275
1600
|
/**
|
|
1276
1601
|
* Track a view content event
|
|
1277
1602
|
* @param event The view content event
|
|
1278
1603
|
*/
|
|
1279
|
-
trackViewContent(event) {
|
|
1280
|
-
const
|
|
1604
|
+
trackViewContent(event, adapterParams) {
|
|
1605
|
+
const eventName = this.getEventName(adapterParams, "view_item");
|
|
1606
|
+
const baseParams = {
|
|
1281
1607
|
currency: event.currency || "USD",
|
|
1282
1608
|
value: event.value || 0,
|
|
1283
1609
|
items: event.items?.map((item) => ({
|
|
@@ -1306,18 +1632,18 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
1306
1632
|
user_id: event.user_id,
|
|
1307
1633
|
user_properties: event.user_properties
|
|
1308
1634
|
};
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
);
|
|
1635
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1636
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1637
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1638
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1314
1639
|
}
|
|
1315
1640
|
/**
|
|
1316
1641
|
* Track a purchase event
|
|
1317
1642
|
* @param event The purchase event
|
|
1318
1643
|
*/
|
|
1319
|
-
trackPurchase(event) {
|
|
1320
|
-
const
|
|
1644
|
+
trackPurchase(event, adapterParams) {
|
|
1645
|
+
const eventName = this.getEventName(adapterParams, "purchase");
|
|
1646
|
+
const baseParams = {
|
|
1321
1647
|
transaction_id: event.transaction_id,
|
|
1322
1648
|
value: event.value,
|
|
1323
1649
|
currency: event.currency || "USD",
|
|
@@ -1350,14 +1676,18 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
1350
1676
|
user_id: event.user_id,
|
|
1351
1677
|
user_properties: event.user_properties
|
|
1352
1678
|
};
|
|
1353
|
-
|
|
1679
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1680
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1681
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1682
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1354
1683
|
}
|
|
1355
1684
|
/**
|
|
1356
1685
|
* Track a view search results event
|
|
1357
1686
|
* @param event The view search results event
|
|
1358
1687
|
*/
|
|
1359
|
-
trackViewSearchResults(event) {
|
|
1360
|
-
const
|
|
1688
|
+
trackViewSearchResults(event, adapterParams) {
|
|
1689
|
+
const eventName = this.getEventName(adapterParams, "view_search_results");
|
|
1690
|
+
const baseParams = {
|
|
1361
1691
|
search_term: event.search_term,
|
|
1362
1692
|
// GA4-specific parameters
|
|
1363
1693
|
batch_ordering_id: event.batch_ordering_id || "",
|
|
@@ -1372,18 +1702,18 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
1372
1702
|
user_id: event.user_id,
|
|
1373
1703
|
user_properties: event.user_properties
|
|
1374
1704
|
};
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
);
|
|
1705
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1706
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1707
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1708
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1380
1709
|
}
|
|
1381
1710
|
/**
|
|
1382
1711
|
* Track an order placed event
|
|
1383
1712
|
* @param event The order placed event
|
|
1384
1713
|
*/
|
|
1385
|
-
trackOrderPlaced(event) {
|
|
1386
|
-
const
|
|
1714
|
+
trackOrderPlaced(event, adapterParams) {
|
|
1715
|
+
const eventName = this.getEventName(adapterParams, "purchase");
|
|
1716
|
+
const baseParams = {
|
|
1387
1717
|
transaction_id: event.order_id,
|
|
1388
1718
|
value: event.total_amount,
|
|
1389
1719
|
currency: event.currency || "USD",
|
|
@@ -1409,14 +1739,18 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
1409
1739
|
user_id: event.user_id,
|
|
1410
1740
|
user_properties: event.user_properties
|
|
1411
1741
|
};
|
|
1412
|
-
|
|
1742
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1743
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1744
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1745
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1413
1746
|
}
|
|
1414
1747
|
/**
|
|
1415
1748
|
* Track a begin checkout event
|
|
1416
1749
|
* @param event The begin checkout event
|
|
1417
1750
|
*/
|
|
1418
|
-
trackBeginCheckout(event) {
|
|
1419
|
-
const
|
|
1751
|
+
trackBeginCheckout(event, adapterParams) {
|
|
1752
|
+
const eventName = this.getEventName(adapterParams, "begin_checkout");
|
|
1753
|
+
const baseParams = {
|
|
1420
1754
|
currency: event.currency || "USD",
|
|
1421
1755
|
value: event.value || 0,
|
|
1422
1756
|
coupon: event.coupon,
|
|
@@ -1446,11 +1780,10 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
1446
1780
|
user_id: event.user_id,
|
|
1447
1781
|
user_properties: event.user_properties
|
|
1448
1782
|
};
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
);
|
|
1783
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1784
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1785
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1786
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1454
1787
|
}
|
|
1455
1788
|
/**
|
|
1456
1789
|
* Convert an event to Google Analytics parameters
|
|
@@ -1458,7 +1791,8 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
1458
1791
|
*/
|
|
1459
1792
|
eventToParams(event) {
|
|
1460
1793
|
const { type, timestamp, ...params } = event;
|
|
1461
|
-
|
|
1794
|
+
const affiliateParams = this.enhanceWithAffiliateParams(params);
|
|
1795
|
+
return this.enhanceWithExperimentParams(affiliateParams);
|
|
1462
1796
|
}
|
|
1463
1797
|
};
|
|
1464
1798
|
|
|
@@ -1480,44 +1814,9 @@ var EventNames = {
|
|
|
1480
1814
|
SEARCH: "Search",
|
|
1481
1815
|
// User events
|
|
1482
1816
|
USER_SIGNED_UP: "User Signed Up",
|
|
1483
|
-
USER_LOGGED_IN: "User Logged In"
|
|
1484
|
-
// MoEngage events
|
|
1485
|
-
ITEM_PURCHASED: "Item Purchased",
|
|
1486
|
-
UPDATE_CART: "Update Cart",
|
|
1487
|
-
CUSTOMER_REGISTERED: "Customer Registered",
|
|
1488
|
-
CUSTOMER_LOGGED_IN: "Customer Logged In",
|
|
1489
|
-
SHOPIFY_CHECKOUT_UPDATED: "Shopify - Checkout Updated",
|
|
1490
|
-
SHOPIFY_ABANDONED_CHECKOUT: "Shopify - Abandoned Checkout",
|
|
1491
|
-
SHOPIFY_ORDER_FULFILLED: "Shopify - Order Fulfilled",
|
|
1492
|
-
SHOPIFY_CHECKOUT_STARTED: "Shopify - Checkout Started",
|
|
1493
|
-
SHOPIFY_ADD_TO_CART: "Shopify - Add To Cart",
|
|
1494
|
-
SHOPIFY_REMOVED_FROM_CART: "Shopify - Removed From Cart",
|
|
1495
|
-
SHOPIFY_UPDATE_CART: "Shopify - Update Cart",
|
|
1496
|
-
SPINFORM_RESULT: "Spinform Result",
|
|
1497
|
-
COUPON_COPIED: "Coupon Copied",
|
|
1498
|
-
STARTED_CHECKOUT_GK: "Started Checkout GK",
|
|
1499
|
-
MOBILE_ADDED_GK: "Mobile Added GK",
|
|
1500
|
-
ADDRESS_SELECTED_GK: "Address Selected GK",
|
|
1501
|
-
ADDRESS_COMPLETED_GK: "Address Completed GK",
|
|
1502
|
-
PAYMENT_METHOD_SELECTED_GK: "Payment Method Selected GK",
|
|
1503
|
-
PAYMENT_COMPLETED_GK: "Payment Completed GK",
|
|
1504
|
-
ORDER_SUCCESS: "Order Success",
|
|
1505
|
-
ORDER_COMPLETED: "Order Completed",
|
|
1506
|
-
PIN_CODE_ADDED_GK: "PIN Code Added GK",
|
|
1507
|
-
ADDRESS_ADDED_GK: "Address Added GK",
|
|
1508
|
-
KP_MP_PHONE_NUMBER_LOGGED_IN: "KP MP Phone Number Logged In",
|
|
1509
|
-
KP_PHONE_NUMBER_LOGGED_IN: "KP Phone Number Logged In",
|
|
1510
|
-
KP_MP_SHOPIFY_LOGGED_IN: "KP MP Shopify Logged In",
|
|
1511
|
-
KP_MP_SUCCESSFULLY_LOGGED_OUT: "KP MP Successfully Logged Out",
|
|
1512
|
-
KP_WHATSAPP_LOGGED_IN: "KP Whatsapp Logged In",
|
|
1513
|
-
KP_MP_TRUECALLER_LOGGED_IN: "KP MP Truecaller Logged In",
|
|
1514
|
-
KP_MP_WHATSAPP_LOGGED_IN: "KP MP Whatsapp Logged In",
|
|
1515
|
-
KP_TRUECALLER_LOGGED_IN: "KP Truecaller Logged In",
|
|
1516
|
-
KP_SHOPIFY_LOGGED_IN: "KP Shopify Logged In",
|
|
1517
|
-
KP_SUCCESSFULLY_LOGGED_OUT: "KP Successfully Logged Out"
|
|
1817
|
+
USER_LOGGED_IN: "User Logged In"
|
|
1518
1818
|
};
|
|
1519
1819
|
var DEFAULT_CURRENCY = "INR";
|
|
1520
|
-
var HARDCODED_HANDLE = "ryze-gums";
|
|
1521
1820
|
|
|
1522
1821
|
// src/adapters/moengage-adapter.ts
|
|
1523
1822
|
var import_web_sdk = __toESM(require("@moengage/web-sdk"));
|
|
@@ -1569,8 +1868,9 @@ var MoengageAdapter = class extends BaseAdapter {
|
|
|
1569
1868
|
/**
|
|
1570
1869
|
* Track an event with MoenGage SDK
|
|
1571
1870
|
* @param event The event to track
|
|
1871
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1572
1872
|
*/
|
|
1573
|
-
async trackEvent(event) {
|
|
1873
|
+
async trackEvent(event, adapterParams) {
|
|
1574
1874
|
if (!this.initialized || typeof window === "undefined" || !this.sdk) {
|
|
1575
1875
|
this.logger.warn(
|
|
1576
1876
|
"Cannot track event, adapter not initialized or SDK not available",
|
|
@@ -1586,106 +1886,172 @@ var MoengageAdapter = class extends BaseAdapter {
|
|
|
1586
1886
|
this.logger.debug("Tracking event", { eventType: event.type });
|
|
1587
1887
|
switch (event.type) {
|
|
1588
1888
|
case "page_view" /* PAGE_VIEW */:
|
|
1589
|
-
this.trackPageView(event);
|
|
1889
|
+
this.trackPageView(event, adapterParams);
|
|
1590
1890
|
break;
|
|
1591
1891
|
case "button_click" /* BUTTON_CLICK */:
|
|
1592
|
-
this.trackButtonClick(event);
|
|
1892
|
+
this.trackButtonClick(event, adapterParams);
|
|
1593
1893
|
break;
|
|
1594
1894
|
case "form_submission" /* FORM_SUBMISSION */:
|
|
1595
|
-
this.trackFormSubmission(event);
|
|
1895
|
+
this.trackFormSubmission(event, adapterParams);
|
|
1596
1896
|
break;
|
|
1597
1897
|
case "product_view" /* PRODUCT_VIEW */:
|
|
1598
|
-
this.trackProductView(event);
|
|
1898
|
+
this.trackProductView(event, adapterParams);
|
|
1599
1899
|
break;
|
|
1600
1900
|
case "add_to_cart" /* ADD_TO_CART */:
|
|
1601
|
-
this.trackAddToCart(event);
|
|
1901
|
+
this.trackAddToCart(event, adapterParams);
|
|
1602
1902
|
break;
|
|
1603
1903
|
case "remove_from_cart" /* REMOVE_FROM_CART */:
|
|
1604
|
-
this.trackRemoveFromCart(event);
|
|
1904
|
+
this.trackRemoveFromCart(event, adapterParams);
|
|
1605
1905
|
break;
|
|
1606
1906
|
case "checkout_started" /* CHECKOUT_STARTED */:
|
|
1607
|
-
this.trackCheckoutStarted(
|
|
1907
|
+
this.trackCheckoutStarted(
|
|
1908
|
+
event,
|
|
1909
|
+
adapterParams
|
|
1910
|
+
);
|
|
1608
1911
|
break;
|
|
1609
1912
|
case "checkout_completed" /* CHECKOUT_COMPLETED */:
|
|
1610
|
-
this.trackCheckoutCompleted(
|
|
1913
|
+
this.trackCheckoutCompleted(
|
|
1914
|
+
event,
|
|
1915
|
+
adapterParams
|
|
1916
|
+
);
|
|
1611
1917
|
break;
|
|
1612
1918
|
case "search" /* SEARCH */:
|
|
1613
|
-
this.trackSearch(event);
|
|
1919
|
+
this.trackSearch(event, adapterParams);
|
|
1614
1920
|
break;
|
|
1615
1921
|
case "user_signup" /* USER_SIGNUP */:
|
|
1616
|
-
this.trackUserSignup(event);
|
|
1922
|
+
this.trackUserSignup(event, adapterParams);
|
|
1617
1923
|
break;
|
|
1618
1924
|
case "user_login" /* USER_LOGIN */:
|
|
1619
|
-
this.trackUserLogin(event);
|
|
1925
|
+
this.trackUserLogin(event, adapterParams);
|
|
1620
1926
|
break;
|
|
1621
1927
|
case "custom" /* CUSTOM */:
|
|
1622
|
-
this.trackCustomEvent(event);
|
|
1928
|
+
this.trackCustomEvent(event, adapterParams);
|
|
1623
1929
|
break;
|
|
1624
1930
|
default:
|
|
1625
|
-
this.
|
|
1931
|
+
const eventName = this.getEventName(adapterParams, event.type);
|
|
1932
|
+
const baseParams = this.eventToParams(event);
|
|
1933
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1934
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1935
|
+
const enhancedParams = this.mergeEventData(
|
|
1936
|
+
experimentParams,
|
|
1937
|
+
adapterParams
|
|
1938
|
+
);
|
|
1939
|
+
this.sdk.track_event(eventName, enhancedParams);
|
|
1626
1940
|
break;
|
|
1627
1941
|
}
|
|
1628
1942
|
}
|
|
1629
1943
|
/**
|
|
1630
1944
|
* Track a page view event
|
|
1631
1945
|
* @param event The page view event
|
|
1946
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1632
1947
|
*/
|
|
1633
|
-
trackPageView(event) {
|
|
1948
|
+
trackPageView(event, adapterParams) {
|
|
1634
1949
|
if (!this.sdk?.track_event) {
|
|
1635
1950
|
this.logger.warn("track_event not available for PageView event");
|
|
1636
1951
|
return;
|
|
1637
1952
|
}
|
|
1638
|
-
const
|
|
1953
|
+
const eventName = this.getEventName(adapterParams, EventNames.PAGE_VIEWED);
|
|
1954
|
+
const baseEventData = {
|
|
1639
1955
|
page_path: event.path,
|
|
1640
1956
|
page_title: event.title,
|
|
1641
1957
|
page_url: window.location.href,
|
|
1642
1958
|
referrer: event.referrer || document.referrer
|
|
1643
1959
|
};
|
|
1644
|
-
this.
|
|
1645
|
-
this.
|
|
1960
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseEventData);
|
|
1961
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1962
|
+
const enhancedEventData = this.mergeEventData(
|
|
1963
|
+
experimentParams,
|
|
1964
|
+
adapterParams
|
|
1965
|
+
);
|
|
1966
|
+
this.sdk.track_event(eventName, enhancedEventData);
|
|
1967
|
+
this.logger.debug("PageView event tracked", {
|
|
1968
|
+
eventName,
|
|
1969
|
+
eventData: enhancedEventData
|
|
1970
|
+
});
|
|
1646
1971
|
}
|
|
1647
1972
|
/**
|
|
1648
1973
|
* Track a button click event
|
|
1649
1974
|
* @param event The button click event
|
|
1975
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1650
1976
|
*/
|
|
1651
|
-
trackButtonClick(event) {
|
|
1652
|
-
this.
|
|
1977
|
+
trackButtonClick(event, adapterParams) {
|
|
1978
|
+
const eventName = this.getEventName(
|
|
1979
|
+
adapterParams,
|
|
1980
|
+
EventNames.BUTTON_CLICKED
|
|
1981
|
+
);
|
|
1982
|
+
const baseEventData = {
|
|
1653
1983
|
button_id: event.buttonId,
|
|
1654
1984
|
button_text: event.buttonText,
|
|
1655
1985
|
location: event.location
|
|
1656
|
-
}
|
|
1986
|
+
};
|
|
1987
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseEventData);
|
|
1988
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1989
|
+
const enhancedEventData = this.mergeEventData(
|
|
1990
|
+
experimentParams,
|
|
1991
|
+
adapterParams
|
|
1992
|
+
);
|
|
1993
|
+
this.sdk?.track_event(eventName, enhancedEventData);
|
|
1657
1994
|
}
|
|
1658
1995
|
/**
|
|
1659
1996
|
* Track a form submission event
|
|
1660
1997
|
* @param event The form submission event
|
|
1998
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1661
1999
|
*/
|
|
1662
|
-
trackFormSubmission(event) {
|
|
1663
|
-
this.
|
|
2000
|
+
trackFormSubmission(event, adapterParams) {
|
|
2001
|
+
const eventName = this.getEventName(
|
|
2002
|
+
adapterParams,
|
|
2003
|
+
EventNames.FORM_SUBMITTED
|
|
2004
|
+
);
|
|
2005
|
+
const baseEventData = {
|
|
1664
2006
|
form_id: event.formId,
|
|
1665
2007
|
form_name: event.formName,
|
|
1666
2008
|
success: event.success
|
|
1667
|
-
}
|
|
2009
|
+
};
|
|
2010
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseEventData);
|
|
2011
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
2012
|
+
const enhancedEventData = this.mergeEventData(
|
|
2013
|
+
experimentParams,
|
|
2014
|
+
adapterParams
|
|
2015
|
+
);
|
|
2016
|
+
this.sdk?.track_event(eventName, enhancedEventData);
|
|
1668
2017
|
}
|
|
1669
2018
|
/**
|
|
1670
2019
|
* Track a product view event
|
|
1671
2020
|
* @param event The product view event
|
|
2021
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1672
2022
|
*/
|
|
1673
|
-
trackProductView(event) {
|
|
1674
|
-
this.
|
|
2023
|
+
trackProductView(event, adapterParams) {
|
|
2024
|
+
const eventName = this.getEventName(
|
|
2025
|
+
adapterParams,
|
|
2026
|
+
EventNames.PRODUCT_VIEWED
|
|
2027
|
+
);
|
|
2028
|
+
const baseEventData = {
|
|
1675
2029
|
product_id: event.productId,
|
|
1676
2030
|
product_name: event.productName,
|
|
1677
2031
|
price: event.price,
|
|
1678
2032
|
currency: event.currency || DEFAULT_CURRENCY,
|
|
1679
2033
|
category: event.category
|
|
1680
|
-
}
|
|
2034
|
+
};
|
|
2035
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseEventData);
|
|
2036
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
2037
|
+
const enhancedEventData = this.mergeEventData(
|
|
2038
|
+
experimentParams,
|
|
2039
|
+
adapterParams
|
|
2040
|
+
);
|
|
2041
|
+
this.sdk?.track_event(eventName, enhancedEventData);
|
|
1681
2042
|
}
|
|
1682
2043
|
/**
|
|
1683
2044
|
* Track an add to cart event
|
|
1684
2045
|
* @param event The add to cart event
|
|
2046
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1685
2047
|
*/
|
|
1686
|
-
trackAddToCart(event) {
|
|
2048
|
+
trackAddToCart(event, adapterParams) {
|
|
1687
2049
|
const quantity = event.quantity ?? 1;
|
|
1688
|
-
this.
|
|
2050
|
+
const eventName = this.getEventName(
|
|
2051
|
+
adapterParams,
|
|
2052
|
+
EventNames.ADDED_TO_CART
|
|
2053
|
+
);
|
|
2054
|
+
const baseEventData = {
|
|
1689
2055
|
product_id: event.productId,
|
|
1690
2056
|
product_name: event.productName,
|
|
1691
2057
|
price: event.price,
|
|
@@ -1693,14 +2059,26 @@ var MoengageAdapter = class extends BaseAdapter {
|
|
|
1693
2059
|
quantity,
|
|
1694
2060
|
variant: event.variant,
|
|
1695
2061
|
total_value: event.price * quantity
|
|
1696
|
-
}
|
|
2062
|
+
};
|
|
2063
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseEventData);
|
|
2064
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
2065
|
+
const enhancedEventData = this.mergeEventData(
|
|
2066
|
+
experimentParams,
|
|
2067
|
+
adapterParams
|
|
2068
|
+
);
|
|
2069
|
+
this.sdk?.track_event(eventName, enhancedEventData);
|
|
1697
2070
|
}
|
|
1698
2071
|
/**
|
|
1699
2072
|
* Track a remove from cart event
|
|
1700
2073
|
* @param event The remove from cart event
|
|
2074
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1701
2075
|
*/
|
|
1702
|
-
trackRemoveFromCart(event) {
|
|
1703
|
-
this.
|
|
2076
|
+
trackRemoveFromCart(event, adapterParams) {
|
|
2077
|
+
const eventName = this.getEventName(
|
|
2078
|
+
adapterParams,
|
|
2079
|
+
EventNames.REMOVED_FROM_CART
|
|
2080
|
+
);
|
|
2081
|
+
const baseEventData = {
|
|
1704
2082
|
product_id: event.productId,
|
|
1705
2083
|
product_name: event.productName,
|
|
1706
2084
|
price: event.price,
|
|
@@ -1708,14 +2086,26 @@ var MoengageAdapter = class extends BaseAdapter {
|
|
|
1708
2086
|
quantity: event.quantity,
|
|
1709
2087
|
variant: event.variant,
|
|
1710
2088
|
total_value: event.price * event.quantity
|
|
1711
|
-
}
|
|
2089
|
+
};
|
|
2090
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseEventData);
|
|
2091
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
2092
|
+
const enhancedEventData = this.mergeEventData(
|
|
2093
|
+
experimentParams,
|
|
2094
|
+
adapterParams
|
|
2095
|
+
);
|
|
2096
|
+
this.sdk?.track_event(eventName, enhancedEventData);
|
|
1712
2097
|
}
|
|
1713
2098
|
/**
|
|
1714
2099
|
* Track a checkout started event
|
|
1715
2100
|
* @param event The checkout started event
|
|
2101
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1716
2102
|
*/
|
|
1717
|
-
trackCheckoutStarted(event) {
|
|
1718
|
-
this.
|
|
2103
|
+
trackCheckoutStarted(event, adapterParams) {
|
|
2104
|
+
const eventName = this.getEventName(
|
|
2105
|
+
adapterParams,
|
|
2106
|
+
EventNames.CHECKOUT_STARTED
|
|
2107
|
+
);
|
|
2108
|
+
const baseEventData = {
|
|
1719
2109
|
cart_value: event.cartValue,
|
|
1720
2110
|
currency: event.currency || DEFAULT_CURRENCY,
|
|
1721
2111
|
item_count: event.itemCount,
|
|
@@ -1726,14 +2116,26 @@ var MoengageAdapter = class extends BaseAdapter {
|
|
|
1726
2116
|
quantity: item.quantity,
|
|
1727
2117
|
variant: item.variant
|
|
1728
2118
|
}))
|
|
1729
|
-
}
|
|
2119
|
+
};
|
|
2120
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseEventData);
|
|
2121
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
2122
|
+
const enhancedEventData = this.mergeEventData(
|
|
2123
|
+
experimentParams,
|
|
2124
|
+
adapterParams
|
|
2125
|
+
);
|
|
2126
|
+
this.sdk?.track_event(eventName, enhancedEventData);
|
|
1730
2127
|
}
|
|
1731
2128
|
/**
|
|
1732
2129
|
* Track a checkout completed event
|
|
1733
2130
|
* @param event The checkout completed event
|
|
2131
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1734
2132
|
*/
|
|
1735
|
-
trackCheckoutCompleted(event) {
|
|
1736
|
-
this.
|
|
2133
|
+
trackCheckoutCompleted(event, adapterParams) {
|
|
2134
|
+
const eventName = this.getEventName(
|
|
2135
|
+
adapterParams,
|
|
2136
|
+
EventNames.PURCHASE_COMPLETED
|
|
2137
|
+
);
|
|
2138
|
+
const baseEventData = {
|
|
1737
2139
|
order_id: event.orderId,
|
|
1738
2140
|
cart_value: event.cartValue,
|
|
1739
2141
|
currency: event.currency || DEFAULT_CURRENCY,
|
|
@@ -1745,28 +2147,56 @@ var MoengageAdapter = class extends BaseAdapter {
|
|
|
1745
2147
|
quantity: item.quantity,
|
|
1746
2148
|
variant: item.variant
|
|
1747
2149
|
}))
|
|
1748
|
-
}
|
|
2150
|
+
};
|
|
2151
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseEventData);
|
|
2152
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
2153
|
+
const enhancedEventData = this.mergeEventData(
|
|
2154
|
+
experimentParams,
|
|
2155
|
+
adapterParams
|
|
2156
|
+
);
|
|
2157
|
+
this.sdk?.track_event(eventName, enhancedEventData);
|
|
1749
2158
|
}
|
|
1750
2159
|
/**
|
|
1751
2160
|
* Track a search event
|
|
1752
2161
|
* @param event The search event
|
|
2162
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1753
2163
|
*/
|
|
1754
|
-
trackSearch(event) {
|
|
1755
|
-
this.
|
|
2164
|
+
trackSearch(event, adapterParams) {
|
|
2165
|
+
const eventName = this.getEventName(adapterParams, EventNames.SEARCH);
|
|
2166
|
+
const baseEventData = {
|
|
1756
2167
|
search_term: event.searchTerm,
|
|
1757
2168
|
results_count: event.resultsCount
|
|
1758
|
-
}
|
|
2169
|
+
};
|
|
2170
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseEventData);
|
|
2171
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
2172
|
+
const enhancedEventData = this.mergeEventData(
|
|
2173
|
+
experimentParams,
|
|
2174
|
+
adapterParams
|
|
2175
|
+
);
|
|
2176
|
+
this.sdk?.track_event(eventName, enhancedEventData);
|
|
1759
2177
|
}
|
|
1760
2178
|
/**
|
|
1761
2179
|
* Track a user signup event
|
|
1762
2180
|
* @param event The user signup event
|
|
2181
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1763
2182
|
*/
|
|
1764
|
-
trackUserSignup(event) {
|
|
1765
|
-
this.
|
|
2183
|
+
trackUserSignup(event, adapterParams) {
|
|
2184
|
+
const eventName = this.getEventName(
|
|
2185
|
+
adapterParams,
|
|
2186
|
+
EventNames.USER_SIGNED_UP
|
|
2187
|
+
);
|
|
2188
|
+
const baseEventData = {
|
|
1766
2189
|
user_id: event.userId,
|
|
1767
2190
|
method: event.method,
|
|
1768
2191
|
success: event.success
|
|
1769
|
-
}
|
|
2192
|
+
};
|
|
2193
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseEventData);
|
|
2194
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
2195
|
+
const enhancedEventData = this.mergeEventData(
|
|
2196
|
+
experimentParams,
|
|
2197
|
+
adapterParams
|
|
2198
|
+
);
|
|
2199
|
+
this.sdk?.track_event(eventName, enhancedEventData);
|
|
1770
2200
|
if (event.userId && this.getConfig("enableUserIdentification", true)) {
|
|
1771
2201
|
this.sdk?.add_unique_user_id(event.userId);
|
|
1772
2202
|
}
|
|
@@ -1774,13 +2204,25 @@ var MoengageAdapter = class extends BaseAdapter {
|
|
|
1774
2204
|
/**
|
|
1775
2205
|
* Track a user login event
|
|
1776
2206
|
* @param event The user login event
|
|
2207
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1777
2208
|
*/
|
|
1778
|
-
trackUserLogin(event) {
|
|
1779
|
-
this.
|
|
2209
|
+
trackUserLogin(event, adapterParams) {
|
|
2210
|
+
const eventName = this.getEventName(
|
|
2211
|
+
adapterParams,
|
|
2212
|
+
EventNames.USER_LOGGED_IN
|
|
2213
|
+
);
|
|
2214
|
+
const baseEventData = {
|
|
1780
2215
|
user_id: event.userId,
|
|
1781
2216
|
method: event.method,
|
|
1782
2217
|
success: event.success
|
|
1783
|
-
}
|
|
2218
|
+
};
|
|
2219
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseEventData);
|
|
2220
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
2221
|
+
const enhancedEventData = this.mergeEventData(
|
|
2222
|
+
experimentParams,
|
|
2223
|
+
adapterParams
|
|
2224
|
+
);
|
|
2225
|
+
this.sdk?.track_event(eventName, enhancedEventData);
|
|
1784
2226
|
if (event.userId && this.getConfig("enableUserIdentification", true)) {
|
|
1785
2227
|
this.sdk?.add_unique_user_id(event.userId);
|
|
1786
2228
|
}
|
|
@@ -1788,9 +2230,18 @@ var MoengageAdapter = class extends BaseAdapter {
|
|
|
1788
2230
|
/**
|
|
1789
2231
|
* Track a custom event
|
|
1790
2232
|
* @param event The custom event
|
|
2233
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1791
2234
|
*/
|
|
1792
|
-
trackCustomEvent(event) {
|
|
1793
|
-
this.
|
|
2235
|
+
trackCustomEvent(event, adapterParams) {
|
|
2236
|
+
const eventName = this.getEventName(adapterParams, event.name);
|
|
2237
|
+
const baseEventData = event.properties || {};
|
|
2238
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseEventData);
|
|
2239
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
2240
|
+
const enhancedEventData = this.mergeEventData(
|
|
2241
|
+
experimentParams,
|
|
2242
|
+
adapterParams
|
|
2243
|
+
);
|
|
2244
|
+
this.sdk?.track_event(eventName, enhancedEventData);
|
|
1794
2245
|
}
|
|
1795
2246
|
/**
|
|
1796
2247
|
* Convert an event to MoenGage parameters
|
|
@@ -1877,8 +2328,9 @@ var PostHogAdapter = class extends BaseAdapter {
|
|
|
1877
2328
|
/**
|
|
1878
2329
|
* Track an event with PostHog
|
|
1879
2330
|
* @param event The event to track
|
|
2331
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1880
2332
|
*/
|
|
1881
|
-
async trackEvent(event) {
|
|
2333
|
+
async trackEvent(event, adapterParams) {
|
|
1882
2334
|
if (!this.initialized || typeof window === "undefined" || !window.posthog) {
|
|
1883
2335
|
this.logger.warn(
|
|
1884
2336
|
"Cannot track event, adapter not initialized or posthog not available",
|
|
@@ -1894,74 +2346,84 @@ var PostHogAdapter = class extends BaseAdapter {
|
|
|
1894
2346
|
this.logger.debug("Tracking event", { eventType: event.type });
|
|
1895
2347
|
switch (event.type) {
|
|
1896
2348
|
case "page_view" /* PAGE_VIEW */:
|
|
1897
|
-
this.trackPageView(event);
|
|
2349
|
+
this.trackPageView(event, adapterParams);
|
|
1898
2350
|
break;
|
|
1899
2351
|
case "product_view" /* PRODUCT_VIEW */:
|
|
1900
|
-
this.trackProductView(event);
|
|
2352
|
+
this.trackProductView(event, adapterParams);
|
|
1901
2353
|
break;
|
|
1902
2354
|
case "add_to_cart" /* ADD_TO_CART */:
|
|
1903
|
-
this.trackAddToCart(event);
|
|
2355
|
+
this.trackAddToCart(event, adapterParams);
|
|
1904
2356
|
break;
|
|
1905
2357
|
case "checkout_started" /* CHECKOUT_STARTED */:
|
|
1906
|
-
this.trackCheckoutStarted(event);
|
|
2358
|
+
this.trackCheckoutStarted(event, adapterParams);
|
|
1907
2359
|
break;
|
|
1908
2360
|
case "checkout_completed" /* CHECKOUT_COMPLETED */:
|
|
1909
|
-
this.trackCheckoutCompleted(event);
|
|
2361
|
+
this.trackCheckoutCompleted(event, adapterParams);
|
|
1910
2362
|
break;
|
|
1911
2363
|
case "add_payment_info" /* ADD_PAYMENT_INFO */:
|
|
1912
|
-
this.trackAddPaymentInfo(event);
|
|
2364
|
+
this.trackAddPaymentInfo(event, adapterParams);
|
|
1913
2365
|
break;
|
|
1914
2366
|
case "search" /* SEARCH */:
|
|
1915
|
-
this.trackSearch(event);
|
|
2367
|
+
this.trackSearch(event, adapterParams);
|
|
1916
2368
|
break;
|
|
1917
2369
|
default:
|
|
1918
|
-
const
|
|
1919
|
-
|
|
1920
|
-
|
|
1921
|
-
|
|
2370
|
+
const eventName = this.getEventName(adapterParams, event.type);
|
|
2371
|
+
const baseParams = this.eventToParams(event);
|
|
2372
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
2373
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
2374
|
+
const enhancedParams = this.mergeEventData(
|
|
2375
|
+
experimentParams,
|
|
2376
|
+
adapterParams
|
|
1922
2377
|
);
|
|
2378
|
+
window.posthog?.capture(eventName, enhancedParams);
|
|
1923
2379
|
break;
|
|
1924
2380
|
}
|
|
1925
2381
|
}
|
|
1926
2382
|
/**
|
|
1927
2383
|
* Track a page view event
|
|
1928
2384
|
* @param event The page view event
|
|
2385
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1929
2386
|
*/
|
|
1930
|
-
trackPageView(event) {
|
|
1931
|
-
const
|
|
2387
|
+
trackPageView(event, adapterParams) {
|
|
2388
|
+
const eventName = this.getEventName(adapterParams, "$pageview");
|
|
2389
|
+
const baseParams = {
|
|
1932
2390
|
path: event.path,
|
|
1933
2391
|
title: event.title,
|
|
1934
2392
|
referrer: event.referrer
|
|
1935
2393
|
};
|
|
1936
|
-
|
|
1937
|
-
|
|
1938
|
-
|
|
1939
|
-
);
|
|
2394
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
2395
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
2396
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
2397
|
+
window.posthog?.capture(eventName, enhancedParams);
|
|
1940
2398
|
}
|
|
1941
2399
|
/**
|
|
1942
2400
|
* Track a product view event
|
|
1943
2401
|
* @param event The product view event
|
|
2402
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1944
2403
|
*/
|
|
1945
|
-
trackProductView(event) {
|
|
1946
|
-
const
|
|
2404
|
+
trackProductView(event, adapterParams) {
|
|
2405
|
+
const eventName = this.getEventName(adapterParams, "product_viewed");
|
|
2406
|
+
const baseParams = {
|
|
1947
2407
|
product_id: event.productId,
|
|
1948
2408
|
product_name: event.productName,
|
|
1949
2409
|
category: event.category,
|
|
1950
2410
|
price: event.price,
|
|
1951
2411
|
currency: event.currency || "INR"
|
|
1952
2412
|
};
|
|
1953
|
-
|
|
1954
|
-
|
|
1955
|
-
|
|
1956
|
-
);
|
|
2413
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
2414
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
2415
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
2416
|
+
window.posthog?.capture(eventName, enhancedParams);
|
|
1957
2417
|
}
|
|
1958
2418
|
/**
|
|
1959
2419
|
* Track an add to cart event
|
|
1960
2420
|
* @param event The add to cart event
|
|
2421
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1961
2422
|
*/
|
|
1962
|
-
trackAddToCart(event) {
|
|
2423
|
+
trackAddToCart(event, adapterParams) {
|
|
1963
2424
|
this.logger.debug("Handling ADD_TO_CART event", { event });
|
|
1964
|
-
const
|
|
2425
|
+
const eventName = this.getEventName(adapterParams, "add_to_cart");
|
|
2426
|
+
const baseParams = {
|
|
1965
2427
|
product_id: event.productId,
|
|
1966
2428
|
product_name: event.productName,
|
|
1967
2429
|
price: event.price,
|
|
@@ -1969,23 +2431,28 @@ var PostHogAdapter = class extends BaseAdapter {
|
|
|
1969
2431
|
quantity: event.quantity,
|
|
1970
2432
|
variant: event.variant
|
|
1971
2433
|
};
|
|
1972
|
-
this.
|
|
2434
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
2435
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
2436
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
2437
|
+
this.logger.debug("Sending to PostHog with params", {
|
|
2438
|
+
eventName,
|
|
2439
|
+
params: enhancedParams
|
|
2440
|
+
});
|
|
1973
2441
|
if (!window.posthog) {
|
|
1974
2442
|
this.logger.error("window.posthog is not available");
|
|
1975
2443
|
return;
|
|
1976
2444
|
}
|
|
1977
|
-
window.posthog.capture(
|
|
1978
|
-
"add_to_cart",
|
|
1979
|
-
this.enhanceWithAffiliateParams(params)
|
|
1980
|
-
);
|
|
2445
|
+
window.posthog.capture(eventName, enhancedParams);
|
|
1981
2446
|
this.logger.debug("Event sent to PostHog successfully");
|
|
1982
2447
|
}
|
|
1983
2448
|
/**
|
|
1984
2449
|
* Track a checkout started event
|
|
1985
2450
|
* @param event The checkout started event
|
|
2451
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1986
2452
|
*/
|
|
1987
|
-
trackCheckoutStarted(event) {
|
|
1988
|
-
const
|
|
2453
|
+
trackCheckoutStarted(event, adapterParams) {
|
|
2454
|
+
const eventName = this.getEventName(adapterParams, "checkout_started");
|
|
2455
|
+
const baseParams = {
|
|
1989
2456
|
cart_value: event.cartValue,
|
|
1990
2457
|
currency: event.currency || "INR",
|
|
1991
2458
|
item_count: event.itemCount,
|
|
@@ -1997,17 +2464,19 @@ var PostHogAdapter = class extends BaseAdapter {
|
|
|
1997
2464
|
variant: item.variant
|
|
1998
2465
|
}))
|
|
1999
2466
|
};
|
|
2000
|
-
|
|
2001
|
-
|
|
2002
|
-
|
|
2003
|
-
);
|
|
2467
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
2468
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
2469
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
2470
|
+
window.posthog?.capture(eventName, enhancedParams);
|
|
2004
2471
|
}
|
|
2005
2472
|
/**
|
|
2006
2473
|
* Track a checkout completed event
|
|
2007
2474
|
* @param event The checkout completed event
|
|
2475
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
2008
2476
|
*/
|
|
2009
|
-
trackCheckoutCompleted(event) {
|
|
2010
|
-
const
|
|
2477
|
+
trackCheckoutCompleted(event, adapterParams) {
|
|
2478
|
+
const eventName = this.getEventName(adapterParams, "purchase");
|
|
2479
|
+
const baseParams = {
|
|
2011
2480
|
order_id: event.orderId,
|
|
2012
2481
|
cart_value: event.cartValue,
|
|
2013
2482
|
currency: event.currency || "INR",
|
|
@@ -2020,29 +2489,36 @@ var PostHogAdapter = class extends BaseAdapter {
|
|
|
2020
2489
|
variant: item.variant
|
|
2021
2490
|
}))
|
|
2022
2491
|
};
|
|
2023
|
-
|
|
2024
|
-
|
|
2025
|
-
|
|
2026
|
-
);
|
|
2492
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
2493
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
2494
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
2495
|
+
window.posthog?.capture(eventName, enhancedParams);
|
|
2027
2496
|
}
|
|
2028
2497
|
/**
|
|
2029
2498
|
* Track a search event
|
|
2030
2499
|
* @param event The search event
|
|
2500
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
2031
2501
|
*/
|
|
2032
|
-
trackSearch(event) {
|
|
2033
|
-
const
|
|
2502
|
+
trackSearch(event, adapterParams) {
|
|
2503
|
+
const eventName = this.getEventName(adapterParams, "search");
|
|
2504
|
+
const baseParams = {
|
|
2034
2505
|
search_term: event.searchTerm,
|
|
2035
2506
|
results_count: event.resultsCount,
|
|
2036
2507
|
content_ids: event.content_ids
|
|
2037
2508
|
};
|
|
2038
|
-
|
|
2509
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
2510
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
2511
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
2512
|
+
window.posthog?.capture(eventName, enhancedParams);
|
|
2039
2513
|
}
|
|
2040
2514
|
/**
|
|
2041
2515
|
* Track an add payment info event
|
|
2042
2516
|
* @param event The add payment info event
|
|
2517
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
2043
2518
|
*/
|
|
2044
|
-
trackAddPaymentInfo(event) {
|
|
2045
|
-
const
|
|
2519
|
+
trackAddPaymentInfo(event, adapterParams) {
|
|
2520
|
+
const eventName = this.getEventName(adapterParams, "add_payment_info");
|
|
2521
|
+
const baseParams = {
|
|
2046
2522
|
cart_value: event.cartValue,
|
|
2047
2523
|
currency: event.currency || "INR",
|
|
2048
2524
|
payment_type: event.paymentType,
|
|
@@ -2055,10 +2531,10 @@ var PostHogAdapter = class extends BaseAdapter {
|
|
|
2055
2531
|
variant: item.variant
|
|
2056
2532
|
}))
|
|
2057
2533
|
};
|
|
2058
|
-
|
|
2059
|
-
|
|
2060
|
-
|
|
2061
|
-
);
|
|
2534
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
2535
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
2536
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
2537
|
+
window.posthog?.capture(eventName, enhancedParams);
|
|
2062
2538
|
}
|
|
2063
2539
|
/**
|
|
2064
2540
|
* Convert an event to PostHog parameters
|
|
@@ -2121,7 +2597,6 @@ async function initTracking(config) {
|
|
|
2121
2597
|
DEFAULT_CURRENCY,
|
|
2122
2598
|
EventNames,
|
|
2123
2599
|
EventType,
|
|
2124
|
-
HARDCODED_HANDLE,
|
|
2125
2600
|
eventPublisher,
|
|
2126
2601
|
eventSubscriber,
|
|
2127
2602
|
initTracking,
|