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/adapters/index.js
CHANGED
|
@@ -43,7 +43,14 @@ __export(adapters_exports, {
|
|
|
43
43
|
module.exports = __toCommonJS(adapters_exports);
|
|
44
44
|
|
|
45
45
|
// src/logger/index.ts
|
|
46
|
-
var
|
|
46
|
+
var LOG_LEVELS = {
|
|
47
|
+
trace: 10,
|
|
48
|
+
debug: 20,
|
|
49
|
+
info: 30,
|
|
50
|
+
warn: 40,
|
|
51
|
+
error: 50,
|
|
52
|
+
fatal: 60
|
|
53
|
+
};
|
|
47
54
|
var NoOpLogger = class _NoOpLogger {
|
|
48
55
|
trace() {
|
|
49
56
|
}
|
|
@@ -61,92 +68,109 @@ var NoOpLogger = class _NoOpLogger {
|
|
|
61
68
|
return new _NoOpLogger();
|
|
62
69
|
}
|
|
63
70
|
};
|
|
64
|
-
var
|
|
65
|
-
constructor(
|
|
66
|
-
this.
|
|
71
|
+
var UniversalLogger = class _UniversalLogger {
|
|
72
|
+
constructor(config, bindings = {}) {
|
|
73
|
+
this.config = config;
|
|
74
|
+
this.bindings = bindings;
|
|
75
|
+
}
|
|
76
|
+
shouldLog(level) {
|
|
77
|
+
return LOG_LEVELS[level] >= LOG_LEVELS[this.config.level];
|
|
78
|
+
}
|
|
79
|
+
formatMessage(level, message, args, error) {
|
|
80
|
+
const timestamp = (/* @__PURE__ */ new Date()).toISOString();
|
|
81
|
+
const name = this.config.name;
|
|
82
|
+
let logMessage = this.config.prettyPrint ? `[${timestamp}] ${level.toUpperCase()} [${name}]: ${message}` : JSON.stringify({
|
|
83
|
+
timestamp,
|
|
84
|
+
level,
|
|
85
|
+
name,
|
|
86
|
+
message,
|
|
87
|
+
...this.bindings,
|
|
88
|
+
...args.length > 0 && { args },
|
|
89
|
+
...error && {
|
|
90
|
+
error: { message: error.message, stack: error.stack }
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
if (this.config.prettyPrint && args.length > 0) {
|
|
94
|
+
logMessage += ` ${args.map(
|
|
95
|
+
(arg) => typeof arg === "object" ? JSON.stringify(arg) : String(arg)
|
|
96
|
+
).join(" ")}`;
|
|
97
|
+
}
|
|
98
|
+
if (this.config.prettyPrint && error) {
|
|
99
|
+
logMessage += ` Error: ${error.message}`;
|
|
100
|
+
if (error.stack) {
|
|
101
|
+
logMessage += `
|
|
102
|
+
${error.stack}`;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return this.redactSensitiveData(logMessage);
|
|
106
|
+
}
|
|
107
|
+
redactSensitiveData(message) {
|
|
108
|
+
let redactedMessage = message;
|
|
109
|
+
for (const field of this.config.redact) {
|
|
110
|
+
const regex = new RegExp(`"${field}"\\s*:\\s*"[^"]*"`, "gi");
|
|
111
|
+
redactedMessage = redactedMessage.replace(
|
|
112
|
+
regex,
|
|
113
|
+
`"${field}":"[REDACTED]"`
|
|
114
|
+
);
|
|
115
|
+
}
|
|
116
|
+
return redactedMessage;
|
|
117
|
+
}
|
|
118
|
+
log(level, message, args, error) {
|
|
119
|
+
if (!this.shouldLog(level)) return;
|
|
120
|
+
const formattedMessage = this.formatMessage(level, message, args, error);
|
|
121
|
+
switch (level) {
|
|
122
|
+
case "trace":
|
|
123
|
+
console.trace(formattedMessage);
|
|
124
|
+
break;
|
|
125
|
+
case "debug":
|
|
126
|
+
console.debug(formattedMessage);
|
|
127
|
+
break;
|
|
128
|
+
case "info":
|
|
129
|
+
console.info(formattedMessage);
|
|
130
|
+
break;
|
|
131
|
+
case "warn":
|
|
132
|
+
console.warn(formattedMessage);
|
|
133
|
+
break;
|
|
134
|
+
case "error":
|
|
135
|
+
case "fatal":
|
|
136
|
+
console.error(formattedMessage);
|
|
137
|
+
break;
|
|
138
|
+
}
|
|
67
139
|
}
|
|
68
140
|
trace(message, ...args) {
|
|
69
|
-
this.
|
|
141
|
+
this.log("trace", message, args);
|
|
70
142
|
}
|
|
71
143
|
debug(message, ...args) {
|
|
72
|
-
this.
|
|
144
|
+
this.log("debug", message, args);
|
|
73
145
|
}
|
|
74
146
|
info(message, ...args) {
|
|
75
|
-
this.
|
|
147
|
+
this.log("info", message, args);
|
|
76
148
|
}
|
|
77
149
|
warn(message, ...args) {
|
|
78
|
-
this.
|
|
150
|
+
this.log("warn", message, args);
|
|
79
151
|
}
|
|
80
152
|
error(message, error, ...args) {
|
|
81
|
-
this.
|
|
153
|
+
this.log("error", message, args, error);
|
|
82
154
|
}
|
|
83
155
|
fatal(message, error, ...args) {
|
|
84
|
-
this.
|
|
156
|
+
this.log("fatal", message, args, error);
|
|
85
157
|
}
|
|
86
158
|
child(bindings) {
|
|
87
|
-
return new
|
|
159
|
+
return new _UniversalLogger(this.config, { ...this.bindings, ...bindings });
|
|
88
160
|
}
|
|
89
161
|
};
|
|
90
162
|
function createLogger(config = {}) {
|
|
91
|
-
const {
|
|
92
|
-
level
|
|
93
|
-
enabled
|
|
94
|
-
name
|
|
95
|
-
prettyPrint
|
|
96
|
-
redact
|
|
97
|
-
} = config;
|
|
98
|
-
if (!enabled) {
|
|
99
|
-
return new NoOpLogger();
|
|
100
|
-
}
|
|
101
|
-
const pinoConfig = {
|
|
102
|
-
name,
|
|
103
|
-
level,
|
|
104
|
-
redact,
|
|
105
|
-
browser: {
|
|
106
|
-
asObject: true,
|
|
107
|
-
serialize: true,
|
|
108
|
-
write: {
|
|
109
|
-
trace: (o) => console.trace(formatBrowserLog(o)),
|
|
110
|
-
debug: (o) => console.debug(formatBrowserLog(o)),
|
|
111
|
-
info: (o) => console.info(formatBrowserLog(o)),
|
|
112
|
-
warn: (o) => console.warn(formatBrowserLog(o)),
|
|
113
|
-
error: (o) => console.error(formatBrowserLog(o)),
|
|
114
|
-
fatal: (o) => console.error(formatBrowserLog(o))
|
|
115
|
-
}
|
|
116
|
-
}
|
|
163
|
+
const fullConfig = {
|
|
164
|
+
level: config.level || "info",
|
|
165
|
+
enabled: config.enabled !== false,
|
|
166
|
+
name: config.name || "@shopkit/analytics",
|
|
167
|
+
prettyPrint: config.prettyPrint || false,
|
|
168
|
+
redact: config.redact || []
|
|
117
169
|
};
|
|
118
|
-
if (
|
|
119
|
-
|
|
120
|
-
target: "pino-pretty",
|
|
121
|
-
options: {
|
|
122
|
-
colorize: true,
|
|
123
|
-
translateTime: "HH:MM:ss Z",
|
|
124
|
-
ignore: "pid,hostname"
|
|
125
|
-
}
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
const pinoLogger = (0, import_pino.default)(pinoConfig);
|
|
129
|
-
return new PinoLogger(pinoLogger);
|
|
130
|
-
}
|
|
131
|
-
function formatBrowserLog(logObj) {
|
|
132
|
-
const { level, time, msg, name, args, error, ...rest } = logObj;
|
|
133
|
-
let message = `[${name}] ${msg}`;
|
|
134
|
-
if (args && args.length > 0) {
|
|
135
|
-
message += ` ${args.map(
|
|
136
|
-
(arg) => typeof arg === "object" ? JSON.stringify(arg) : String(arg)
|
|
137
|
-
).join(" ")}`;
|
|
138
|
-
}
|
|
139
|
-
if (error) {
|
|
140
|
-
message += ` Error: ${error.message}`;
|
|
141
|
-
if (error.stack) {
|
|
142
|
-
message += `
|
|
143
|
-
${error.stack}`;
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
if (Object.keys(rest).length > 0) {
|
|
147
|
-
message += ` ${JSON.stringify(rest)}`;
|
|
170
|
+
if (!fullConfig.enabled) {
|
|
171
|
+
return new NoOpLogger();
|
|
148
172
|
}
|
|
149
|
-
return
|
|
173
|
+
return new UniversalLogger(fullConfig);
|
|
150
174
|
}
|
|
151
175
|
var logger = createLogger({
|
|
152
176
|
enabled: true,
|
|
@@ -158,6 +182,38 @@ function createAdapterLogger(adapterName, config = {}) {
|
|
|
158
182
|
return baseLogger.child({ adapter: adapterName });
|
|
159
183
|
}
|
|
160
184
|
|
|
185
|
+
// src/experiment/constants.ts
|
|
186
|
+
var PRIMA_EXPERIMENT_COOKIES = {
|
|
187
|
+
HOME: "_prima_pr_ab_home",
|
|
188
|
+
COLLECTION: "_prima_pr_ab_collection",
|
|
189
|
+
PRODUCT: "_prima_pr_ab_product"
|
|
190
|
+
};
|
|
191
|
+
var PRIMA_EXPERIMENT_COOKIE_NAMES = Object.values(
|
|
192
|
+
PRIMA_EXPERIMENT_COOKIES
|
|
193
|
+
);
|
|
194
|
+
|
|
195
|
+
// src/experiment/experiment-tracker.ts
|
|
196
|
+
function getCookie(name) {
|
|
197
|
+
if (typeof document === "undefined") return null;
|
|
198
|
+
const value = `; ${document.cookie}`;
|
|
199
|
+
const parts = value.split(`; ${name}=`);
|
|
200
|
+
if (parts.length === 2) {
|
|
201
|
+
return parts.pop()?.split(";").shift() || null;
|
|
202
|
+
}
|
|
203
|
+
return null;
|
|
204
|
+
}
|
|
205
|
+
function getExperimentParams() {
|
|
206
|
+
return {
|
|
207
|
+
[PRIMA_EXPERIMENT_COOKIES.HOME]: getCookie(PRIMA_EXPERIMENT_COOKIES.HOME),
|
|
208
|
+
[PRIMA_EXPERIMENT_COOKIES.COLLECTION]: getCookie(
|
|
209
|
+
PRIMA_EXPERIMENT_COOKIES.COLLECTION
|
|
210
|
+
),
|
|
211
|
+
[PRIMA_EXPERIMENT_COOKIES.PRODUCT]: getCookie(
|
|
212
|
+
PRIMA_EXPERIMENT_COOKIES.PRODUCT
|
|
213
|
+
)
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
|
|
161
217
|
// src/adapters/base-adapter.ts
|
|
162
218
|
var BaseAdapter = class {
|
|
163
219
|
/**
|
|
@@ -195,6 +251,38 @@ var BaseAdapter = class {
|
|
|
195
251
|
isEnabled() {
|
|
196
252
|
return this.initialized;
|
|
197
253
|
}
|
|
254
|
+
/**
|
|
255
|
+
* Extract adapter-specific parameters for this adapter
|
|
256
|
+
* @param params The adapter parameters object
|
|
257
|
+
* @returns Adapter-specific parameters or empty object
|
|
258
|
+
*/
|
|
259
|
+
getAdapterParams(params) {
|
|
260
|
+
return params?.[this.name] || {};
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Get custom event name or fall back to default
|
|
264
|
+
* @param params The adapter parameters object
|
|
265
|
+
* @param defaultName The default event name to use
|
|
266
|
+
* @returns Custom event name or default
|
|
267
|
+
*/
|
|
268
|
+
getEventName(params, defaultName) {
|
|
269
|
+
const adapterParams = this.getAdapterParams(params);
|
|
270
|
+
return adapterParams.event_name || defaultName;
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Merge standard event data with adapter-specific parameters
|
|
274
|
+
* @param params The adapter parameters object
|
|
275
|
+
* @param standardData The standard event data
|
|
276
|
+
* @returns Merged data with adapter-specific overrides
|
|
277
|
+
*/
|
|
278
|
+
mergeEventData(standardData, params) {
|
|
279
|
+
const adapterParams = this.getAdapterParams(params);
|
|
280
|
+
const { event_name, ...customParams } = adapterParams;
|
|
281
|
+
return {
|
|
282
|
+
...standardData,
|
|
283
|
+
...customParams
|
|
284
|
+
};
|
|
285
|
+
}
|
|
198
286
|
/**
|
|
199
287
|
* Get a configuration value
|
|
200
288
|
* @param key The configuration key
|
|
@@ -211,6 +299,21 @@ var BaseAdapter = class {
|
|
|
211
299
|
getAffiliateParams() {
|
|
212
300
|
return null;
|
|
213
301
|
}
|
|
302
|
+
/**
|
|
303
|
+
* Get experiment parameters from cookies
|
|
304
|
+
* @returns Experiment parameters
|
|
305
|
+
*/
|
|
306
|
+
getExperimentParams() {
|
|
307
|
+
try {
|
|
308
|
+
return getExperimentParams();
|
|
309
|
+
} catch (error) {
|
|
310
|
+
return {
|
|
311
|
+
_prima_pr_ab_home: null,
|
|
312
|
+
_prima_pr_ab_collection: null,
|
|
313
|
+
_prima_pr_ab_product: null
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
}
|
|
214
317
|
/**
|
|
215
318
|
* Enhance event parameters with affiliate data
|
|
216
319
|
* @param params The original parameters
|
|
@@ -225,8 +328,71 @@ var BaseAdapter = class {
|
|
|
225
328
|
...affiliateParams
|
|
226
329
|
};
|
|
227
330
|
}
|
|
331
|
+
/**
|
|
332
|
+
* Enhance event parameters with experiment data
|
|
333
|
+
* @param params The original parameters
|
|
334
|
+
* @returns Parameters enhanced with experiment data
|
|
335
|
+
*/
|
|
336
|
+
enhanceWithExperimentParams(params) {
|
|
337
|
+
const experimentParams = this.getExperimentParams();
|
|
338
|
+
return {
|
|
339
|
+
...params,
|
|
340
|
+
experiment: experimentParams
|
|
341
|
+
};
|
|
342
|
+
}
|
|
228
343
|
};
|
|
229
344
|
|
|
345
|
+
// src/utils/event-id.ts
|
|
346
|
+
function generateEventId(eventType) {
|
|
347
|
+
const timestamp = Date.now();
|
|
348
|
+
const randomString = Math.random().toString(36).substring(2, 8);
|
|
349
|
+
return `${timestamp}_${randomString}_${eventType}`;
|
|
350
|
+
}
|
|
351
|
+
function getBrowserInfo() {
|
|
352
|
+
if (typeof window === "undefined") {
|
|
353
|
+
return {};
|
|
354
|
+
}
|
|
355
|
+
const userAgent = navigator.userAgent;
|
|
356
|
+
const fbc = getFacebookClickId();
|
|
357
|
+
const fbp = getFacebookBrowserId();
|
|
358
|
+
return {
|
|
359
|
+
clientUserAgent: userAgent,
|
|
360
|
+
fbc,
|
|
361
|
+
fbp
|
|
362
|
+
};
|
|
363
|
+
}
|
|
364
|
+
function getFacebookClickId() {
|
|
365
|
+
if (typeof window === "undefined") {
|
|
366
|
+
return void 0;
|
|
367
|
+
}
|
|
368
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
369
|
+
const fbclid = urlParams.get("fbclid");
|
|
370
|
+
if (fbclid) {
|
|
371
|
+
return `fb.1.${Date.now()}.${fbclid}`;
|
|
372
|
+
}
|
|
373
|
+
const cookies = document.cookie.split(";");
|
|
374
|
+
for (const cookie of cookies) {
|
|
375
|
+
const [name, value] = cookie.trim().split("=");
|
|
376
|
+
if (name === "_fbc") {
|
|
377
|
+
return value;
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
return void 0;
|
|
381
|
+
}
|
|
382
|
+
function getFacebookBrowserId() {
|
|
383
|
+
if (typeof window === "undefined") {
|
|
384
|
+
return void 0;
|
|
385
|
+
}
|
|
386
|
+
const cookies = document.cookie.split(";");
|
|
387
|
+
for (const cookie of cookies) {
|
|
388
|
+
const [name, value] = cookie.trim().split("=");
|
|
389
|
+
if (name === "_fbp") {
|
|
390
|
+
return value;
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
return void 0;
|
|
394
|
+
}
|
|
395
|
+
|
|
230
396
|
// src/adapters/pixel-adapter.ts
|
|
231
397
|
var PixelAdapter = class extends BaseAdapter {
|
|
232
398
|
constructor(config) {
|
|
@@ -252,18 +418,34 @@ var PixelAdapter = class extends BaseAdapter {
|
|
|
252
418
|
);
|
|
253
419
|
return;
|
|
254
420
|
}
|
|
255
|
-
const pixelId = this.getConfig("pixelId");
|
|
256
421
|
this.logger.info("Successfully initialized", { pixelId: "***" });
|
|
257
422
|
this.initialized = true;
|
|
258
423
|
}
|
|
259
424
|
/**
|
|
260
425
|
* Track an event with Facebook Pixel
|
|
261
426
|
* @param event The event to track
|
|
427
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
262
428
|
*/
|
|
263
|
-
async trackEvent(event) {
|
|
429
|
+
async trackEvent(event, adapterParams) {
|
|
430
|
+
if (!event.eventId) {
|
|
431
|
+
event.eventId = generateEventId(event.type);
|
|
432
|
+
}
|
|
433
|
+
this.logger.debug("Tracking event", {
|
|
434
|
+
eventType: event.type,
|
|
435
|
+
eventId: event.eventId
|
|
436
|
+
});
|
|
437
|
+
await this.trackClientSide(event, adapterParams);
|
|
438
|
+
if (this.getConfig("enableCAPI", true)) {
|
|
439
|
+
await this.trackServerSide(event);
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
/**
|
|
443
|
+
* Track event on client-side (browser pixel)
|
|
444
|
+
*/
|
|
445
|
+
async trackClientSide(event, adapterParams) {
|
|
264
446
|
if (!this.initialized || typeof window === "undefined" || !window.fbq) {
|
|
265
447
|
this.logger.warn(
|
|
266
|
-
"Cannot track event, adapter not initialized or fbq not available",
|
|
448
|
+
"Cannot track client-side event, adapter not initialized or fbq not available",
|
|
267
449
|
{
|
|
268
450
|
eventType: event.type,
|
|
269
451
|
initialized: this.initialized,
|
|
@@ -273,55 +455,96 @@ var PixelAdapter = class extends BaseAdapter {
|
|
|
273
455
|
);
|
|
274
456
|
return;
|
|
275
457
|
}
|
|
276
|
-
this.logger.debug("Tracking event", { eventType: event.type });
|
|
277
458
|
switch (event.type) {
|
|
278
459
|
case "page_view" /* PAGE_VIEW */:
|
|
279
|
-
this.trackPageView(event);
|
|
460
|
+
this.trackPageView(event, adapterParams);
|
|
280
461
|
break;
|
|
281
462
|
case "view_content" /* VIEW_CONTENT */:
|
|
282
|
-
this.trackViewContent(event);
|
|
463
|
+
this.trackViewContent(event, adapterParams);
|
|
283
464
|
break;
|
|
284
465
|
case "product_view" /* PRODUCT_VIEW */:
|
|
285
|
-
this.trackProductView(event);
|
|
466
|
+
this.trackProductView(event, adapterParams);
|
|
286
467
|
break;
|
|
287
468
|
case "add_to_cart" /* ADD_TO_CART */:
|
|
288
|
-
this.trackAddToCart(event);
|
|
469
|
+
this.trackAddToCart(event, adapterParams);
|
|
289
470
|
break;
|
|
290
471
|
case "checkout_started" /* CHECKOUT_STARTED */:
|
|
291
|
-
this.trackCheckoutStarted(event);
|
|
472
|
+
this.trackCheckoutStarted(event, adapterParams);
|
|
292
473
|
break;
|
|
293
474
|
case "checkout_completed" /* CHECKOUT_COMPLETED */:
|
|
294
|
-
this.trackCheckoutCompleted(event);
|
|
475
|
+
this.trackCheckoutCompleted(event, adapterParams);
|
|
295
476
|
break;
|
|
296
477
|
case "purchase" /* PURCHASE */:
|
|
297
|
-
this.trackPurchase(event);
|
|
478
|
+
this.trackPurchase(event, adapterParams);
|
|
298
479
|
break;
|
|
299
480
|
case "add_payment_info" /* ADD_PAYMENT_INFO */:
|
|
300
|
-
this.trackAddPaymentInfo(event);
|
|
481
|
+
this.trackAddPaymentInfo(event, adapterParams);
|
|
301
482
|
break;
|
|
302
483
|
case "search" /* SEARCH */:
|
|
303
|
-
this.trackSearch(event);
|
|
484
|
+
this.trackSearch(event, adapterParams);
|
|
304
485
|
break;
|
|
305
486
|
default:
|
|
306
487
|
this.logger.debug("Unhandled event type", { eventType: event.type });
|
|
307
488
|
break;
|
|
308
489
|
}
|
|
309
490
|
}
|
|
491
|
+
/**
|
|
492
|
+
* Track event on server-side (CAPI) as backup
|
|
493
|
+
*/
|
|
494
|
+
async trackServerSide(event) {
|
|
495
|
+
try {
|
|
496
|
+
const browserInfo = getBrowserInfo();
|
|
497
|
+
const payload = {
|
|
498
|
+
events: [event],
|
|
499
|
+
userInfo: browserInfo
|
|
500
|
+
};
|
|
501
|
+
const response = await fetch("/api/events", {
|
|
502
|
+
method: "POST",
|
|
503
|
+
headers: {
|
|
504
|
+
"Content-Type": "application/json"
|
|
505
|
+
},
|
|
506
|
+
body: JSON.stringify(payload)
|
|
507
|
+
});
|
|
508
|
+
if (!response.ok) {
|
|
509
|
+
throw new Error(`Server-side tracking failed: ${response.status}`);
|
|
510
|
+
}
|
|
511
|
+
this.logger.debug(
|
|
512
|
+
`FB Pixel: Server-side backup sent for event ${event.type}`
|
|
513
|
+
);
|
|
514
|
+
} catch (error) {
|
|
515
|
+
this.logger.error(
|
|
516
|
+
`FB Pixel: Server-side backup failed for event ${event.type}: ${error instanceof Error ? error.message : String(error)}`
|
|
517
|
+
);
|
|
518
|
+
}
|
|
519
|
+
}
|
|
310
520
|
/**
|
|
311
521
|
* Track a page view event
|
|
312
522
|
* @param event The page view event
|
|
313
523
|
*/
|
|
314
|
-
trackPageView(event) {
|
|
315
|
-
const
|
|
316
|
-
|
|
317
|
-
this.
|
|
524
|
+
trackPageView(event, adapterParams) {
|
|
525
|
+
const eventName = this.getEventName(adapterParams, "PageView");
|
|
526
|
+
const affiliateParams = this.enhanceWithAffiliateParams({});
|
|
527
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
528
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
529
|
+
if (event.eventId) {
|
|
530
|
+
window.fbq?.("track", eventName, enhancedParams, {
|
|
531
|
+
eventID: event.eventId
|
|
532
|
+
});
|
|
533
|
+
} else {
|
|
534
|
+
window.fbq?.("track", eventName, enhancedParams);
|
|
535
|
+
}
|
|
536
|
+
this.logger.debug("PageView event tracked", {
|
|
537
|
+
eventName,
|
|
538
|
+
params: enhancedParams
|
|
539
|
+
});
|
|
318
540
|
}
|
|
319
541
|
/**
|
|
320
542
|
* Track a product view event
|
|
321
543
|
* @param event The product view event
|
|
322
544
|
*/
|
|
323
|
-
trackProductView(event) {
|
|
324
|
-
const
|
|
545
|
+
trackProductView(event, adapterParams) {
|
|
546
|
+
const eventName = this.getEventName(adapterParams, "ViewContent");
|
|
547
|
+
const baseParams = {
|
|
325
548
|
content_type: "product_group",
|
|
326
549
|
content_ids: [event.productId],
|
|
327
550
|
content_name: event.productName,
|
|
@@ -329,34 +552,56 @@ var PixelAdapter = class extends BaseAdapter {
|
|
|
329
552
|
value: event.price,
|
|
330
553
|
currency: event.currency || "INR"
|
|
331
554
|
};
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
555
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
556
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
557
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
558
|
+
if (event.eventId) {
|
|
559
|
+
window.fbq?.("track", eventName, enhancedParams, {
|
|
560
|
+
eventID: event.eventId
|
|
561
|
+
});
|
|
562
|
+
} else {
|
|
563
|
+
window.fbq?.("track", eventName, enhancedParams);
|
|
564
|
+
}
|
|
565
|
+
this.logger.debug("ProductView event tracked", {
|
|
566
|
+
eventName,
|
|
567
|
+
params: enhancedParams
|
|
568
|
+
});
|
|
337
569
|
}
|
|
338
570
|
/**
|
|
339
571
|
* Track an add to cart event
|
|
340
572
|
* @param event The add to cart event
|
|
341
573
|
*/
|
|
342
|
-
trackAddToCart(event) {
|
|
343
|
-
const
|
|
574
|
+
trackAddToCart(event, adapterParams) {
|
|
575
|
+
const eventName = this.getEventName(adapterParams, "AddToCart");
|
|
576
|
+
const baseParams = {
|
|
344
577
|
content_type: "product_group",
|
|
345
578
|
content_ids: [event.productId],
|
|
346
579
|
content_name: event.productName,
|
|
347
580
|
value: event.price,
|
|
348
581
|
currency: event.currency || "INR"
|
|
349
582
|
};
|
|
350
|
-
const
|
|
351
|
-
|
|
352
|
-
this.
|
|
583
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
584
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
585
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
586
|
+
if (event.eventId) {
|
|
587
|
+
window.fbq?.("track", eventName, enhancedParams, {
|
|
588
|
+
eventID: event.eventId
|
|
589
|
+
});
|
|
590
|
+
} else {
|
|
591
|
+
window.fbq?.("track", eventName, enhancedParams);
|
|
592
|
+
}
|
|
593
|
+
this.logger.debug("AddToCart event tracked", {
|
|
594
|
+
eventName,
|
|
595
|
+
params: enhancedParams
|
|
596
|
+
});
|
|
353
597
|
}
|
|
354
598
|
/**
|
|
355
599
|
* Track a checkout started event
|
|
356
600
|
* @param event The checkout started event
|
|
357
601
|
*/
|
|
358
|
-
trackCheckoutStarted(event) {
|
|
359
|
-
const
|
|
602
|
+
trackCheckoutStarted(event, adapterParams) {
|
|
603
|
+
const eventName = this.getEventName(adapterParams, "InitiateCheckout");
|
|
604
|
+
const baseParams = {
|
|
360
605
|
content_ids: event.items.map((item) => item.productId),
|
|
361
606
|
content_type: "product_group",
|
|
362
607
|
value: event.cartValue,
|
|
@@ -368,18 +613,28 @@ var PixelAdapter = class extends BaseAdapter {
|
|
|
368
613
|
item_price: item.price
|
|
369
614
|
}))
|
|
370
615
|
};
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
616
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
617
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
618
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
619
|
+
if (event.eventId) {
|
|
620
|
+
window.fbq?.("track", eventName, enhancedParams, {
|
|
621
|
+
eventID: event.eventId
|
|
622
|
+
});
|
|
623
|
+
} else {
|
|
624
|
+
window.fbq?.("track", eventName, enhancedParams);
|
|
625
|
+
}
|
|
626
|
+
this.logger.debug("CheckoutStarted event tracked", {
|
|
627
|
+
eventName,
|
|
628
|
+
params: enhancedParams
|
|
629
|
+
});
|
|
376
630
|
}
|
|
377
631
|
/**
|
|
378
632
|
* Track a checkout completed event
|
|
379
633
|
* @param event The checkout completed event
|
|
380
634
|
*/
|
|
381
|
-
trackCheckoutCompleted(event) {
|
|
382
|
-
const
|
|
635
|
+
trackCheckoutCompleted(event, adapterParams) {
|
|
636
|
+
const eventName = this.getEventName(adapterParams, "Purchase");
|
|
637
|
+
const baseParams = {
|
|
383
638
|
value: event.cartValue,
|
|
384
639
|
currency: event.currency || "INR",
|
|
385
640
|
content_type: "product_group",
|
|
@@ -391,26 +646,54 @@ var PixelAdapter = class extends BaseAdapter {
|
|
|
391
646
|
item_price: item.price
|
|
392
647
|
}))
|
|
393
648
|
};
|
|
394
|
-
|
|
649
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
650
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
651
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
652
|
+
if (event.eventId) {
|
|
653
|
+
window.fbq?.("track", eventName, enhancedParams, {
|
|
654
|
+
eventID: event.eventId
|
|
655
|
+
});
|
|
656
|
+
} else {
|
|
657
|
+
window.fbq?.("track", eventName, enhancedParams);
|
|
658
|
+
}
|
|
659
|
+
this.logger.debug("CheckoutCompleted event tracked", {
|
|
660
|
+
eventName,
|
|
661
|
+
params: enhancedParams
|
|
662
|
+
});
|
|
395
663
|
}
|
|
396
664
|
/**
|
|
397
665
|
* Track a search event
|
|
398
666
|
* @param event The search event
|
|
399
667
|
*/
|
|
400
|
-
trackSearch(event) {
|
|
401
|
-
const
|
|
668
|
+
trackSearch(event, adapterParams) {
|
|
669
|
+
const eventName = this.getEventName(adapterParams, "Search");
|
|
670
|
+
const baseParams = {
|
|
402
671
|
search_string: event.searchTerm,
|
|
403
672
|
content_category: "product",
|
|
404
673
|
content_ids: event.content_ids || []
|
|
405
674
|
};
|
|
406
|
-
|
|
675
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
676
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
677
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
678
|
+
if (event.eventId) {
|
|
679
|
+
window.fbq?.("track", eventName, enhancedParams, {
|
|
680
|
+
eventID: event.eventId
|
|
681
|
+
});
|
|
682
|
+
} else {
|
|
683
|
+
window.fbq?.("track", eventName, enhancedParams);
|
|
684
|
+
}
|
|
685
|
+
this.logger.debug("Search event tracked", {
|
|
686
|
+
eventName,
|
|
687
|
+
params: enhancedParams
|
|
688
|
+
});
|
|
407
689
|
}
|
|
408
690
|
/**
|
|
409
691
|
* Track an add payment info event
|
|
410
692
|
* @param event The add payment info event
|
|
411
693
|
*/
|
|
412
|
-
trackAddPaymentInfo(event) {
|
|
413
|
-
const
|
|
694
|
+
trackAddPaymentInfo(event, adapterParams) {
|
|
695
|
+
const eventName = this.getEventName(adapterParams, "AddPaymentInfo");
|
|
696
|
+
const baseParams = {
|
|
414
697
|
value: event.cartValue,
|
|
415
698
|
currency: event.currency || "INR",
|
|
416
699
|
content_type: "product_group",
|
|
@@ -422,18 +705,28 @@ var PixelAdapter = class extends BaseAdapter {
|
|
|
422
705
|
})),
|
|
423
706
|
payment_type: event.paymentType || ""
|
|
424
707
|
};
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
708
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
709
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
710
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
711
|
+
if (event.eventId) {
|
|
712
|
+
window.fbq?.("track", eventName, enhancedParams, {
|
|
713
|
+
eventID: event.eventId
|
|
714
|
+
});
|
|
715
|
+
} else {
|
|
716
|
+
window.fbq?.("track", eventName, enhancedParams);
|
|
717
|
+
}
|
|
718
|
+
this.logger.debug("AddPaymentInfo event tracked", {
|
|
719
|
+
eventName,
|
|
720
|
+
params: enhancedParams
|
|
721
|
+
});
|
|
430
722
|
}
|
|
431
723
|
/**
|
|
432
724
|
* Track a view content event
|
|
433
725
|
* @param event The view content event
|
|
434
726
|
*/
|
|
435
|
-
trackViewContent(event) {
|
|
436
|
-
const
|
|
727
|
+
trackViewContent(event, adapterParams) {
|
|
728
|
+
const eventName = this.getEventName(adapterParams, "ViewContent");
|
|
729
|
+
const baseParams = {
|
|
437
730
|
content_type: event.content_type || "product",
|
|
438
731
|
content_ids: event.content_ids || [],
|
|
439
732
|
content_name: event.content_name || "",
|
|
@@ -441,18 +734,28 @@ var PixelAdapter = class extends BaseAdapter {
|
|
|
441
734
|
value: event.value || 0,
|
|
442
735
|
currency: event.currency || "INR"
|
|
443
736
|
};
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
737
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
738
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
739
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
740
|
+
if (event.eventId) {
|
|
741
|
+
window.fbq?.("track", eventName, enhancedParams, {
|
|
742
|
+
eventID: event.eventId
|
|
743
|
+
});
|
|
744
|
+
} else {
|
|
745
|
+
window.fbq?.("track", eventName, enhancedParams);
|
|
746
|
+
}
|
|
747
|
+
this.logger.debug("ViewContent event tracked", {
|
|
748
|
+
eventName,
|
|
749
|
+
params: enhancedParams
|
|
750
|
+
});
|
|
449
751
|
}
|
|
450
752
|
/**
|
|
451
753
|
* Track a purchase event
|
|
452
754
|
* @param event The purchase event
|
|
453
755
|
*/
|
|
454
|
-
trackPurchase(event) {
|
|
455
|
-
const
|
|
756
|
+
trackPurchase(event, adapterParams) {
|
|
757
|
+
const eventName = this.getEventName(adapterParams, "Purchase");
|
|
758
|
+
const baseParams = {
|
|
456
759
|
value: event.value,
|
|
457
760
|
currency: event.currency || "INR",
|
|
458
761
|
content_type: event.content_type || "product_group",
|
|
@@ -460,15 +763,20 @@ var PixelAdapter = class extends BaseAdapter {
|
|
|
460
763
|
num_items: event.num_items || 1,
|
|
461
764
|
contents: event.contents || []
|
|
462
765
|
};
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
766
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
767
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
768
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
769
|
+
if (event.eventId) {
|
|
770
|
+
window.fbq?.("track", eventName, enhancedParams, {
|
|
771
|
+
eventID: event.eventId
|
|
772
|
+
});
|
|
773
|
+
} else {
|
|
774
|
+
window.fbq?.("track", eventName, enhancedParams);
|
|
775
|
+
}
|
|
776
|
+
this.logger.debug("Purchase event tracked", {
|
|
777
|
+
eventName,
|
|
778
|
+
params: enhancedParams
|
|
779
|
+
});
|
|
472
780
|
}
|
|
473
781
|
};
|
|
474
782
|
|
|
@@ -517,8 +825,9 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
517
825
|
/**
|
|
518
826
|
* Track an event with Google Analytics
|
|
519
827
|
* @param event The event to track
|
|
828
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
520
829
|
*/
|
|
521
|
-
async trackEvent(event) {
|
|
830
|
+
async trackEvent(event, adapterParams) {
|
|
522
831
|
this.logger.debug("Attempting to track event", {
|
|
523
832
|
initialized: this.initialized,
|
|
524
833
|
hasWindow: typeof window !== "undefined",
|
|
@@ -544,76 +853,94 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
544
853
|
});
|
|
545
854
|
switch (event.type) {
|
|
546
855
|
case "page_view" /* PAGE_VIEW */:
|
|
547
|
-
this.trackPageView(
|
|
856
|
+
this.trackPageView(
|
|
857
|
+
event,
|
|
858
|
+
measurementId,
|
|
859
|
+
adapterParams
|
|
860
|
+
);
|
|
548
861
|
break;
|
|
549
862
|
case "user_engagement" /* USER_ENGAGEMENT */:
|
|
550
|
-
this.trackUserEngagement();
|
|
863
|
+
this.trackUserEngagement(adapterParams);
|
|
551
864
|
break;
|
|
552
865
|
case "session_start" /* SESSION_START */:
|
|
553
|
-
this.trackSessionStart();
|
|
866
|
+
this.trackSessionStart(adapterParams);
|
|
554
867
|
break;
|
|
555
868
|
case "first_visit" /* FIRST_VISIT */:
|
|
556
|
-
this.trackFirstVisit();
|
|
869
|
+
this.trackFirstVisit(adapterParams);
|
|
557
870
|
break;
|
|
558
871
|
case "view_item" /* VIEW_ITEM */:
|
|
559
|
-
this.trackViewItem(event);
|
|
872
|
+
this.trackViewItem(event, adapterParams);
|
|
560
873
|
break;
|
|
561
874
|
case "viewed_product" /* VIEWED_PRODUCT */:
|
|
562
|
-
this.trackViewedProduct(event);
|
|
875
|
+
this.trackViewedProduct(event, adapterParams);
|
|
563
876
|
break;
|
|
564
877
|
case "checkout_payment" /* CHECKOUT_PAYMENT */:
|
|
565
|
-
this.trackCheckoutPayment(
|
|
878
|
+
this.trackCheckoutPayment(
|
|
879
|
+
event,
|
|
880
|
+
adapterParams
|
|
881
|
+
);
|
|
566
882
|
break;
|
|
567
883
|
case "scroll" /* SCROLL */:
|
|
568
|
-
this.trackScroll();
|
|
884
|
+
this.trackScroll(adapterParams);
|
|
569
885
|
break;
|
|
570
886
|
case "add_to_cart" /* ADD_TO_CART */:
|
|
571
|
-
|
|
572
|
-
this.trackAddToCart(event);
|
|
887
|
+
this.trackAddToCart(event, adapterParams);
|
|
573
888
|
break;
|
|
574
889
|
case "form_start" /* FORM_START */:
|
|
575
|
-
this.trackFormStart();
|
|
890
|
+
this.trackFormStart(adapterParams);
|
|
576
891
|
break;
|
|
577
892
|
case "checkout_started" /* CHECKOUT_STARTED */:
|
|
578
|
-
this.trackCheckoutStarted(
|
|
893
|
+
this.trackCheckoutStarted(
|
|
894
|
+
event,
|
|
895
|
+
adapterParams
|
|
896
|
+
);
|
|
579
897
|
break;
|
|
580
898
|
case "form_submission" /* FORM_SUBMISSION */:
|
|
581
|
-
this.trackFormSubmission(event);
|
|
899
|
+
this.trackFormSubmission(event, adapterParams);
|
|
582
900
|
break;
|
|
583
901
|
case "search" /* SEARCH */:
|
|
584
|
-
this.trackSearch(event);
|
|
902
|
+
this.trackSearch(event, adapterParams);
|
|
585
903
|
break;
|
|
586
904
|
case "checkout_completed" /* CHECKOUT_COMPLETED */:
|
|
587
|
-
this.trackCheckoutCompleted(
|
|
905
|
+
this.trackCheckoutCompleted(
|
|
906
|
+
event,
|
|
907
|
+
adapterParams
|
|
908
|
+
);
|
|
588
909
|
break;
|
|
589
910
|
case "add_payment_info" /* ADD_PAYMENT_INFO */:
|
|
590
|
-
this.trackAddPaymentInfo(event);
|
|
911
|
+
this.trackAddPaymentInfo(event, adapterParams);
|
|
591
912
|
break;
|
|
592
913
|
case "view_content" /* VIEW_CONTENT */:
|
|
593
|
-
this.trackViewContent(event);
|
|
914
|
+
this.trackViewContent(event, adapterParams);
|
|
594
915
|
break;
|
|
595
916
|
case "purchase" /* PURCHASE */:
|
|
596
|
-
this.trackPurchase(event);
|
|
917
|
+
this.trackPurchase(event, adapterParams);
|
|
597
918
|
break;
|
|
598
919
|
case "view_search_results" /* VIEW_SEARCH_RESULTS */:
|
|
599
|
-
this.trackViewSearchResults(
|
|
920
|
+
this.trackViewSearchResults(
|
|
921
|
+
event,
|
|
922
|
+
adapterParams
|
|
923
|
+
);
|
|
600
924
|
break;
|
|
601
925
|
case "order_placed" /* ORDER_PLACED */:
|
|
602
|
-
this.trackOrderPlaced(event);
|
|
926
|
+
this.trackOrderPlaced(event, adapterParams);
|
|
603
927
|
break;
|
|
604
928
|
case "begin_checkout" /* BEGIN_CHECKOUT */:
|
|
605
|
-
this.trackBeginCheckout(event);
|
|
929
|
+
this.trackBeginCheckout(event, adapterParams);
|
|
606
930
|
break;
|
|
607
931
|
case "custom" /* CUSTOM */:
|
|
608
|
-
this.trackCustomEvent(event);
|
|
932
|
+
this.trackCustomEvent(event, adapterParams);
|
|
609
933
|
break;
|
|
610
934
|
default: {
|
|
611
|
-
const
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
935
|
+
const eventName = this.getEventName(adapterParams, event.type);
|
|
936
|
+
const baseParams = this.eventToParams(event);
|
|
937
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
938
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
939
|
+
const enhancedParams = this.mergeEventData(
|
|
940
|
+
experimentParams,
|
|
941
|
+
adapterParams
|
|
616
942
|
);
|
|
943
|
+
window.gtag("event", eventName, enhancedParams);
|
|
617
944
|
break;
|
|
618
945
|
}
|
|
619
946
|
}
|
|
@@ -623,8 +950,9 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
623
950
|
* @param event The page view event
|
|
624
951
|
* @param measurementId The Google Analytics measurement ID
|
|
625
952
|
*/
|
|
626
|
-
trackPageView(event, measurementId) {
|
|
627
|
-
const
|
|
953
|
+
trackPageView(event, measurementId, adapterParams) {
|
|
954
|
+
const eventName = this.getEventName(adapterParams, "page_view");
|
|
955
|
+
const baseParams = {
|
|
628
956
|
page_path: event.path,
|
|
629
957
|
page_title: event.title || document.title,
|
|
630
958
|
page_location: event.page_location || window.location.href,
|
|
@@ -647,14 +975,14 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
647
975
|
user_properties: event.user_properties,
|
|
648
976
|
session_engaged: event.session_engaged
|
|
649
977
|
};
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
const
|
|
978
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
979
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
980
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
981
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
982
|
+
}
|
|
983
|
+
trackUserEngagement(adapterParams) {
|
|
984
|
+
const eventName = this.getEventName(adapterParams, "user_engagement");
|
|
985
|
+
const baseParams = {
|
|
658
986
|
batch_ordering_id: "",
|
|
659
987
|
batch_page_id: "",
|
|
660
988
|
campaign: "",
|
|
@@ -671,14 +999,14 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
671
999
|
srsltid: "",
|
|
672
1000
|
term: ""
|
|
673
1001
|
};
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
const
|
|
1002
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1003
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1004
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1005
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1006
|
+
}
|
|
1007
|
+
trackSessionStart(adapterParams) {
|
|
1008
|
+
const eventName = this.getEventName(adapterParams, "session_start");
|
|
1009
|
+
const baseParams = {
|
|
682
1010
|
batch_ordering_id: "",
|
|
683
1011
|
batch_page_id: "",
|
|
684
1012
|
campaign: "",
|
|
@@ -697,14 +1025,14 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
697
1025
|
srsltid: "",
|
|
698
1026
|
term: ""
|
|
699
1027
|
};
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
const
|
|
1028
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1029
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1030
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1031
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1032
|
+
}
|
|
1033
|
+
trackFirstVisit(adapterParams) {
|
|
1034
|
+
const eventName = this.getEventName(adapterParams, "first_visit");
|
|
1035
|
+
const baseParams = {
|
|
708
1036
|
batch_ordering_id: "",
|
|
709
1037
|
batch_page_id: "",
|
|
710
1038
|
campaign: "",
|
|
@@ -725,25 +1053,26 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
725
1053
|
page_source: "",
|
|
726
1054
|
page_term: ""
|
|
727
1055
|
};
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
);
|
|
744
|
-
}
|
|
745
|
-
trackScroll() {
|
|
746
|
-
const
|
|
1056
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1057
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1058
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1059
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1060
|
+
}
|
|
1061
|
+
trackViewItem(event, adapterParams) {
|
|
1062
|
+
const eventName = this.getEventName(adapterParams, "view_item");
|
|
1063
|
+
const baseParams = {
|
|
1064
|
+
currency: event.currency,
|
|
1065
|
+
value: event.value,
|
|
1066
|
+
items: event.items
|
|
1067
|
+
};
|
|
1068
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1069
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1070
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1071
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1072
|
+
}
|
|
1073
|
+
trackScroll(adapterParams) {
|
|
1074
|
+
const eventName = this.getEventName(adapterParams, "scroll");
|
|
1075
|
+
const baseParams = {
|
|
747
1076
|
batch_ordering_id: "",
|
|
748
1077
|
batch_page_id: "",
|
|
749
1078
|
engagement_time_msec: void 0,
|
|
@@ -757,46 +1086,52 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
757
1086
|
percent_scrolled: 90
|
|
758
1087
|
// or dynamically captured
|
|
759
1088
|
};
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
window.gtag?.(
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
})
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
1089
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1090
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1091
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1092
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1093
|
+
}
|
|
1094
|
+
trackCheckoutPayment(event, adapterParams) {
|
|
1095
|
+
const eventName = this.getEventName(adapterParams, "checkout_payment");
|
|
1096
|
+
const baseParams = {
|
|
1097
|
+
currency: event.currency,
|
|
1098
|
+
value: event.cartValue,
|
|
1099
|
+
items: event.items.map((item) => ({
|
|
1100
|
+
item_id: item.productId,
|
|
1101
|
+
item_name: item.productName,
|
|
1102
|
+
price: item.price,
|
|
1103
|
+
quantity: item.quantity
|
|
1104
|
+
}))
|
|
1105
|
+
};
|
|
1106
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1107
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1108
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1109
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1110
|
+
}
|
|
1111
|
+
trackViewedProduct(event, adapterParams) {
|
|
1112
|
+
const eventName = this.getEventName(adapterParams, "viewed_product");
|
|
1113
|
+
const baseParams = {
|
|
1114
|
+
currency: event.currency,
|
|
1115
|
+
value: event.price,
|
|
1116
|
+
items: [
|
|
1117
|
+
{
|
|
1118
|
+
item_id: event.productId,
|
|
1119
|
+
item_name: event.productName,
|
|
1120
|
+
price: event.price,
|
|
1121
|
+
currency: event.currency
|
|
1122
|
+
}
|
|
1123
|
+
],
|
|
1124
|
+
view_duration: event.viewDuration
|
|
1125
|
+
};
|
|
1126
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1127
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1128
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1129
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
796
1130
|
}
|
|
797
|
-
trackAddToCart(event) {
|
|
1131
|
+
trackAddToCart(event, adapterParams) {
|
|
798
1132
|
this.logger.debug("Processing add_to_cart event", { event });
|
|
799
|
-
const
|
|
1133
|
+
const eventName = this.getEventName(adapterParams, "add_to_cart");
|
|
1134
|
+
const baseParams = {
|
|
800
1135
|
currency: event.currency || "INR",
|
|
801
1136
|
value: event.price * (event.quantity || 1),
|
|
802
1137
|
// Calculate total value
|
|
@@ -822,14 +1157,18 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
822
1157
|
user_id: event.user_id,
|
|
823
1158
|
user_properties: event.user_properties
|
|
824
1159
|
};
|
|
825
|
-
const
|
|
1160
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1161
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1162
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
826
1163
|
this.logger.debug("Sending add_to_cart event to gtag", {
|
|
1164
|
+
eventName,
|
|
827
1165
|
params: enhancedParams
|
|
828
1166
|
});
|
|
829
|
-
window.gtag?.("event",
|
|
1167
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
830
1168
|
}
|
|
831
|
-
trackFormStart() {
|
|
832
|
-
const
|
|
1169
|
+
trackFormStart(adapterParams) {
|
|
1170
|
+
const eventName = this.getEventName(adapterParams, "form_start");
|
|
1171
|
+
const baseParams = {
|
|
833
1172
|
batch_ordering_id: "",
|
|
834
1173
|
batch_page_id: "",
|
|
835
1174
|
engagement_time_msec: void 0,
|
|
@@ -847,14 +1186,14 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
847
1186
|
page_referrer: document.referrer,
|
|
848
1187
|
page_title: document.title
|
|
849
1188
|
};
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
const
|
|
1189
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1190
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1191
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1192
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1193
|
+
}
|
|
1194
|
+
trackCheckoutStarted(event, adapterParams) {
|
|
1195
|
+
const eventName = this.getEventName(adapterParams, "begin_checkout");
|
|
1196
|
+
const baseParams = {
|
|
858
1197
|
batch_ordering_id: "",
|
|
859
1198
|
batch_page_id: "",
|
|
860
1199
|
currency: event.currency || "INR",
|
|
@@ -877,14 +1216,14 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
877
1216
|
item_variant: item.variant
|
|
878
1217
|
}))
|
|
879
1218
|
};
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
const
|
|
1219
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1220
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1221
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1222
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1223
|
+
}
|
|
1224
|
+
trackFormSubmission(event, adapterParams) {
|
|
1225
|
+
const eventName = this.getEventName(adapterParams, "form_submit");
|
|
1226
|
+
const baseParams = {
|
|
888
1227
|
batch_ordering_id: "",
|
|
889
1228
|
batch_page_id: "",
|
|
890
1229
|
engagement_time_msec: void 0,
|
|
@@ -898,14 +1237,14 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
898
1237
|
page_referrer: document.referrer,
|
|
899
1238
|
page_title: document.title
|
|
900
1239
|
};
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
const
|
|
1240
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1241
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1242
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1243
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1244
|
+
}
|
|
1245
|
+
trackSearch(event, adapterParams) {
|
|
1246
|
+
const eventName = this.getEventName(adapterParams, "search");
|
|
1247
|
+
const baseParams = {
|
|
909
1248
|
batch_ordering_id: "",
|
|
910
1249
|
batch_page_id: "",
|
|
911
1250
|
engagement_time_msec: void 0,
|
|
@@ -917,14 +1256,18 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
917
1256
|
page_title: document.title,
|
|
918
1257
|
search_term: event.searchTerm
|
|
919
1258
|
};
|
|
920
|
-
|
|
1259
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1260
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1261
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1262
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
921
1263
|
}
|
|
922
1264
|
/**
|
|
923
1265
|
* Track a checkout completed event
|
|
924
1266
|
* @param event The checkout completed event
|
|
925
1267
|
*/
|
|
926
|
-
trackCheckoutCompleted(event) {
|
|
927
|
-
const
|
|
1268
|
+
trackCheckoutCompleted(event, adapterParams) {
|
|
1269
|
+
const eventName = this.getEventName(adapterParams, "purchase");
|
|
1270
|
+
const baseParams = {
|
|
928
1271
|
transaction_id: event.orderId,
|
|
929
1272
|
currency: event.currency || "INR",
|
|
930
1273
|
value: event.cartValue,
|
|
@@ -936,22 +1279,30 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
936
1279
|
item_variant: item.variant
|
|
937
1280
|
}))
|
|
938
1281
|
};
|
|
939
|
-
|
|
1282
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1283
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1284
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1285
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
940
1286
|
}
|
|
941
1287
|
/**
|
|
942
1288
|
* Track a custom event
|
|
943
1289
|
* @param event The custom event
|
|
944
1290
|
*/
|
|
945
|
-
trackCustomEvent(event) {
|
|
946
|
-
const
|
|
947
|
-
|
|
1291
|
+
trackCustomEvent(event, adapterParams) {
|
|
1292
|
+
const eventName = this.getEventName(adapterParams, event.name);
|
|
1293
|
+
const baseParams = event.properties || {};
|
|
1294
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1295
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1296
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1297
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
948
1298
|
}
|
|
949
1299
|
/**
|
|
950
1300
|
* Track an add payment info event
|
|
951
1301
|
* @param event The add payment info event
|
|
952
1302
|
*/
|
|
953
|
-
trackAddPaymentInfo(event) {
|
|
954
|
-
const
|
|
1303
|
+
trackAddPaymentInfo(event, adapterParams) {
|
|
1304
|
+
const eventName = this.getEventName(adapterParams, "add_payment_info");
|
|
1305
|
+
const baseParams = {
|
|
955
1306
|
currency: event.currency || "INR",
|
|
956
1307
|
value: event.cartValue,
|
|
957
1308
|
payment_type: event.paymentType || "",
|
|
@@ -963,18 +1314,18 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
963
1314
|
item_variant: item.variant
|
|
964
1315
|
}))
|
|
965
1316
|
};
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
);
|
|
1317
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1318
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1319
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1320
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
971
1321
|
}
|
|
972
1322
|
/**
|
|
973
1323
|
* Track a view content event
|
|
974
1324
|
* @param event The view content event
|
|
975
1325
|
*/
|
|
976
|
-
trackViewContent(event) {
|
|
977
|
-
const
|
|
1326
|
+
trackViewContent(event, adapterParams) {
|
|
1327
|
+
const eventName = this.getEventName(adapterParams, "view_item");
|
|
1328
|
+
const baseParams = {
|
|
978
1329
|
currency: event.currency || "USD",
|
|
979
1330
|
value: event.value || 0,
|
|
980
1331
|
items: event.items?.map((item) => ({
|
|
@@ -1003,18 +1354,18 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
1003
1354
|
user_id: event.user_id,
|
|
1004
1355
|
user_properties: event.user_properties
|
|
1005
1356
|
};
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
);
|
|
1357
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1358
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1359
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1360
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1011
1361
|
}
|
|
1012
1362
|
/**
|
|
1013
1363
|
* Track a purchase event
|
|
1014
1364
|
* @param event The purchase event
|
|
1015
1365
|
*/
|
|
1016
|
-
trackPurchase(event) {
|
|
1017
|
-
const
|
|
1366
|
+
trackPurchase(event, adapterParams) {
|
|
1367
|
+
const eventName = this.getEventName(adapterParams, "purchase");
|
|
1368
|
+
const baseParams = {
|
|
1018
1369
|
transaction_id: event.transaction_id,
|
|
1019
1370
|
value: event.value,
|
|
1020
1371
|
currency: event.currency || "USD",
|
|
@@ -1047,14 +1398,18 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
1047
1398
|
user_id: event.user_id,
|
|
1048
1399
|
user_properties: event.user_properties
|
|
1049
1400
|
};
|
|
1050
|
-
|
|
1401
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1402
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1403
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1404
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1051
1405
|
}
|
|
1052
1406
|
/**
|
|
1053
1407
|
* Track a view search results event
|
|
1054
1408
|
* @param event The view search results event
|
|
1055
1409
|
*/
|
|
1056
|
-
trackViewSearchResults(event) {
|
|
1057
|
-
const
|
|
1410
|
+
trackViewSearchResults(event, adapterParams) {
|
|
1411
|
+
const eventName = this.getEventName(adapterParams, "view_search_results");
|
|
1412
|
+
const baseParams = {
|
|
1058
1413
|
search_term: event.search_term,
|
|
1059
1414
|
// GA4-specific parameters
|
|
1060
1415
|
batch_ordering_id: event.batch_ordering_id || "",
|
|
@@ -1069,18 +1424,18 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
1069
1424
|
user_id: event.user_id,
|
|
1070
1425
|
user_properties: event.user_properties
|
|
1071
1426
|
};
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
);
|
|
1427
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1428
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1429
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1430
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1077
1431
|
}
|
|
1078
1432
|
/**
|
|
1079
1433
|
* Track an order placed event
|
|
1080
1434
|
* @param event The order placed event
|
|
1081
1435
|
*/
|
|
1082
|
-
trackOrderPlaced(event) {
|
|
1083
|
-
const
|
|
1436
|
+
trackOrderPlaced(event, adapterParams) {
|
|
1437
|
+
const eventName = this.getEventName(adapterParams, "purchase");
|
|
1438
|
+
const baseParams = {
|
|
1084
1439
|
transaction_id: event.order_id,
|
|
1085
1440
|
value: event.total_amount,
|
|
1086
1441
|
currency: event.currency || "USD",
|
|
@@ -1106,14 +1461,18 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
1106
1461
|
user_id: event.user_id,
|
|
1107
1462
|
user_properties: event.user_properties
|
|
1108
1463
|
};
|
|
1109
|
-
|
|
1464
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1465
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1466
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1467
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1110
1468
|
}
|
|
1111
1469
|
/**
|
|
1112
1470
|
* Track a begin checkout event
|
|
1113
1471
|
* @param event The begin checkout event
|
|
1114
1472
|
*/
|
|
1115
|
-
trackBeginCheckout(event) {
|
|
1116
|
-
const
|
|
1473
|
+
trackBeginCheckout(event, adapterParams) {
|
|
1474
|
+
const eventName = this.getEventName(adapterParams, "begin_checkout");
|
|
1475
|
+
const baseParams = {
|
|
1117
1476
|
currency: event.currency || "USD",
|
|
1118
1477
|
value: event.value || 0,
|
|
1119
1478
|
coupon: event.coupon,
|
|
@@ -1143,11 +1502,10 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
1143
1502
|
user_id: event.user_id,
|
|
1144
1503
|
user_properties: event.user_properties
|
|
1145
1504
|
};
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
);
|
|
1505
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1506
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1507
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
1508
|
+
window.gtag?.("event", eventName, enhancedParams);
|
|
1151
1509
|
}
|
|
1152
1510
|
/**
|
|
1153
1511
|
* Convert an event to Google Analytics parameters
|
|
@@ -1155,7 +1513,8 @@ var GoogleAdapter = class extends BaseAdapter {
|
|
|
1155
1513
|
*/
|
|
1156
1514
|
eventToParams(event) {
|
|
1157
1515
|
const { type, timestamp, ...params } = event;
|
|
1158
|
-
|
|
1516
|
+
const affiliateParams = this.enhanceWithAffiliateParams(params);
|
|
1517
|
+
return this.enhanceWithExperimentParams(affiliateParams);
|
|
1159
1518
|
}
|
|
1160
1519
|
};
|
|
1161
1520
|
|
|
@@ -1177,41 +1536,7 @@ var EventNames = {
|
|
|
1177
1536
|
SEARCH: "Search",
|
|
1178
1537
|
// User events
|
|
1179
1538
|
USER_SIGNED_UP: "User Signed Up",
|
|
1180
|
-
USER_LOGGED_IN: "User Logged In"
|
|
1181
|
-
// MoEngage events
|
|
1182
|
-
ITEM_PURCHASED: "Item Purchased",
|
|
1183
|
-
UPDATE_CART: "Update Cart",
|
|
1184
|
-
CUSTOMER_REGISTERED: "Customer Registered",
|
|
1185
|
-
CUSTOMER_LOGGED_IN: "Customer Logged In",
|
|
1186
|
-
SHOPIFY_CHECKOUT_UPDATED: "Shopify - Checkout Updated",
|
|
1187
|
-
SHOPIFY_ABANDONED_CHECKOUT: "Shopify - Abandoned Checkout",
|
|
1188
|
-
SHOPIFY_ORDER_FULFILLED: "Shopify - Order Fulfilled",
|
|
1189
|
-
SHOPIFY_CHECKOUT_STARTED: "Shopify - Checkout Started",
|
|
1190
|
-
SHOPIFY_ADD_TO_CART: "Shopify - Add To Cart",
|
|
1191
|
-
SHOPIFY_REMOVED_FROM_CART: "Shopify - Removed From Cart",
|
|
1192
|
-
SHOPIFY_UPDATE_CART: "Shopify - Update Cart",
|
|
1193
|
-
SPINFORM_RESULT: "Spinform Result",
|
|
1194
|
-
COUPON_COPIED: "Coupon Copied",
|
|
1195
|
-
STARTED_CHECKOUT_GK: "Started Checkout GK",
|
|
1196
|
-
MOBILE_ADDED_GK: "Mobile Added GK",
|
|
1197
|
-
ADDRESS_SELECTED_GK: "Address Selected GK",
|
|
1198
|
-
ADDRESS_COMPLETED_GK: "Address Completed GK",
|
|
1199
|
-
PAYMENT_METHOD_SELECTED_GK: "Payment Method Selected GK",
|
|
1200
|
-
PAYMENT_COMPLETED_GK: "Payment Completed GK",
|
|
1201
|
-
ORDER_SUCCESS: "Order Success",
|
|
1202
|
-
ORDER_COMPLETED: "Order Completed",
|
|
1203
|
-
PIN_CODE_ADDED_GK: "PIN Code Added GK",
|
|
1204
|
-
ADDRESS_ADDED_GK: "Address Added GK",
|
|
1205
|
-
KP_MP_PHONE_NUMBER_LOGGED_IN: "KP MP Phone Number Logged In",
|
|
1206
|
-
KP_PHONE_NUMBER_LOGGED_IN: "KP Phone Number Logged In",
|
|
1207
|
-
KP_MP_SHOPIFY_LOGGED_IN: "KP MP Shopify Logged In",
|
|
1208
|
-
KP_MP_SUCCESSFULLY_LOGGED_OUT: "KP MP Successfully Logged Out",
|
|
1209
|
-
KP_WHATSAPP_LOGGED_IN: "KP Whatsapp Logged In",
|
|
1210
|
-
KP_MP_TRUECALLER_LOGGED_IN: "KP MP Truecaller Logged In",
|
|
1211
|
-
KP_MP_WHATSAPP_LOGGED_IN: "KP MP Whatsapp Logged In",
|
|
1212
|
-
KP_TRUECALLER_LOGGED_IN: "KP Truecaller Logged In",
|
|
1213
|
-
KP_SHOPIFY_LOGGED_IN: "KP Shopify Logged In",
|
|
1214
|
-
KP_SUCCESSFULLY_LOGGED_OUT: "KP Successfully Logged Out"
|
|
1539
|
+
USER_LOGGED_IN: "User Logged In"
|
|
1215
1540
|
};
|
|
1216
1541
|
var DEFAULT_CURRENCY = "INR";
|
|
1217
1542
|
|
|
@@ -1265,8 +1590,9 @@ var MoengageAdapter = class extends BaseAdapter {
|
|
|
1265
1590
|
/**
|
|
1266
1591
|
* Track an event with MoenGage SDK
|
|
1267
1592
|
* @param event The event to track
|
|
1593
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1268
1594
|
*/
|
|
1269
|
-
async trackEvent(event) {
|
|
1595
|
+
async trackEvent(event, adapterParams) {
|
|
1270
1596
|
if (!this.initialized || typeof window === "undefined" || !this.sdk) {
|
|
1271
1597
|
this.logger.warn(
|
|
1272
1598
|
"Cannot track event, adapter not initialized or SDK not available",
|
|
@@ -1282,106 +1608,172 @@ var MoengageAdapter = class extends BaseAdapter {
|
|
|
1282
1608
|
this.logger.debug("Tracking event", { eventType: event.type });
|
|
1283
1609
|
switch (event.type) {
|
|
1284
1610
|
case "page_view" /* PAGE_VIEW */:
|
|
1285
|
-
this.trackPageView(event);
|
|
1611
|
+
this.trackPageView(event, adapterParams);
|
|
1286
1612
|
break;
|
|
1287
1613
|
case "button_click" /* BUTTON_CLICK */:
|
|
1288
|
-
this.trackButtonClick(event);
|
|
1614
|
+
this.trackButtonClick(event, adapterParams);
|
|
1289
1615
|
break;
|
|
1290
1616
|
case "form_submission" /* FORM_SUBMISSION */:
|
|
1291
|
-
this.trackFormSubmission(event);
|
|
1617
|
+
this.trackFormSubmission(event, adapterParams);
|
|
1292
1618
|
break;
|
|
1293
1619
|
case "product_view" /* PRODUCT_VIEW */:
|
|
1294
|
-
this.trackProductView(event);
|
|
1620
|
+
this.trackProductView(event, adapterParams);
|
|
1295
1621
|
break;
|
|
1296
1622
|
case "add_to_cart" /* ADD_TO_CART */:
|
|
1297
|
-
this.trackAddToCart(event);
|
|
1623
|
+
this.trackAddToCart(event, adapterParams);
|
|
1298
1624
|
break;
|
|
1299
1625
|
case "remove_from_cart" /* REMOVE_FROM_CART */:
|
|
1300
|
-
this.trackRemoveFromCart(event);
|
|
1626
|
+
this.trackRemoveFromCart(event, adapterParams);
|
|
1301
1627
|
break;
|
|
1302
1628
|
case "checkout_started" /* CHECKOUT_STARTED */:
|
|
1303
|
-
this.trackCheckoutStarted(
|
|
1629
|
+
this.trackCheckoutStarted(
|
|
1630
|
+
event,
|
|
1631
|
+
adapterParams
|
|
1632
|
+
);
|
|
1304
1633
|
break;
|
|
1305
1634
|
case "checkout_completed" /* CHECKOUT_COMPLETED */:
|
|
1306
|
-
this.trackCheckoutCompleted(
|
|
1635
|
+
this.trackCheckoutCompleted(
|
|
1636
|
+
event,
|
|
1637
|
+
adapterParams
|
|
1638
|
+
);
|
|
1307
1639
|
break;
|
|
1308
1640
|
case "search" /* SEARCH */:
|
|
1309
|
-
this.trackSearch(event);
|
|
1641
|
+
this.trackSearch(event, adapterParams);
|
|
1310
1642
|
break;
|
|
1311
1643
|
case "user_signup" /* USER_SIGNUP */:
|
|
1312
|
-
this.trackUserSignup(event);
|
|
1644
|
+
this.trackUserSignup(event, adapterParams);
|
|
1313
1645
|
break;
|
|
1314
1646
|
case "user_login" /* USER_LOGIN */:
|
|
1315
|
-
this.trackUserLogin(event);
|
|
1647
|
+
this.trackUserLogin(event, adapterParams);
|
|
1316
1648
|
break;
|
|
1317
1649
|
case "custom" /* CUSTOM */:
|
|
1318
|
-
this.trackCustomEvent(event);
|
|
1650
|
+
this.trackCustomEvent(event, adapterParams);
|
|
1319
1651
|
break;
|
|
1320
1652
|
default:
|
|
1321
|
-
this.
|
|
1653
|
+
const eventName = this.getEventName(adapterParams, event.type);
|
|
1654
|
+
const baseParams = this.eventToParams(event);
|
|
1655
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
1656
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1657
|
+
const enhancedParams = this.mergeEventData(
|
|
1658
|
+
experimentParams,
|
|
1659
|
+
adapterParams
|
|
1660
|
+
);
|
|
1661
|
+
this.sdk.track_event(eventName, enhancedParams);
|
|
1322
1662
|
break;
|
|
1323
1663
|
}
|
|
1324
1664
|
}
|
|
1325
1665
|
/**
|
|
1326
1666
|
* Track a page view event
|
|
1327
1667
|
* @param event The page view event
|
|
1668
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1328
1669
|
*/
|
|
1329
|
-
trackPageView(event) {
|
|
1670
|
+
trackPageView(event, adapterParams) {
|
|
1330
1671
|
if (!this.sdk?.track_event) {
|
|
1331
1672
|
this.logger.warn("track_event not available for PageView event");
|
|
1332
1673
|
return;
|
|
1333
1674
|
}
|
|
1334
|
-
const
|
|
1675
|
+
const eventName = this.getEventName(adapterParams, EventNames.PAGE_VIEWED);
|
|
1676
|
+
const baseEventData = {
|
|
1335
1677
|
page_path: event.path,
|
|
1336
1678
|
page_title: event.title,
|
|
1337
1679
|
page_url: window.location.href,
|
|
1338
1680
|
referrer: event.referrer || document.referrer
|
|
1339
1681
|
};
|
|
1340
|
-
this.
|
|
1341
|
-
this.
|
|
1682
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseEventData);
|
|
1683
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1684
|
+
const enhancedEventData = this.mergeEventData(
|
|
1685
|
+
experimentParams,
|
|
1686
|
+
adapterParams
|
|
1687
|
+
);
|
|
1688
|
+
this.sdk.track_event(eventName, enhancedEventData);
|
|
1689
|
+
this.logger.debug("PageView event tracked", {
|
|
1690
|
+
eventName,
|
|
1691
|
+
eventData: enhancedEventData
|
|
1692
|
+
});
|
|
1342
1693
|
}
|
|
1343
1694
|
/**
|
|
1344
1695
|
* Track a button click event
|
|
1345
1696
|
* @param event The button click event
|
|
1697
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1346
1698
|
*/
|
|
1347
|
-
trackButtonClick(event) {
|
|
1348
|
-
this.
|
|
1699
|
+
trackButtonClick(event, adapterParams) {
|
|
1700
|
+
const eventName = this.getEventName(
|
|
1701
|
+
adapterParams,
|
|
1702
|
+
EventNames.BUTTON_CLICKED
|
|
1703
|
+
);
|
|
1704
|
+
const baseEventData = {
|
|
1349
1705
|
button_id: event.buttonId,
|
|
1350
1706
|
button_text: event.buttonText,
|
|
1351
1707
|
location: event.location
|
|
1352
|
-
}
|
|
1708
|
+
};
|
|
1709
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseEventData);
|
|
1710
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1711
|
+
const enhancedEventData = this.mergeEventData(
|
|
1712
|
+
experimentParams,
|
|
1713
|
+
adapterParams
|
|
1714
|
+
);
|
|
1715
|
+
this.sdk?.track_event(eventName, enhancedEventData);
|
|
1353
1716
|
}
|
|
1354
1717
|
/**
|
|
1355
1718
|
* Track a form submission event
|
|
1356
1719
|
* @param event The form submission event
|
|
1720
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1357
1721
|
*/
|
|
1358
|
-
trackFormSubmission(event) {
|
|
1359
|
-
this.
|
|
1722
|
+
trackFormSubmission(event, adapterParams) {
|
|
1723
|
+
const eventName = this.getEventName(
|
|
1724
|
+
adapterParams,
|
|
1725
|
+
EventNames.FORM_SUBMITTED
|
|
1726
|
+
);
|
|
1727
|
+
const baseEventData = {
|
|
1360
1728
|
form_id: event.formId,
|
|
1361
1729
|
form_name: event.formName,
|
|
1362
1730
|
success: event.success
|
|
1363
|
-
}
|
|
1731
|
+
};
|
|
1732
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseEventData);
|
|
1733
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1734
|
+
const enhancedEventData = this.mergeEventData(
|
|
1735
|
+
experimentParams,
|
|
1736
|
+
adapterParams
|
|
1737
|
+
);
|
|
1738
|
+
this.sdk?.track_event(eventName, enhancedEventData);
|
|
1364
1739
|
}
|
|
1365
1740
|
/**
|
|
1366
1741
|
* Track a product view event
|
|
1367
1742
|
* @param event The product view event
|
|
1743
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1368
1744
|
*/
|
|
1369
|
-
trackProductView(event) {
|
|
1370
|
-
this.
|
|
1745
|
+
trackProductView(event, adapterParams) {
|
|
1746
|
+
const eventName = this.getEventName(
|
|
1747
|
+
adapterParams,
|
|
1748
|
+
EventNames.PRODUCT_VIEWED
|
|
1749
|
+
);
|
|
1750
|
+
const baseEventData = {
|
|
1371
1751
|
product_id: event.productId,
|
|
1372
1752
|
product_name: event.productName,
|
|
1373
1753
|
price: event.price,
|
|
1374
1754
|
currency: event.currency || DEFAULT_CURRENCY,
|
|
1375
1755
|
category: event.category
|
|
1376
|
-
}
|
|
1756
|
+
};
|
|
1757
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseEventData);
|
|
1758
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1759
|
+
const enhancedEventData = this.mergeEventData(
|
|
1760
|
+
experimentParams,
|
|
1761
|
+
adapterParams
|
|
1762
|
+
);
|
|
1763
|
+
this.sdk?.track_event(eventName, enhancedEventData);
|
|
1377
1764
|
}
|
|
1378
1765
|
/**
|
|
1379
1766
|
* Track an add to cart event
|
|
1380
1767
|
* @param event The add to cart event
|
|
1768
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1381
1769
|
*/
|
|
1382
|
-
trackAddToCart(event) {
|
|
1770
|
+
trackAddToCart(event, adapterParams) {
|
|
1383
1771
|
const quantity = event.quantity ?? 1;
|
|
1384
|
-
this.
|
|
1772
|
+
const eventName = this.getEventName(
|
|
1773
|
+
adapterParams,
|
|
1774
|
+
EventNames.ADDED_TO_CART
|
|
1775
|
+
);
|
|
1776
|
+
const baseEventData = {
|
|
1385
1777
|
product_id: event.productId,
|
|
1386
1778
|
product_name: event.productName,
|
|
1387
1779
|
price: event.price,
|
|
@@ -1389,14 +1781,26 @@ var MoengageAdapter = class extends BaseAdapter {
|
|
|
1389
1781
|
quantity,
|
|
1390
1782
|
variant: event.variant,
|
|
1391
1783
|
total_value: event.price * quantity
|
|
1392
|
-
}
|
|
1784
|
+
};
|
|
1785
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseEventData);
|
|
1786
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1787
|
+
const enhancedEventData = this.mergeEventData(
|
|
1788
|
+
experimentParams,
|
|
1789
|
+
adapterParams
|
|
1790
|
+
);
|
|
1791
|
+
this.sdk?.track_event(eventName, enhancedEventData);
|
|
1393
1792
|
}
|
|
1394
1793
|
/**
|
|
1395
1794
|
* Track a remove from cart event
|
|
1396
1795
|
* @param event The remove from cart event
|
|
1796
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1397
1797
|
*/
|
|
1398
|
-
trackRemoveFromCart(event) {
|
|
1399
|
-
this.
|
|
1798
|
+
trackRemoveFromCart(event, adapterParams) {
|
|
1799
|
+
const eventName = this.getEventName(
|
|
1800
|
+
adapterParams,
|
|
1801
|
+
EventNames.REMOVED_FROM_CART
|
|
1802
|
+
);
|
|
1803
|
+
const baseEventData = {
|
|
1400
1804
|
product_id: event.productId,
|
|
1401
1805
|
product_name: event.productName,
|
|
1402
1806
|
price: event.price,
|
|
@@ -1404,14 +1808,26 @@ var MoengageAdapter = class extends BaseAdapter {
|
|
|
1404
1808
|
quantity: event.quantity,
|
|
1405
1809
|
variant: event.variant,
|
|
1406
1810
|
total_value: event.price * event.quantity
|
|
1407
|
-
}
|
|
1811
|
+
};
|
|
1812
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseEventData);
|
|
1813
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1814
|
+
const enhancedEventData = this.mergeEventData(
|
|
1815
|
+
experimentParams,
|
|
1816
|
+
adapterParams
|
|
1817
|
+
);
|
|
1818
|
+
this.sdk?.track_event(eventName, enhancedEventData);
|
|
1408
1819
|
}
|
|
1409
1820
|
/**
|
|
1410
1821
|
* Track a checkout started event
|
|
1411
1822
|
* @param event The checkout started event
|
|
1823
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1412
1824
|
*/
|
|
1413
|
-
trackCheckoutStarted(event) {
|
|
1414
|
-
this.
|
|
1825
|
+
trackCheckoutStarted(event, adapterParams) {
|
|
1826
|
+
const eventName = this.getEventName(
|
|
1827
|
+
adapterParams,
|
|
1828
|
+
EventNames.CHECKOUT_STARTED
|
|
1829
|
+
);
|
|
1830
|
+
const baseEventData = {
|
|
1415
1831
|
cart_value: event.cartValue,
|
|
1416
1832
|
currency: event.currency || DEFAULT_CURRENCY,
|
|
1417
1833
|
item_count: event.itemCount,
|
|
@@ -1422,14 +1838,26 @@ var MoengageAdapter = class extends BaseAdapter {
|
|
|
1422
1838
|
quantity: item.quantity,
|
|
1423
1839
|
variant: item.variant
|
|
1424
1840
|
}))
|
|
1425
|
-
}
|
|
1841
|
+
};
|
|
1842
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseEventData);
|
|
1843
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1844
|
+
const enhancedEventData = this.mergeEventData(
|
|
1845
|
+
experimentParams,
|
|
1846
|
+
adapterParams
|
|
1847
|
+
);
|
|
1848
|
+
this.sdk?.track_event(eventName, enhancedEventData);
|
|
1426
1849
|
}
|
|
1427
1850
|
/**
|
|
1428
1851
|
* Track a checkout completed event
|
|
1429
1852
|
* @param event The checkout completed event
|
|
1853
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1430
1854
|
*/
|
|
1431
|
-
trackCheckoutCompleted(event) {
|
|
1432
|
-
this.
|
|
1855
|
+
trackCheckoutCompleted(event, adapterParams) {
|
|
1856
|
+
const eventName = this.getEventName(
|
|
1857
|
+
adapterParams,
|
|
1858
|
+
EventNames.PURCHASE_COMPLETED
|
|
1859
|
+
);
|
|
1860
|
+
const baseEventData = {
|
|
1433
1861
|
order_id: event.orderId,
|
|
1434
1862
|
cart_value: event.cartValue,
|
|
1435
1863
|
currency: event.currency || DEFAULT_CURRENCY,
|
|
@@ -1441,28 +1869,56 @@ var MoengageAdapter = class extends BaseAdapter {
|
|
|
1441
1869
|
quantity: item.quantity,
|
|
1442
1870
|
variant: item.variant
|
|
1443
1871
|
}))
|
|
1444
|
-
}
|
|
1872
|
+
};
|
|
1873
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseEventData);
|
|
1874
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1875
|
+
const enhancedEventData = this.mergeEventData(
|
|
1876
|
+
experimentParams,
|
|
1877
|
+
adapterParams
|
|
1878
|
+
);
|
|
1879
|
+
this.sdk?.track_event(eventName, enhancedEventData);
|
|
1445
1880
|
}
|
|
1446
1881
|
/**
|
|
1447
1882
|
* Track a search event
|
|
1448
1883
|
* @param event The search event
|
|
1884
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1449
1885
|
*/
|
|
1450
|
-
trackSearch(event) {
|
|
1451
|
-
this.
|
|
1886
|
+
trackSearch(event, adapterParams) {
|
|
1887
|
+
const eventName = this.getEventName(adapterParams, EventNames.SEARCH);
|
|
1888
|
+
const baseEventData = {
|
|
1452
1889
|
search_term: event.searchTerm,
|
|
1453
1890
|
results_count: event.resultsCount
|
|
1454
|
-
}
|
|
1891
|
+
};
|
|
1892
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseEventData);
|
|
1893
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1894
|
+
const enhancedEventData = this.mergeEventData(
|
|
1895
|
+
experimentParams,
|
|
1896
|
+
adapterParams
|
|
1897
|
+
);
|
|
1898
|
+
this.sdk?.track_event(eventName, enhancedEventData);
|
|
1455
1899
|
}
|
|
1456
1900
|
/**
|
|
1457
1901
|
* Track a user signup event
|
|
1458
1902
|
* @param event The user signup event
|
|
1903
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1459
1904
|
*/
|
|
1460
|
-
trackUserSignup(event) {
|
|
1461
|
-
this.
|
|
1905
|
+
trackUserSignup(event, adapterParams) {
|
|
1906
|
+
const eventName = this.getEventName(
|
|
1907
|
+
adapterParams,
|
|
1908
|
+
EventNames.USER_SIGNED_UP
|
|
1909
|
+
);
|
|
1910
|
+
const baseEventData = {
|
|
1462
1911
|
user_id: event.userId,
|
|
1463
1912
|
method: event.method,
|
|
1464
1913
|
success: event.success
|
|
1465
|
-
}
|
|
1914
|
+
};
|
|
1915
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseEventData);
|
|
1916
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1917
|
+
const enhancedEventData = this.mergeEventData(
|
|
1918
|
+
experimentParams,
|
|
1919
|
+
adapterParams
|
|
1920
|
+
);
|
|
1921
|
+
this.sdk?.track_event(eventName, enhancedEventData);
|
|
1466
1922
|
if (event.userId && this.getConfig("enableUserIdentification", true)) {
|
|
1467
1923
|
this.sdk?.add_unique_user_id(event.userId);
|
|
1468
1924
|
}
|
|
@@ -1470,13 +1926,25 @@ var MoengageAdapter = class extends BaseAdapter {
|
|
|
1470
1926
|
/**
|
|
1471
1927
|
* Track a user login event
|
|
1472
1928
|
* @param event The user login event
|
|
1929
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1473
1930
|
*/
|
|
1474
|
-
trackUserLogin(event) {
|
|
1475
|
-
this.
|
|
1931
|
+
trackUserLogin(event, adapterParams) {
|
|
1932
|
+
const eventName = this.getEventName(
|
|
1933
|
+
adapterParams,
|
|
1934
|
+
EventNames.USER_LOGGED_IN
|
|
1935
|
+
);
|
|
1936
|
+
const baseEventData = {
|
|
1476
1937
|
user_id: event.userId,
|
|
1477
1938
|
method: event.method,
|
|
1478
1939
|
success: event.success
|
|
1479
|
-
}
|
|
1940
|
+
};
|
|
1941
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseEventData);
|
|
1942
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
1943
|
+
const enhancedEventData = this.mergeEventData(
|
|
1944
|
+
experimentParams,
|
|
1945
|
+
adapterParams
|
|
1946
|
+
);
|
|
1947
|
+
this.sdk?.track_event(eventName, enhancedEventData);
|
|
1480
1948
|
if (event.userId && this.getConfig("enableUserIdentification", true)) {
|
|
1481
1949
|
this.sdk?.add_unique_user_id(event.userId);
|
|
1482
1950
|
}
|
|
@@ -1484,9 +1952,18 @@ var MoengageAdapter = class extends BaseAdapter {
|
|
|
1484
1952
|
/**
|
|
1485
1953
|
* Track a custom event
|
|
1486
1954
|
* @param event The custom event
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1955
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1956
|
+
*/
|
|
1957
|
+
trackCustomEvent(event, adapterParams) {
|
|
1958
|
+
const eventName = this.getEventName(adapterParams, event.name);
|
|
1959
|
+
const baseEventData = event.properties || {};
|
|
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);
|
|
1490
1967
|
}
|
|
1491
1968
|
/**
|
|
1492
1969
|
* Convert an event to MoenGage parameters
|
|
@@ -1573,8 +2050,9 @@ var PostHogAdapter = class extends BaseAdapter {
|
|
|
1573
2050
|
/**
|
|
1574
2051
|
* Track an event with PostHog
|
|
1575
2052
|
* @param event The event to track
|
|
2053
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1576
2054
|
*/
|
|
1577
|
-
async trackEvent(event) {
|
|
2055
|
+
async trackEvent(event, adapterParams) {
|
|
1578
2056
|
if (!this.initialized || typeof window === "undefined" || !window.posthog) {
|
|
1579
2057
|
this.logger.warn(
|
|
1580
2058
|
"Cannot track event, adapter not initialized or posthog not available",
|
|
@@ -1590,74 +2068,84 @@ var PostHogAdapter = class extends BaseAdapter {
|
|
|
1590
2068
|
this.logger.debug("Tracking event", { eventType: event.type });
|
|
1591
2069
|
switch (event.type) {
|
|
1592
2070
|
case "page_view" /* PAGE_VIEW */:
|
|
1593
|
-
this.trackPageView(event);
|
|
2071
|
+
this.trackPageView(event, adapterParams);
|
|
1594
2072
|
break;
|
|
1595
2073
|
case "product_view" /* PRODUCT_VIEW */:
|
|
1596
|
-
this.trackProductView(event);
|
|
2074
|
+
this.trackProductView(event, adapterParams);
|
|
1597
2075
|
break;
|
|
1598
2076
|
case "add_to_cart" /* ADD_TO_CART */:
|
|
1599
|
-
this.trackAddToCart(event);
|
|
2077
|
+
this.trackAddToCart(event, adapterParams);
|
|
1600
2078
|
break;
|
|
1601
2079
|
case "checkout_started" /* CHECKOUT_STARTED */:
|
|
1602
|
-
this.trackCheckoutStarted(event);
|
|
2080
|
+
this.trackCheckoutStarted(event, adapterParams);
|
|
1603
2081
|
break;
|
|
1604
2082
|
case "checkout_completed" /* CHECKOUT_COMPLETED */:
|
|
1605
|
-
this.trackCheckoutCompleted(event);
|
|
2083
|
+
this.trackCheckoutCompleted(event, adapterParams);
|
|
1606
2084
|
break;
|
|
1607
2085
|
case "add_payment_info" /* ADD_PAYMENT_INFO */:
|
|
1608
|
-
this.trackAddPaymentInfo(event);
|
|
2086
|
+
this.trackAddPaymentInfo(event, adapterParams);
|
|
1609
2087
|
break;
|
|
1610
2088
|
case "search" /* SEARCH */:
|
|
1611
|
-
this.trackSearch(event);
|
|
2089
|
+
this.trackSearch(event, adapterParams);
|
|
1612
2090
|
break;
|
|
1613
2091
|
default:
|
|
1614
|
-
const
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
|
|
2092
|
+
const eventName = this.getEventName(adapterParams, event.type);
|
|
2093
|
+
const baseParams = this.eventToParams(event);
|
|
2094
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
2095
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
2096
|
+
const enhancedParams = this.mergeEventData(
|
|
2097
|
+
experimentParams,
|
|
2098
|
+
adapterParams
|
|
1618
2099
|
);
|
|
2100
|
+
window.posthog?.capture(eventName, enhancedParams);
|
|
1619
2101
|
break;
|
|
1620
2102
|
}
|
|
1621
2103
|
}
|
|
1622
2104
|
/**
|
|
1623
2105
|
* Track a page view event
|
|
1624
2106
|
* @param event The page view event
|
|
2107
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1625
2108
|
*/
|
|
1626
|
-
trackPageView(event) {
|
|
1627
|
-
const
|
|
2109
|
+
trackPageView(event, adapterParams) {
|
|
2110
|
+
const eventName = this.getEventName(adapterParams, "$pageview");
|
|
2111
|
+
const baseParams = {
|
|
1628
2112
|
path: event.path,
|
|
1629
2113
|
title: event.title,
|
|
1630
2114
|
referrer: event.referrer
|
|
1631
2115
|
};
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
);
|
|
2116
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
2117
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
2118
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
2119
|
+
window.posthog?.capture(eventName, enhancedParams);
|
|
1636
2120
|
}
|
|
1637
2121
|
/**
|
|
1638
2122
|
* Track a product view event
|
|
1639
2123
|
* @param event The product view event
|
|
2124
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1640
2125
|
*/
|
|
1641
|
-
trackProductView(event) {
|
|
1642
|
-
const
|
|
2126
|
+
trackProductView(event, adapterParams) {
|
|
2127
|
+
const eventName = this.getEventName(adapterParams, "product_viewed");
|
|
2128
|
+
const baseParams = {
|
|
1643
2129
|
product_id: event.productId,
|
|
1644
2130
|
product_name: event.productName,
|
|
1645
2131
|
category: event.category,
|
|
1646
2132
|
price: event.price,
|
|
1647
2133
|
currency: event.currency || "INR"
|
|
1648
2134
|
};
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
|
|
1652
|
-
);
|
|
2135
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
2136
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
2137
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
2138
|
+
window.posthog?.capture(eventName, enhancedParams);
|
|
1653
2139
|
}
|
|
1654
2140
|
/**
|
|
1655
2141
|
* Track an add to cart event
|
|
1656
2142
|
* @param event The add to cart event
|
|
2143
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1657
2144
|
*/
|
|
1658
|
-
trackAddToCart(event) {
|
|
2145
|
+
trackAddToCart(event, adapterParams) {
|
|
1659
2146
|
this.logger.debug("Handling ADD_TO_CART event", { event });
|
|
1660
|
-
const
|
|
2147
|
+
const eventName = this.getEventName(adapterParams, "add_to_cart");
|
|
2148
|
+
const baseParams = {
|
|
1661
2149
|
product_id: event.productId,
|
|
1662
2150
|
product_name: event.productName,
|
|
1663
2151
|
price: event.price,
|
|
@@ -1665,23 +2153,28 @@ var PostHogAdapter = class extends BaseAdapter {
|
|
|
1665
2153
|
quantity: event.quantity,
|
|
1666
2154
|
variant: event.variant
|
|
1667
2155
|
};
|
|
1668
|
-
this.
|
|
2156
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
2157
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
2158
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
2159
|
+
this.logger.debug("Sending to PostHog with params", {
|
|
2160
|
+
eventName,
|
|
2161
|
+
params: enhancedParams
|
|
2162
|
+
});
|
|
1669
2163
|
if (!window.posthog) {
|
|
1670
2164
|
this.logger.error("window.posthog is not available");
|
|
1671
2165
|
return;
|
|
1672
2166
|
}
|
|
1673
|
-
window.posthog.capture(
|
|
1674
|
-
"add_to_cart",
|
|
1675
|
-
this.enhanceWithAffiliateParams(params)
|
|
1676
|
-
);
|
|
2167
|
+
window.posthog.capture(eventName, enhancedParams);
|
|
1677
2168
|
this.logger.debug("Event sent to PostHog successfully");
|
|
1678
2169
|
}
|
|
1679
2170
|
/**
|
|
1680
2171
|
* Track a checkout started event
|
|
1681
2172
|
* @param event The checkout started event
|
|
2173
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1682
2174
|
*/
|
|
1683
|
-
trackCheckoutStarted(event) {
|
|
1684
|
-
const
|
|
2175
|
+
trackCheckoutStarted(event, adapterParams) {
|
|
2176
|
+
const eventName = this.getEventName(adapterParams, "checkout_started");
|
|
2177
|
+
const baseParams = {
|
|
1685
2178
|
cart_value: event.cartValue,
|
|
1686
2179
|
currency: event.currency || "INR",
|
|
1687
2180
|
item_count: event.itemCount,
|
|
@@ -1693,17 +2186,19 @@ var PostHogAdapter = class extends BaseAdapter {
|
|
|
1693
2186
|
variant: item.variant
|
|
1694
2187
|
}))
|
|
1695
2188
|
};
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
);
|
|
2189
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
2190
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
2191
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
2192
|
+
window.posthog?.capture(eventName, enhancedParams);
|
|
1700
2193
|
}
|
|
1701
2194
|
/**
|
|
1702
2195
|
* Track a checkout completed event
|
|
1703
2196
|
* @param event The checkout completed event
|
|
2197
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1704
2198
|
*/
|
|
1705
|
-
trackCheckoutCompleted(event) {
|
|
1706
|
-
const
|
|
2199
|
+
trackCheckoutCompleted(event, adapterParams) {
|
|
2200
|
+
const eventName = this.getEventName(adapterParams, "purchase");
|
|
2201
|
+
const baseParams = {
|
|
1707
2202
|
order_id: event.orderId,
|
|
1708
2203
|
cart_value: event.cartValue,
|
|
1709
2204
|
currency: event.currency || "INR",
|
|
@@ -1716,29 +2211,36 @@ var PostHogAdapter = class extends BaseAdapter {
|
|
|
1716
2211
|
variant: item.variant
|
|
1717
2212
|
}))
|
|
1718
2213
|
};
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
);
|
|
2214
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
2215
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
2216
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
2217
|
+
window.posthog?.capture(eventName, enhancedParams);
|
|
1723
2218
|
}
|
|
1724
2219
|
/**
|
|
1725
2220
|
* Track a search event
|
|
1726
2221
|
* @param event The search event
|
|
2222
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1727
2223
|
*/
|
|
1728
|
-
trackSearch(event) {
|
|
1729
|
-
const
|
|
2224
|
+
trackSearch(event, adapterParams) {
|
|
2225
|
+
const eventName = this.getEventName(adapterParams, "search");
|
|
2226
|
+
const baseParams = {
|
|
1730
2227
|
search_term: event.searchTerm,
|
|
1731
2228
|
results_count: event.resultsCount,
|
|
1732
2229
|
content_ids: event.content_ids
|
|
1733
2230
|
};
|
|
1734
|
-
|
|
2231
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
2232
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
2233
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
2234
|
+
window.posthog?.capture(eventName, enhancedParams);
|
|
1735
2235
|
}
|
|
1736
2236
|
/**
|
|
1737
2237
|
* Track an add payment info event
|
|
1738
2238
|
* @param event The add payment info event
|
|
2239
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
1739
2240
|
*/
|
|
1740
|
-
trackAddPaymentInfo(event) {
|
|
1741
|
-
const
|
|
2241
|
+
trackAddPaymentInfo(event, adapterParams) {
|
|
2242
|
+
const eventName = this.getEventName(adapterParams, "add_payment_info");
|
|
2243
|
+
const baseParams = {
|
|
1742
2244
|
cart_value: event.cartValue,
|
|
1743
2245
|
currency: event.currency || "INR",
|
|
1744
2246
|
payment_type: event.paymentType,
|
|
@@ -1751,10 +2253,10 @@ var PostHogAdapter = class extends BaseAdapter {
|
|
|
1751
2253
|
variant: item.variant
|
|
1752
2254
|
}))
|
|
1753
2255
|
};
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
);
|
|
2256
|
+
const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
|
|
2257
|
+
const experimentParams = this.enhanceWithExperimentParams(affiliateParams);
|
|
2258
|
+
const enhancedParams = this.mergeEventData(experimentParams, adapterParams);
|
|
2259
|
+
window.posthog?.capture(eventName, enhancedParams);
|
|
1758
2260
|
}
|
|
1759
2261
|
/**
|
|
1760
2262
|
* Convert an event to PostHog parameters
|
|
@@ -1873,43 +2375,62 @@ var ShopifyAdapter = class extends BaseAdapter {
|
|
|
1873
2375
|
shopId: `gid://shopify/Shop/${this.shopId}`,
|
|
1874
2376
|
currency: this.currency,
|
|
1875
2377
|
acceptedLanguage: DEFAULT_LANGUAGE,
|
|
1876
|
-
...this.enhanceWithAffiliateParams({})
|
|
2378
|
+
...this.enhanceWithExperimentParams(this.enhanceWithAffiliateParams({}))
|
|
1877
2379
|
};
|
|
1878
2380
|
}
|
|
1879
2381
|
/**
|
|
1880
2382
|
* Track an event using Shopify Analytics
|
|
1881
2383
|
*/
|
|
1882
|
-
async trackEvent(event) {
|
|
2384
|
+
async trackEvent(event, adapterParams) {
|
|
1883
2385
|
if (!this.initialized || typeof window === "undefined") {
|
|
1884
2386
|
this.logger.warn(
|
|
1885
2387
|
"Shopify Analytics not initialized or not in browser environment"
|
|
1886
2388
|
);
|
|
1887
2389
|
return;
|
|
1888
2390
|
}
|
|
2391
|
+
const params = this.getAdapterParams(adapterParams);
|
|
2392
|
+
const customEventName = this.getEventName(params, event.type);
|
|
1889
2393
|
this.logger.debug("Processing Shopify Analytics event", {
|
|
1890
2394
|
eventType: event.type,
|
|
1891
|
-
|
|
2395
|
+
customEventName,
|
|
2396
|
+
eventData: event,
|
|
2397
|
+
adapterParams: params
|
|
1892
2398
|
});
|
|
2399
|
+
const affiliateParams = this.enhanceWithAffiliateParams(event);
|
|
2400
|
+
const enhancedEvent = this.enhanceWithExperimentParams(affiliateParams);
|
|
1893
2401
|
try {
|
|
1894
2402
|
switch (event.type) {
|
|
1895
2403
|
case "page_view" /* PAGE_VIEW */:
|
|
1896
|
-
this.
|
|
1897
|
-
this.
|
|
2404
|
+
const pageViewPayload = this.mergeEventData(enhancedEvent, params);
|
|
2405
|
+
this.sendPageView(import_hydrogen_react.AnalyticsEventName.PAGE_VIEW, pageViewPayload);
|
|
2406
|
+
this.logger.debug("Sent PAGE_VIEW event to Shopify Analytics", {
|
|
2407
|
+
payload: pageViewPayload
|
|
2408
|
+
});
|
|
1898
2409
|
break;
|
|
1899
2410
|
case "view_content" /* VIEW_CONTENT */:
|
|
1900
|
-
this.
|
|
1901
|
-
this.
|
|
2411
|
+
const viewContentPayload = this.mergeEventData(enhancedEvent, params);
|
|
2412
|
+
this.sendPageView(
|
|
2413
|
+
import_hydrogen_react.AnalyticsEventName.PRODUCT_VIEW,
|
|
2414
|
+
viewContentPayload
|
|
2415
|
+
);
|
|
2416
|
+
this.logger.debug("Sent PRODUCT_VIEW event to Shopify Analytics", {
|
|
2417
|
+
payload: viewContentPayload
|
|
2418
|
+
});
|
|
1902
2419
|
break;
|
|
1903
2420
|
case "add_to_cart" /* ADD_TO_CART */:
|
|
1904
|
-
this.
|
|
2421
|
+
const addToCartPayload = this.mergeEventData(enhancedEvent, params);
|
|
2422
|
+
this.trackAddToCart(addToCartPayload);
|
|
1905
2423
|
break;
|
|
1906
2424
|
case "checkout_started" /* CHECKOUT_STARTED */:
|
|
1907
2425
|
case "begin_checkout" /* BEGIN_CHECKOUT */:
|
|
1908
|
-
this.
|
|
1909
|
-
pageType: "checkout"
|
|
1910
|
-
|
|
2426
|
+
const checkoutPayload = this.mergeEventData(
|
|
2427
|
+
{ ...enhancedEvent, pageType: "checkout" },
|
|
2428
|
+
params
|
|
2429
|
+
);
|
|
2430
|
+
this.sendPageView(import_hydrogen_react.AnalyticsEventName.PAGE_VIEW, checkoutPayload);
|
|
1911
2431
|
this.logger.debug(
|
|
1912
|
-
"Sent checkout PAGE_VIEW event to Shopify Analytics"
|
|
2432
|
+
"Sent checkout PAGE_VIEW event to Shopify Analytics",
|
|
2433
|
+
{ payload: checkoutPayload }
|
|
1913
2434
|
);
|
|
1914
2435
|
break;
|
|
1915
2436
|
default:
|
|
@@ -2035,8 +2556,10 @@ var KwikPassAdapter = class extends BaseAdapter {
|
|
|
2035
2556
|
}
|
|
2036
2557
|
/**
|
|
2037
2558
|
* Track an event using KwikPass
|
|
2559
|
+
* @param event The event to track
|
|
2560
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
2038
2561
|
*/
|
|
2039
|
-
async trackEvent(event) {
|
|
2562
|
+
async trackEvent(event, adapterParams) {
|
|
2040
2563
|
if (!this.initialized || typeof window === "undefined") {
|
|
2041
2564
|
this.logger.warn(
|
|
2042
2565
|
"KwikPass adapter not initialized or not in browser environment"
|
|
@@ -2049,18 +2572,19 @@ var KwikPassAdapter = class extends BaseAdapter {
|
|
|
2049
2572
|
});
|
|
2050
2573
|
return;
|
|
2051
2574
|
}
|
|
2575
|
+
const affiliateParams = this.enhanceWithAffiliateParams(event);
|
|
2576
|
+
const enhancedEvent = this.enhanceWithExperimentParams(affiliateParams);
|
|
2052
2577
|
try {
|
|
2053
2578
|
this.logger.debug("Processing event", { eventType: event.type });
|
|
2054
|
-
const enhancedEvent = this.enhanceWithAffiliateParams(event);
|
|
2055
2579
|
switch (event.type) {
|
|
2056
2580
|
case "product_view" /* PRODUCT_VIEW */:
|
|
2057
|
-
this.trackProductView(enhancedEvent);
|
|
2581
|
+
this.trackProductView(enhancedEvent, adapterParams);
|
|
2058
2582
|
break;
|
|
2059
2583
|
case "collection_view" /* COLLECTION_VIEW */:
|
|
2060
|
-
this.trackCollectionView(enhancedEvent);
|
|
2584
|
+
this.trackCollectionView(enhancedEvent, adapterParams);
|
|
2061
2585
|
break;
|
|
2062
2586
|
case "page_view" /* PAGE_VIEW */:
|
|
2063
|
-
this.trackPageView(enhancedEvent);
|
|
2587
|
+
this.trackPageView(enhancedEvent, adapterParams);
|
|
2064
2588
|
break;
|
|
2065
2589
|
default:
|
|
2066
2590
|
this.logger.debug("Event not supported", { eventType: event.type });
|
|
@@ -2075,55 +2599,71 @@ var KwikPassAdapter = class extends BaseAdapter {
|
|
|
2075
2599
|
/**
|
|
2076
2600
|
* Send event to KwikPass platform
|
|
2077
2601
|
*/
|
|
2078
|
-
sendKwikPassEvent(type, eventData) {
|
|
2079
|
-
this.
|
|
2602
|
+
sendKwikPassEvent(type, eventData, adapterParams) {
|
|
2603
|
+
const customEventType = this.getEventName(adapterParams, type);
|
|
2604
|
+
const enhancedEventData = this.mergeEventData(eventData, adapterParams);
|
|
2605
|
+
this.logger.debug(`Sending ${customEventType}`, {
|
|
2606
|
+
eventData: enhancedEventData
|
|
2607
|
+
});
|
|
2080
2608
|
if (typeof window !== "undefined") {
|
|
2081
2609
|
const customEvent = new CustomEvent(`page_view_kp`, {
|
|
2082
2610
|
detail: {
|
|
2083
|
-
type,
|
|
2084
|
-
detail:
|
|
2611
|
+
type: customEventType,
|
|
2612
|
+
detail: enhancedEventData
|
|
2085
2613
|
}
|
|
2086
2614
|
});
|
|
2087
2615
|
window.dispatchEvent(customEvent);
|
|
2088
|
-
this.logger.debug(`${
|
|
2616
|
+
this.logger.debug(`${customEventType} sent successfully`);
|
|
2089
2617
|
}
|
|
2090
2618
|
}
|
|
2091
2619
|
/**
|
|
2092
|
-
* Track
|
|
2620
|
+
* Track collection view event
|
|
2093
2621
|
*/
|
|
2094
|
-
trackCollectionView(event) {
|
|
2095
|
-
this.sendKwikPassEvent(
|
|
2096
|
-
|
|
2097
|
-
|
|
2098
|
-
|
|
2099
|
-
|
|
2100
|
-
|
|
2101
|
-
|
|
2102
|
-
|
|
2622
|
+
trackCollectionView(event, adapterParams) {
|
|
2623
|
+
this.sendKwikPassEvent(
|
|
2624
|
+
"collection",
|
|
2625
|
+
{
|
|
2626
|
+
product_id: event.productId,
|
|
2627
|
+
product_name: event.productName,
|
|
2628
|
+
price: event.price,
|
|
2629
|
+
currency: event.currency,
|
|
2630
|
+
category: event.category,
|
|
2631
|
+
timestamp: event.timestamp || Date.now()
|
|
2632
|
+
},
|
|
2633
|
+
adapterParams
|
|
2634
|
+
);
|
|
2103
2635
|
}
|
|
2104
2636
|
/**
|
|
2105
|
-
* Track
|
|
2637
|
+
* Track product view event
|
|
2106
2638
|
*/
|
|
2107
|
-
trackProductView(event) {
|
|
2108
|
-
this.sendKwikPassEvent(
|
|
2109
|
-
|
|
2110
|
-
|
|
2111
|
-
|
|
2112
|
-
|
|
2113
|
-
|
|
2114
|
-
|
|
2115
|
-
|
|
2639
|
+
trackProductView(event, adapterParams) {
|
|
2640
|
+
this.sendKwikPassEvent(
|
|
2641
|
+
"product",
|
|
2642
|
+
{
|
|
2643
|
+
product_id: event.productId,
|
|
2644
|
+
product_name: event.productName,
|
|
2645
|
+
price: event.price,
|
|
2646
|
+
currency: event.currency,
|
|
2647
|
+
category: event.category,
|
|
2648
|
+
timestamp: event.timestamp || Date.now()
|
|
2649
|
+
},
|
|
2650
|
+
adapterParams
|
|
2651
|
+
);
|
|
2116
2652
|
}
|
|
2117
2653
|
/**
|
|
2118
2654
|
* Track page view event
|
|
2119
2655
|
*/
|
|
2120
|
-
trackPageView(event) {
|
|
2121
|
-
this.sendKwikPassEvent(
|
|
2122
|
-
|
|
2123
|
-
|
|
2124
|
-
|
|
2125
|
-
|
|
2126
|
-
|
|
2656
|
+
trackPageView(event, adapterParams) {
|
|
2657
|
+
this.sendKwikPassEvent(
|
|
2658
|
+
"other",
|
|
2659
|
+
{
|
|
2660
|
+
path: event.path,
|
|
2661
|
+
title: event.title,
|
|
2662
|
+
referrer: event.referrer,
|
|
2663
|
+
timestamp: event.timestamp || Date.now()
|
|
2664
|
+
},
|
|
2665
|
+
adapterParams
|
|
2666
|
+
);
|
|
2127
2667
|
}
|
|
2128
2668
|
};
|
|
2129
2669
|
|
|
@@ -2157,8 +2697,10 @@ var KwikCheckoutAdapter = class extends BaseAdapter {
|
|
|
2157
2697
|
}
|
|
2158
2698
|
/**
|
|
2159
2699
|
* Track an event using GoKwik
|
|
2700
|
+
* @param event The event to track
|
|
2701
|
+
* @param adapterParams Optional adapter-specific parameters
|
|
2160
2702
|
*/
|
|
2161
|
-
async trackEvent(event) {
|
|
2703
|
+
async trackEvent(event, adapterParams) {
|
|
2162
2704
|
if (!this.initialized || typeof window === "undefined") {
|
|
2163
2705
|
this.logger.warn(
|
|
2164
2706
|
"GoKwik adapter not initialized or not in browser environment"
|
|
@@ -2167,49 +2709,50 @@ var KwikCheckoutAdapter = class extends BaseAdapter {
|
|
|
2167
2709
|
}
|
|
2168
2710
|
try {
|
|
2169
2711
|
this.logger.debug("Processing event", { eventType: event.type });
|
|
2170
|
-
const
|
|
2712
|
+
const affiliateEnhanced = this.enhanceWithAffiliateParams(event);
|
|
2713
|
+
const enhancedEvent = this.enhanceWithExperimentParams(affiliateEnhanced);
|
|
2171
2714
|
switch (event.type) {
|
|
2172
2715
|
case "started_checkout_gk" /* STARTED_CHECKOUT_GK */:
|
|
2173
|
-
this.trackStartedCheckoutGK(enhancedEvent);
|
|
2716
|
+
this.trackStartedCheckoutGK(enhancedEvent, adapterParams);
|
|
2174
2717
|
break;
|
|
2175
2718
|
case "mobile_added_gk" /* MOBILE_ADDED_GK */:
|
|
2176
|
-
this.trackMobileAddedGK(enhancedEvent);
|
|
2719
|
+
this.trackMobileAddedGK(enhancedEvent, adapterParams);
|
|
2177
2720
|
break;
|
|
2178
2721
|
case "address_selected_gk" /* ADDRESS_SELECTED_GK */:
|
|
2179
|
-
this.trackAddressSelectedGK(enhancedEvent);
|
|
2722
|
+
this.trackAddressSelectedGK(enhancedEvent, adapterParams);
|
|
2180
2723
|
break;
|
|
2181
2724
|
case "address_completed_gk" /* ADDRESS_COMPLETED_GK */:
|
|
2182
|
-
this.trackAddressCompletedGK(enhancedEvent);
|
|
2725
|
+
this.trackAddressCompletedGK(enhancedEvent, adapterParams);
|
|
2183
2726
|
break;
|
|
2184
2727
|
case "address_added_gk" /* ADDRESS_ADDED_GK */:
|
|
2185
|
-
this.trackAddressAddedGK(enhancedEvent);
|
|
2728
|
+
this.trackAddressAddedGK(enhancedEvent, adapterParams);
|
|
2186
2729
|
break;
|
|
2187
2730
|
case "pin_code_added_gk" /* PIN_CODE_ADDED_GK */:
|
|
2188
|
-
this.trackPinCodeAddedGK(enhancedEvent);
|
|
2731
|
+
this.trackPinCodeAddedGK(enhancedEvent, adapterParams);
|
|
2189
2732
|
break;
|
|
2190
2733
|
case "payment_method_selected_gk" /* PAYMENT_METHOD_SELECTED_GK */:
|
|
2191
|
-
this.trackPaymentMethodSelectedGK(enhancedEvent);
|
|
2734
|
+
this.trackPaymentMethodSelectedGK(enhancedEvent, adapterParams);
|
|
2192
2735
|
break;
|
|
2193
2736
|
case "payment_completed_gk" /* PAYMENT_COMPLETED_GK */:
|
|
2194
|
-
this.trackPaymentCompletedGK(enhancedEvent);
|
|
2737
|
+
this.trackPaymentCompletedGK(enhancedEvent, adapterParams);
|
|
2195
2738
|
break;
|
|
2196
2739
|
case "order_success" /* ORDER_SUCCESS */:
|
|
2197
|
-
this.trackOrderSuccess(enhancedEvent);
|
|
2740
|
+
this.trackOrderSuccess(enhancedEvent, adapterParams);
|
|
2198
2741
|
break;
|
|
2199
2742
|
case "order_completed" /* ORDER_COMPLETED */:
|
|
2200
|
-
this.trackOrderCompleted(enhancedEvent);
|
|
2743
|
+
this.trackOrderCompleted(enhancedEvent, adapterParams);
|
|
2201
2744
|
break;
|
|
2202
2745
|
case "cart_viewed" /* CART_VIEWED */:
|
|
2203
|
-
this.trackCartViewed(enhancedEvent);
|
|
2746
|
+
this.trackCartViewed(enhancedEvent, adapterParams);
|
|
2204
2747
|
break;
|
|
2205
2748
|
case "checkout_started" /* CHECKOUT_STARTED */:
|
|
2206
|
-
this.trackCheckoutStarted(enhancedEvent);
|
|
2749
|
+
this.trackCheckoutStarted(enhancedEvent, adapterParams);
|
|
2207
2750
|
break;
|
|
2208
2751
|
case "checkout_completed" /* CHECKOUT_COMPLETED */:
|
|
2209
|
-
this.trackCheckoutCompleted(enhancedEvent);
|
|
2752
|
+
this.trackCheckoutCompleted(enhancedEvent, adapterParams);
|
|
2210
2753
|
break;
|
|
2211
2754
|
case "add_payment_info" /* ADD_PAYMENT_INFO */:
|
|
2212
|
-
this.trackAddPaymentInfo(enhancedEvent);
|
|
2755
|
+
this.trackAddPaymentInfo(enhancedEvent, adapterParams);
|
|
2213
2756
|
break;
|
|
2214
2757
|
default:
|
|
2215
2758
|
this.logger.debug("Event not supported", { eventType: event.type });
|
|
@@ -2224,171 +2767,233 @@ var KwikCheckoutAdapter = class extends BaseAdapter {
|
|
|
2224
2767
|
/**
|
|
2225
2768
|
* Send event to GoKwik platform
|
|
2226
2769
|
*/
|
|
2227
|
-
sendGoKwikEvent(eventName, eventData) {
|
|
2228
|
-
this.
|
|
2770
|
+
sendGoKwikEvent(eventName, eventData, adapterParams) {
|
|
2771
|
+
const customEventName = this.getEventName(adapterParams, eventName);
|
|
2772
|
+
const enhancedEventData = this.mergeEventData(eventData, adapterParams);
|
|
2773
|
+
this.logger.debug(`Sending ${customEventName}`, {
|
|
2774
|
+
eventData: enhancedEventData
|
|
2775
|
+
});
|
|
2229
2776
|
if (typeof window !== "undefined" && window.gokwikSdk) {
|
|
2230
2777
|
try {
|
|
2231
|
-
window.gokwikSdk.track?.(
|
|
2232
|
-
this.logger.debug(`${
|
|
2778
|
+
window.gokwikSdk.track?.(customEventName, enhancedEventData);
|
|
2779
|
+
this.logger.debug(`${customEventName} sent via SDK successfully`);
|
|
2233
2780
|
} catch (error) {
|
|
2234
2781
|
this.logger.error(
|
|
2235
|
-
`Error sending GoKwik event ${
|
|
2782
|
+
`Error sending GoKwik event ${customEventName} via SDK`,
|
|
2236
2783
|
error
|
|
2237
2784
|
);
|
|
2238
2785
|
}
|
|
2239
2786
|
} else {
|
|
2240
2787
|
if (typeof window !== "undefined") {
|
|
2241
|
-
const customEvent = new CustomEvent(`gokwik_${
|
|
2242
|
-
detail:
|
|
2788
|
+
const customEvent = new CustomEvent(`gokwik_${customEventName}`, {
|
|
2789
|
+
detail: enhancedEventData
|
|
2243
2790
|
});
|
|
2244
2791
|
window.dispatchEvent(customEvent);
|
|
2245
|
-
this.logger.debug(
|
|
2792
|
+
this.logger.debug(
|
|
2793
|
+
`${customEventName} sent via custom event successfully`
|
|
2794
|
+
);
|
|
2246
2795
|
}
|
|
2247
2796
|
}
|
|
2248
2797
|
}
|
|
2249
2798
|
/**
|
|
2250
2799
|
* Track started checkout GK event
|
|
2251
2800
|
*/
|
|
2252
|
-
trackStartedCheckoutGK(event) {
|
|
2253
|
-
this.sendGoKwikEvent(
|
|
2254
|
-
|
|
2255
|
-
|
|
2256
|
-
|
|
2257
|
-
|
|
2801
|
+
trackStartedCheckoutGK(event, adapterParams) {
|
|
2802
|
+
this.sendGoKwikEvent(
|
|
2803
|
+
"started_checkout",
|
|
2804
|
+
{
|
|
2805
|
+
cart_value: event.cartValue,
|
|
2806
|
+
currency: event.currency,
|
|
2807
|
+
timestamp: event.timestamp || Date.now()
|
|
2808
|
+
},
|
|
2809
|
+
adapterParams
|
|
2810
|
+
);
|
|
2258
2811
|
}
|
|
2259
2812
|
/**
|
|
2260
2813
|
* Track mobile added GK event
|
|
2261
2814
|
*/
|
|
2262
|
-
trackMobileAddedGK(event) {
|
|
2263
|
-
this.sendGoKwikEvent(
|
|
2264
|
-
|
|
2265
|
-
|
|
2266
|
-
|
|
2815
|
+
trackMobileAddedGK(event, adapterParams) {
|
|
2816
|
+
this.sendGoKwikEvent(
|
|
2817
|
+
"mobile_added",
|
|
2818
|
+
{
|
|
2819
|
+
mobile: event.mobile,
|
|
2820
|
+
timestamp: event.timestamp || Date.now()
|
|
2821
|
+
},
|
|
2822
|
+
adapterParams
|
|
2823
|
+
);
|
|
2267
2824
|
}
|
|
2268
2825
|
/**
|
|
2269
2826
|
* Track address selected GK event
|
|
2270
2827
|
*/
|
|
2271
|
-
trackAddressSelectedGK(event) {
|
|
2272
|
-
this.sendGoKwikEvent(
|
|
2273
|
-
|
|
2274
|
-
|
|
2275
|
-
|
|
2828
|
+
trackAddressSelectedGK(event, adapterParams) {
|
|
2829
|
+
this.sendGoKwikEvent(
|
|
2830
|
+
"address_selected",
|
|
2831
|
+
{
|
|
2832
|
+
address_id: event.addressId,
|
|
2833
|
+
timestamp: event.timestamp || Date.now()
|
|
2834
|
+
},
|
|
2835
|
+
adapterParams
|
|
2836
|
+
);
|
|
2276
2837
|
}
|
|
2277
2838
|
/**
|
|
2278
2839
|
* Track address completed GK event
|
|
2279
2840
|
*/
|
|
2280
|
-
trackAddressCompletedGK(event) {
|
|
2281
|
-
this.sendGoKwikEvent(
|
|
2282
|
-
|
|
2283
|
-
|
|
2284
|
-
|
|
2841
|
+
trackAddressCompletedGK(event, adapterParams) {
|
|
2842
|
+
this.sendGoKwikEvent(
|
|
2843
|
+
"address_completed",
|
|
2844
|
+
{
|
|
2845
|
+
address_id: event.addressId,
|
|
2846
|
+
timestamp: event.timestamp || Date.now()
|
|
2847
|
+
},
|
|
2848
|
+
adapterParams
|
|
2849
|
+
);
|
|
2285
2850
|
}
|
|
2286
2851
|
/**
|
|
2287
2852
|
* Track address added GK event
|
|
2288
2853
|
*/
|
|
2289
|
-
trackAddressAddedGK(event) {
|
|
2290
|
-
this.sendGoKwikEvent(
|
|
2291
|
-
|
|
2292
|
-
|
|
2293
|
-
|
|
2854
|
+
trackAddressAddedGK(event, adapterParams) {
|
|
2855
|
+
this.sendGoKwikEvent(
|
|
2856
|
+
"address_added",
|
|
2857
|
+
{
|
|
2858
|
+
address_id: event.addressId,
|
|
2859
|
+
timestamp: event.timestamp || Date.now()
|
|
2860
|
+
},
|
|
2861
|
+
adapterParams
|
|
2862
|
+
);
|
|
2294
2863
|
}
|
|
2295
2864
|
/**
|
|
2296
2865
|
* Track PIN code added GK event
|
|
2297
2866
|
*/
|
|
2298
|
-
trackPinCodeAddedGK(event) {
|
|
2299
|
-
this.sendGoKwikEvent(
|
|
2300
|
-
|
|
2301
|
-
|
|
2302
|
-
|
|
2867
|
+
trackPinCodeAddedGK(event, adapterParams) {
|
|
2868
|
+
this.sendGoKwikEvent(
|
|
2869
|
+
"pin_code_added",
|
|
2870
|
+
{
|
|
2871
|
+
pin_code: event.pinCode,
|
|
2872
|
+
timestamp: event.timestamp || Date.now()
|
|
2873
|
+
},
|
|
2874
|
+
adapterParams
|
|
2875
|
+
);
|
|
2303
2876
|
}
|
|
2304
2877
|
/**
|
|
2305
2878
|
* Track payment method selected GK event
|
|
2306
2879
|
*/
|
|
2307
|
-
trackPaymentMethodSelectedGK(event) {
|
|
2308
|
-
this.sendGoKwikEvent(
|
|
2309
|
-
|
|
2310
|
-
|
|
2311
|
-
|
|
2880
|
+
trackPaymentMethodSelectedGK(event, adapterParams) {
|
|
2881
|
+
this.sendGoKwikEvent(
|
|
2882
|
+
"payment_method_selected",
|
|
2883
|
+
{
|
|
2884
|
+
payment_method: event.paymentMethod,
|
|
2885
|
+
timestamp: event.timestamp || Date.now()
|
|
2886
|
+
},
|
|
2887
|
+
adapterParams
|
|
2888
|
+
);
|
|
2312
2889
|
}
|
|
2313
2890
|
/**
|
|
2314
2891
|
* Track payment completed GK event
|
|
2315
2892
|
*/
|
|
2316
|
-
trackPaymentCompletedGK(event) {
|
|
2317
|
-
this.sendGoKwikEvent(
|
|
2318
|
-
|
|
2319
|
-
|
|
2320
|
-
|
|
2321
|
-
|
|
2893
|
+
trackPaymentCompletedGK(event, adapterParams) {
|
|
2894
|
+
this.sendGoKwikEvent(
|
|
2895
|
+
"payment_completed",
|
|
2896
|
+
{
|
|
2897
|
+
amount: event.amount,
|
|
2898
|
+
currency: event.currency,
|
|
2899
|
+
timestamp: event.timestamp || Date.now()
|
|
2900
|
+
},
|
|
2901
|
+
adapterParams
|
|
2902
|
+
);
|
|
2322
2903
|
}
|
|
2323
2904
|
/**
|
|
2324
2905
|
* Track order success event
|
|
2325
2906
|
*/
|
|
2326
|
-
trackOrderSuccess(event) {
|
|
2327
|
-
this.sendGoKwikEvent(
|
|
2328
|
-
|
|
2329
|
-
|
|
2330
|
-
|
|
2331
|
-
|
|
2332
|
-
|
|
2907
|
+
trackOrderSuccess(event, adapterParams) {
|
|
2908
|
+
this.sendGoKwikEvent(
|
|
2909
|
+
"order_success",
|
|
2910
|
+
{
|
|
2911
|
+
order_id: event.orderId,
|
|
2912
|
+
amount: event.amount,
|
|
2913
|
+
currency: event.currency,
|
|
2914
|
+
timestamp: event.timestamp || Date.now()
|
|
2915
|
+
},
|
|
2916
|
+
adapterParams
|
|
2917
|
+
);
|
|
2333
2918
|
}
|
|
2334
2919
|
/**
|
|
2335
2920
|
* Track order completed event
|
|
2336
2921
|
*/
|
|
2337
|
-
trackOrderCompleted(event) {
|
|
2338
|
-
this.sendGoKwikEvent(
|
|
2339
|
-
|
|
2340
|
-
|
|
2341
|
-
|
|
2342
|
-
|
|
2343
|
-
|
|
2922
|
+
trackOrderCompleted(event, adapterParams) {
|
|
2923
|
+
this.sendGoKwikEvent(
|
|
2924
|
+
"order_completed",
|
|
2925
|
+
{
|
|
2926
|
+
order_id: event.orderId,
|
|
2927
|
+
amount: event.amount,
|
|
2928
|
+
currency: event.currency,
|
|
2929
|
+
timestamp: event.timestamp || Date.now()
|
|
2930
|
+
},
|
|
2931
|
+
adapterParams
|
|
2932
|
+
);
|
|
2344
2933
|
}
|
|
2345
2934
|
/**
|
|
2346
2935
|
* Track cart viewed event
|
|
2347
2936
|
*/
|
|
2348
|
-
trackCartViewed(event) {
|
|
2349
|
-
this.sendGoKwikEvent(
|
|
2350
|
-
|
|
2351
|
-
|
|
2352
|
-
|
|
2353
|
-
|
|
2937
|
+
trackCartViewed(event, adapterParams) {
|
|
2938
|
+
this.sendGoKwikEvent(
|
|
2939
|
+
"cart_viewed",
|
|
2940
|
+
{
|
|
2941
|
+
cart_id: event.cartId,
|
|
2942
|
+
products: event.products,
|
|
2943
|
+
timestamp: event.timestamp || Date.now()
|
|
2944
|
+
},
|
|
2945
|
+
adapterParams
|
|
2946
|
+
);
|
|
2354
2947
|
}
|
|
2355
2948
|
/**
|
|
2356
2949
|
* Track checkout started event
|
|
2357
2950
|
*/
|
|
2358
|
-
trackCheckoutStarted(event) {
|
|
2359
|
-
this.sendGoKwikEvent(
|
|
2360
|
-
|
|
2361
|
-
|
|
2362
|
-
|
|
2363
|
-
|
|
2364
|
-
|
|
2365
|
-
|
|
2951
|
+
trackCheckoutStarted(event, adapterParams) {
|
|
2952
|
+
this.sendGoKwikEvent(
|
|
2953
|
+
"checkout_started",
|
|
2954
|
+
{
|
|
2955
|
+
cart_value: event.cartValue,
|
|
2956
|
+
currency: event.currency,
|
|
2957
|
+
item_count: event.itemCount,
|
|
2958
|
+
items: event.items,
|
|
2959
|
+
timestamp: event.timestamp || Date.now()
|
|
2960
|
+
},
|
|
2961
|
+
adapterParams
|
|
2962
|
+
);
|
|
2366
2963
|
}
|
|
2367
2964
|
/**
|
|
2368
2965
|
* Track checkout completed event
|
|
2369
2966
|
*/
|
|
2370
|
-
trackCheckoutCompleted(event) {
|
|
2371
|
-
this.sendGoKwikEvent(
|
|
2372
|
-
|
|
2373
|
-
|
|
2374
|
-
|
|
2375
|
-
|
|
2376
|
-
|
|
2377
|
-
|
|
2378
|
-
|
|
2967
|
+
trackCheckoutCompleted(event, adapterParams) {
|
|
2968
|
+
this.sendGoKwikEvent(
|
|
2969
|
+
"checkout_completed",
|
|
2970
|
+
{
|
|
2971
|
+
order_id: event.orderId,
|
|
2972
|
+
cart_value: event.cartValue,
|
|
2973
|
+
currency: event.currency,
|
|
2974
|
+
item_count: event.itemCount,
|
|
2975
|
+
items: event.items,
|
|
2976
|
+
timestamp: event.timestamp || Date.now()
|
|
2977
|
+
},
|
|
2978
|
+
adapterParams
|
|
2979
|
+
);
|
|
2379
2980
|
}
|
|
2380
2981
|
/**
|
|
2381
2982
|
* Track add payment info event
|
|
2382
2983
|
*/
|
|
2383
|
-
trackAddPaymentInfo(event) {
|
|
2384
|
-
this.sendGoKwikEvent(
|
|
2385
|
-
|
|
2386
|
-
|
|
2387
|
-
|
|
2388
|
-
|
|
2389
|
-
|
|
2390
|
-
|
|
2391
|
-
|
|
2984
|
+
trackAddPaymentInfo(event, adapterParams) {
|
|
2985
|
+
this.sendGoKwikEvent(
|
|
2986
|
+
"add_payment_info",
|
|
2987
|
+
{
|
|
2988
|
+
cart_value: event.cartValue,
|
|
2989
|
+
currency: event.currency,
|
|
2990
|
+
item_count: event.itemCount,
|
|
2991
|
+
payment_type: event.paymentType,
|
|
2992
|
+
items: event.items,
|
|
2993
|
+
timestamp: event.timestamp || Date.now()
|
|
2994
|
+
},
|
|
2995
|
+
adapterParams
|
|
2996
|
+
);
|
|
2392
2997
|
}
|
|
2393
2998
|
};
|
|
2394
2999
|
// Annotate the CommonJS export names for ESM import in node:
|