@nommos/core 0.0.17 → 0.0.19
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/package.json +4 -2
- package/src/lib/constants.d.ts +8 -0
- package/src/lib/constants.js +11 -0
- package/src/lib/constants.js.map +1 -1
- package/src/lib/event-tracker.d.ts +7 -0
- package/src/lib/event-tracker.js +161 -7
- package/src/lib/event-tracker.js.map +1 -1
- package/src/lib/heatmap-tracker.d.ts +4 -0
- package/src/lib/heatmap-tracker.js +60 -1
- package/src/lib/heatmap-tracker.js.map +1 -1
- package/src/lib/session-tracker.d.ts +28 -4
- package/src/lib/session-tracker.js +91 -18
- package/src/lib/session-tracker.js.map +1 -1
- package/src/lib/types.d.ts +17 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nommos/core",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.19",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./src/index.js",
|
|
6
6
|
"module": "./src/index.js",
|
|
@@ -9,7 +9,9 @@
|
|
|
9
9
|
"tslib": "^2.3.0",
|
|
10
10
|
"@stomp/stompjs": "^7.2.1",
|
|
11
11
|
"rxjs": "~7.8.0",
|
|
12
|
-
"uuid": "^13.0.0"
|
|
12
|
+
"uuid": "^13.0.0",
|
|
13
|
+
"rrweb": "^2.0.0-alpha.4",
|
|
14
|
+
"html2canvas": "^1.4.1"
|
|
13
15
|
},
|
|
14
16
|
"engines": {
|
|
15
17
|
"node": ">=14 <23"
|
package/src/lib/constants.d.ts
CHANGED
|
@@ -11,5 +11,13 @@ export declare const ONE_DAY_MS: number;
|
|
|
11
11
|
export declare const ANALYTICS_QUEUE = "/queue/user.activity";
|
|
12
12
|
export declare const HEATMAP_QUEUE = "/queue/user-heatmap";
|
|
13
13
|
export declare const SESSION_RECORDING_QUEUE = "/queue/user.session.recording";
|
|
14
|
+
export declare const ACTIVE_AD_ID_KEY = "nommos:ad:id";
|
|
15
|
+
export declare const ACTIVE_PIXEL_ID_KEY = "nommos:pixel:id";
|
|
16
|
+
export declare const ACTIVE_EVENT_TYPE_KEY = "nommos:event:type";
|
|
17
|
+
export declare const ACTIVE_PLATFORM_KEY = "nommos:platform";
|
|
18
|
+
export declare const FB_PIXEL_SCRIPT_URL = "https://connect.facebook.net/en_US/fbevents.js";
|
|
19
|
+
export declare const SESSION_CHUNK_DURATION_MS = 120000;
|
|
20
|
+
export declare const SESSION_INACTIVITY_TIMEOUT_MS = 120000;
|
|
21
|
+
export declare const HEATMAP_FLUSH_INTERVAL_MS = 120000;
|
|
14
22
|
export declare const BROWSER_DEFS: UaDef[];
|
|
15
23
|
export declare const OS_DEFS: UaDef[];
|
package/src/lib/constants.js
CHANGED
|
@@ -10,6 +10,17 @@ export const ONE_DAY_MS = 24 * 60 * 60 * 1000;
|
|
|
10
10
|
export const ANALYTICS_QUEUE = '/queue/user.activity';
|
|
11
11
|
export const HEATMAP_QUEUE = '/queue/user-heatmap';
|
|
12
12
|
export const SESSION_RECORDING_QUEUE = '/queue/user.session.recording';
|
|
13
|
+
// Ad Tracking Constants
|
|
14
|
+
export const ACTIVE_AD_ID_KEY = 'nommos:ad:id';
|
|
15
|
+
export const ACTIVE_PIXEL_ID_KEY = 'nommos:pixel:id';
|
|
16
|
+
export const ACTIVE_EVENT_TYPE_KEY = 'nommos:event:type';
|
|
17
|
+
export const ACTIVE_PLATFORM_KEY = 'nommos:platform';
|
|
18
|
+
export const FB_PIXEL_SCRIPT_URL = 'https://connect.facebook.net/en_US/fbevents.js';
|
|
19
|
+
// Session Recording Settings
|
|
20
|
+
export const SESSION_CHUNK_DURATION_MS = 120000; // 2 minutes
|
|
21
|
+
export const SESSION_INACTIVITY_TIMEOUT_MS = 120000; // 2 minutes
|
|
22
|
+
// Heatmap Settings
|
|
23
|
+
export const HEATMAP_FLUSH_INTERVAL_MS = 120000; // 2 minutes
|
|
13
24
|
export const BROWSER_DEFS = [
|
|
14
25
|
[/Edg\/([\d.]+)/, 'Edge'],
|
|
15
26
|
[/OPR\/([\d.]+)/, 'Opera'],
|
package/src/lib/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/constants.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,6 +51,13 @@ export declare class EventTracker {
|
|
|
51
51
|
* @param currentUrl - URL of the page where the action was carried out by the user
|
|
52
52
|
*/
|
|
53
53
|
trackEvent(action: ANALYTICS_ACTION, state?: ANALYTICS_ACTION_STATE, data?: Record<string, unknown> | null, toggle?: boolean, selected?: boolean | null, userId?: string, currentUrl?: string): void;
|
|
54
|
+
/**
|
|
55
|
+
* Initializes ad tracking based on URL parameters and configuration.
|
|
56
|
+
* Handles platform detection, script loading, and attribution persistence.
|
|
57
|
+
*/
|
|
58
|
+
private initializeAdTracking;
|
|
59
|
+
private initFacebookPixel;
|
|
60
|
+
private fireAdPixelEvent;
|
|
54
61
|
private init;
|
|
55
62
|
private fetchConfig;
|
|
56
63
|
private applyConfig;
|
package/src/lib/event-tracker.js
CHANGED
|
@@ -6,7 +6,7 @@ import { HeatmapTracker } from './heatmap-tracker';
|
|
|
6
6
|
import { SessionTracker } from './session-tracker';
|
|
7
7
|
import { ANALYTICS_ACTION, ANALYTICS_ACTION_STATE } from './enums';
|
|
8
8
|
import { getQueryParams, userAgentInfo } from './utils';
|
|
9
|
-
import { CONFIG_ENDPOINT, CONFIG_CACHE_KEY, ONE_DAY_MS } from './constants';
|
|
9
|
+
import { CONFIG_ENDPOINT, CONFIG_CACHE_KEY, ONE_DAY_MS, ACTIVE_AD_ID_KEY, ACTIVE_PIXEL_ID_KEY, ACTIVE_EVENT_TYPE_KEY, ACTIVE_PLATFORM_KEY, FB_PIXEL_SCRIPT_URL, } from './constants';
|
|
10
10
|
export class EventTracker {
|
|
11
11
|
/**
|
|
12
12
|
* Creates a new analytics tracker instance and initializes the attribution
|
|
@@ -133,25 +133,159 @@ export class EventTracker {
|
|
|
133
133
|
console.log(eventTracked);
|
|
134
134
|
}
|
|
135
135
|
this.analyticsEvents.next(eventTracked);
|
|
136
|
+
// Fire ad platform pixel event if applicable
|
|
137
|
+
this.fireAdPixelEvent(action, state, data);
|
|
138
|
+
// Signal activity to session tracker to prevent inactivity timeout
|
|
139
|
+
this.sessionTracker?.onUserActivity();
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Initializes ad tracking based on URL parameters and configuration.
|
|
143
|
+
* Handles platform detection, script loading, and attribution persistence.
|
|
144
|
+
*/
|
|
145
|
+
initializeAdTracking() {
|
|
146
|
+
if (typeof window === 'undefined')
|
|
147
|
+
return;
|
|
148
|
+
const params = getQueryParams(window.location.href);
|
|
149
|
+
const fbclid = params['fbclid'];
|
|
150
|
+
const gclid = params['gclid'];
|
|
151
|
+
const ttclid = params['ttclid'];
|
|
152
|
+
const utmContent = params['utm_content'];
|
|
153
|
+
const hasNewClickId = !!(fbclid || gclid || ttclid);
|
|
154
|
+
if (hasNewClickId) {
|
|
155
|
+
// Clear previous attribution if a new click ID is detected
|
|
156
|
+
sessionStorage.removeItem(ACTIVE_AD_ID_KEY);
|
|
157
|
+
sessionStorage.removeItem(ACTIVE_PIXEL_ID_KEY);
|
|
158
|
+
sessionStorage.removeItem(ACTIVE_EVENT_TYPE_KEY);
|
|
159
|
+
sessionStorage.removeItem(ACTIVE_PLATFORM_KEY);
|
|
160
|
+
if (fbclid && this.cfg.ads_events?.facebook) {
|
|
161
|
+
this.initFacebookPixel(fbclid, utmContent);
|
|
162
|
+
}
|
|
163
|
+
// Google and TikTok initialization would go here in the future
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
// Restore from sessionStorage if no new click ID
|
|
167
|
+
const platform = sessionStorage.getItem(ACTIVE_PLATFORM_KEY);
|
|
168
|
+
if (platform === 'facebook' && this.cfg.ads_events?.facebook) {
|
|
169
|
+
this.initFacebookPixel(null, null, true);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
initFacebookPixel(fbclid, utmContent, restore = false) {
|
|
174
|
+
if (typeof window === 'undefined')
|
|
175
|
+
return;
|
|
176
|
+
const fbConfig = this.cfg.ads_events?.facebook;
|
|
177
|
+
if (!fbConfig)
|
|
178
|
+
return;
|
|
179
|
+
// Load FB script dynamically if not already present
|
|
180
|
+
if (!window.fbq) {
|
|
181
|
+
(function (f, b, e, v, n, t, s) {
|
|
182
|
+
if (f.fbq)
|
|
183
|
+
return;
|
|
184
|
+
n = f.fbq = function () {
|
|
185
|
+
n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments);
|
|
186
|
+
};
|
|
187
|
+
if (!f._fbq)
|
|
188
|
+
f._fbq = n;
|
|
189
|
+
n.push = n;
|
|
190
|
+
n.loaded = !0;
|
|
191
|
+
n.version = '2.0';
|
|
192
|
+
n.queue = [];
|
|
193
|
+
t = b.createElement(e);
|
|
194
|
+
t.async = !0;
|
|
195
|
+
t.src = v;
|
|
196
|
+
s = b.getElementsByTagName(e)[0];
|
|
197
|
+
s.parentNode.insertBefore(t, s);
|
|
198
|
+
})(window, document, 'script', FB_PIXEL_SCRIPT_URL);
|
|
199
|
+
}
|
|
200
|
+
const fbq = window.fbq;
|
|
201
|
+
// Initialize all unique pixels
|
|
202
|
+
const pixelIds = new Set(Object.values(fbConfig).map((ad) => ad.pixel_id));
|
|
203
|
+
pixelIds.forEach((id) => fbq('init', id));
|
|
204
|
+
if (!restore && utmContent && fbConfig[utmContent]) {
|
|
205
|
+
const ad = fbConfig[utmContent];
|
|
206
|
+
sessionStorage.setItem(ACTIVE_AD_ID_KEY, utmContent);
|
|
207
|
+
sessionStorage.setItem(ACTIVE_PIXEL_ID_KEY, ad.pixel_id);
|
|
208
|
+
sessionStorage.setItem(ACTIVE_EVENT_TYPE_KEY, ad.event_type);
|
|
209
|
+
sessionStorage.setItem(ACTIVE_PLATFORM_KEY, 'facebook');
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
fireAdPixelEvent(action, state, data) {
|
|
213
|
+
if (typeof window === 'undefined')
|
|
214
|
+
return;
|
|
215
|
+
const platform = sessionStorage.getItem(ACTIVE_PLATFORM_KEY);
|
|
216
|
+
const activePixelId = sessionStorage.getItem(ACTIVE_PIXEL_ID_KEY);
|
|
217
|
+
const activeEventType = sessionStorage.getItem(ACTIVE_EVENT_TYPE_KEY);
|
|
218
|
+
if (!platform || !activePixelId || !activeEventType)
|
|
219
|
+
return;
|
|
220
|
+
let fbEvent = activeEventType;
|
|
221
|
+
let internalAction = activeEventType;
|
|
222
|
+
// Handle mapping format: FB_EVENT:SDK_ACTION
|
|
223
|
+
if (activeEventType.includes(':')) {
|
|
224
|
+
const parts = activeEventType.split(':');
|
|
225
|
+
fbEvent = parts[0];
|
|
226
|
+
internalAction = parts[1];
|
|
227
|
+
}
|
|
228
|
+
// Only fire if the action matches the configured (or mapped) internal action
|
|
229
|
+
if (action === internalAction) {
|
|
230
|
+
if (platform === 'facebook' && window.fbq) {
|
|
231
|
+
// Standard Facebook events are fired directly by name.
|
|
232
|
+
// Custom events require the 'trackCustom' command.
|
|
233
|
+
const standardEvents = [
|
|
234
|
+
'AddPaymentInfo', 'AddToCart', 'AddToWishlist', 'CompleteRegistration',
|
|
235
|
+
'Contact', 'CustomizeProduct', 'Donate', 'FindLocation', 'InitiateCheckout',
|
|
236
|
+
'Lead', 'Purchase', 'Schedule', 'Search', 'StartTrial', 'SubmitApplication',
|
|
237
|
+
'Subscribe', 'ViewContent'
|
|
238
|
+
];
|
|
239
|
+
const isStandard = standardEvents.includes(fbEvent);
|
|
240
|
+
if (this.cfg.mode === 'dev') {
|
|
241
|
+
console.log(`[Nommos Tracker] Firing FB ${isStandard ? 'Standard' : 'Custom'} Event:`, fbEvent, 'for SDK action:', action);
|
|
242
|
+
}
|
|
243
|
+
if (isStandard) {
|
|
244
|
+
window.fbq('trackSingle', activePixelId, fbEvent, data || {});
|
|
245
|
+
}
|
|
246
|
+
else {
|
|
247
|
+
window.fbq('trackSingle', activePixelId, 'trackCustom', fbEvent, data || {});
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
136
251
|
}
|
|
137
252
|
init(cfg) {
|
|
138
253
|
if (cfg.token) {
|
|
254
|
+
if (this.cfg.mode === 'dev') {
|
|
255
|
+
console.log('[Nommos Tracker] Initializing with token:', cfg.token);
|
|
256
|
+
}
|
|
139
257
|
const ipFetch$ = this.da.fetchIp();
|
|
140
258
|
const configFetch$ = this.fetchConfig(cfg.token);
|
|
141
259
|
this.ipSubscription = forkJoin([ipFetch$, configFetch$]).subscribe(() => {
|
|
142
260
|
this.da.setLoadedIP();
|
|
261
|
+
if (this.cfg.mode === 'dev') {
|
|
262
|
+
console.log('[Nommos Tracker] Bootstrap complete. enableTracking:', this.cfg.enableTracking);
|
|
263
|
+
}
|
|
143
264
|
if (!this.cfg.enableTracking) {
|
|
144
265
|
return;
|
|
145
266
|
}
|
|
267
|
+
if (!this.cfg.enableTracking) {
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
270
|
+
// Initialize ad platform tracking (Facebook and future others)
|
|
271
|
+
this.initializeAdTracking();
|
|
146
272
|
// Initialize heatmap tracker (zero-config) if not already initialized
|
|
147
|
-
|
|
273
|
+
const heatmapEnabled = this.cfg.controls?.heatmap_tracking_enabled !== false;
|
|
274
|
+
if (!this.heatmapTracker && heatmapEnabled) {
|
|
148
275
|
const { channel } = userAgentInfo(navigator.userAgent || '');
|
|
276
|
+
if (this.cfg.mode === 'dev') {
|
|
277
|
+
console.log('[Nommos Tracker] Starting HeatmapTracker...');
|
|
278
|
+
}
|
|
149
279
|
this.heatmapTracker = new HeatmapTracker(this.ws, this.cfg, this.da.browserId, channel);
|
|
150
280
|
this.heatmapTracker.start();
|
|
151
281
|
}
|
|
152
282
|
// Initialize session recording (rrweb) if enabled
|
|
153
|
-
|
|
283
|
+
const sessionEnabled = this.cfg.controls?.session_tracking_enabled !== false;
|
|
284
|
+
if (!this.sessionTracker && sessionEnabled) {
|
|
154
285
|
const { channel } = userAgentInfo(navigator.userAgent || '');
|
|
286
|
+
if (this.cfg.mode === 'dev') {
|
|
287
|
+
console.log('[Nommos Tracker] Starting SessionTracker...');
|
|
288
|
+
}
|
|
155
289
|
this.sessionTracker = new SessionTracker(this.ws, this.cfg, this.da.browserId, channel);
|
|
156
290
|
this.sessionTracker.start();
|
|
157
291
|
}
|
|
@@ -171,13 +305,13 @@ export class EventTracker {
|
|
|
171
305
|
if (this.ipSubscription) {
|
|
172
306
|
this.ipSubscription.unsubscribe();
|
|
173
307
|
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
308
|
+
this.eventSubscription = this.analyticsEvents$.subscribe((track) => {
|
|
309
|
+
this.ws.publishAnalyticsMessage(track);
|
|
310
|
+
});
|
|
177
311
|
});
|
|
178
312
|
this.webSocketConnectedSubscription =
|
|
179
313
|
this.ws.stompAnalyticsConnected$.subscribe((connected) => {
|
|
180
|
-
if (connected) {
|
|
314
|
+
if (connected && typeof window !== 'undefined') {
|
|
181
315
|
// Try to gracefully close on tab unload
|
|
182
316
|
window.addEventListener('beforeunload', () => {
|
|
183
317
|
try {
|
|
@@ -249,6 +383,26 @@ export class EventTracker {
|
|
|
249
383
|
this.cfg.username = data.rabbit_username;
|
|
250
384
|
this.cfg.password = data.rabbit_password;
|
|
251
385
|
this.cfg.brand_id = data.brand_id;
|
|
386
|
+
// Handle new tracking controls and ad events configuration
|
|
387
|
+
if (data.controls) {
|
|
388
|
+
this.cfg.controls = data.controls;
|
|
389
|
+
}
|
|
390
|
+
if (data.ads_events) {
|
|
391
|
+
this.cfg.ads_events = data.ads_events;
|
|
392
|
+
}
|
|
393
|
+
if (data.heatmap_interval) {
|
|
394
|
+
this.cfg.heatmapInterval = data.heatmap_interval;
|
|
395
|
+
}
|
|
396
|
+
if (data.heatmap_threshold) {
|
|
397
|
+
this.cfg.heatmapThreshold = data.heatmap_threshold;
|
|
398
|
+
}
|
|
399
|
+
// Update enableTracking based on action_tracking_enabled if present
|
|
400
|
+
if (this.cfg.controls && typeof this.cfg.controls.action_tracking_enabled === 'boolean') {
|
|
401
|
+
this.cfg.enableTracking = this.cfg.controls.action_tracking_enabled;
|
|
402
|
+
}
|
|
403
|
+
if (this.cfg.mode === 'dev') {
|
|
404
|
+
console.log('[Nommos Tracker] Config applied successfully:', this.cfg);
|
|
405
|
+
}
|
|
252
406
|
}
|
|
253
407
|
unsubscribe() {
|
|
254
408
|
this.ipSubscription?.unsubscribe();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-tracker.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/event-tracker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"event-tracker.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/event-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,11 +16,15 @@ export declare class HeatmapTracker {
|
|
|
16
16
|
private timer;
|
|
17
17
|
private maxScroll;
|
|
18
18
|
private reachedBands;
|
|
19
|
+
private activePageKey;
|
|
20
|
+
private static screenshotStore;
|
|
19
21
|
constructor(ws: WebSocketClient, cfg: FullConfig, browserId: string, channel: number);
|
|
20
22
|
/**
|
|
21
23
|
* Starts global event listeners for heatmap collection.
|
|
22
24
|
*/
|
|
23
25
|
start(): void;
|
|
26
|
+
private handleNavigation;
|
|
27
|
+
private capturePageScreenshot;
|
|
24
28
|
/**
|
|
25
29
|
* Stops listeners and flushes remaining data.
|
|
26
30
|
*/
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { HEATMAP_FLUSH_INTERVAL_MS } from './constants';
|
|
1
2
|
export class HeatmapTracker {
|
|
2
3
|
constructor(ws, cfg, browserId, channel) {
|
|
3
4
|
this.ws = ws;
|
|
@@ -15,6 +16,7 @@ export class HeatmapTracker {
|
|
|
15
16
|
this.timer = null;
|
|
16
17
|
this.maxScroll = 0;
|
|
17
18
|
this.reachedBands = new Set();
|
|
19
|
+
this.activePageKey = '';
|
|
18
20
|
}
|
|
19
21
|
/**
|
|
20
22
|
* Starts global event listeners for heatmap collection.
|
|
@@ -38,9 +40,61 @@ export class HeatmapTracker {
|
|
|
38
40
|
passive: true,
|
|
39
41
|
});
|
|
40
42
|
window.addEventListener('visibilitychange', this.handleVisibilityChange.bind(this));
|
|
43
|
+
window.addEventListener('popstate', () => this.handleNavigation());
|
|
44
|
+
window.addEventListener('hashchange', () => this.handleNavigation());
|
|
41
45
|
window.addEventListener('beforeunload', () => this.flush());
|
|
46
|
+
this.handleNavigation();
|
|
42
47
|
this.resetTimer();
|
|
43
48
|
}
|
|
49
|
+
handleNavigation() {
|
|
50
|
+
if (typeof window === 'undefined')
|
|
51
|
+
return;
|
|
52
|
+
// Flush existing data before moving to new page
|
|
53
|
+
if (this.eventCount > 0) {
|
|
54
|
+
this.flush();
|
|
55
|
+
}
|
|
56
|
+
const category = this.channel === 3 ? 'mobile' : 'desktop';
|
|
57
|
+
this.activePageKey = `${window.location.pathname}_${category}`;
|
|
58
|
+
this.capturePageScreenshot();
|
|
59
|
+
}
|
|
60
|
+
async capturePageScreenshot() {
|
|
61
|
+
if (typeof window === 'undefined')
|
|
62
|
+
return;
|
|
63
|
+
// Reuse if already captured in this session
|
|
64
|
+
if (HeatmapTracker.screenshotStore.has(this.activePageKey))
|
|
65
|
+
return;
|
|
66
|
+
// Wait for the page to be fully loaded as requested
|
|
67
|
+
if (document.readyState !== 'complete') {
|
|
68
|
+
await new Promise((resolve) => window.addEventListener('load', resolve, { once: true }));
|
|
69
|
+
}
|
|
70
|
+
// Add 500ms delay to ensure dynamic components are rendered
|
|
71
|
+
await new Promise((resolve) => setTimeout(resolve, 500));
|
|
72
|
+
try {
|
|
73
|
+
// Dynamic import to keep bundle small
|
|
74
|
+
const html2canvas = (await import('html2canvas')).default;
|
|
75
|
+
const canvas = await html2canvas(document.body, {
|
|
76
|
+
width: window.innerWidth,
|
|
77
|
+
height: window.innerHeight,
|
|
78
|
+
windowWidth: window.innerWidth,
|
|
79
|
+
windowHeight: window.innerHeight,
|
|
80
|
+
useCORS: true,
|
|
81
|
+
allowTaint: false,
|
|
82
|
+
scale: 1,
|
|
83
|
+
scrollX: 0,
|
|
84
|
+
scrollY: 0,
|
|
85
|
+
});
|
|
86
|
+
const base64Image = canvas.toDataURL('image/jpeg', 0.8);
|
|
87
|
+
HeatmapTracker.screenshotStore.set(this.activePageKey, base64Image);
|
|
88
|
+
if (this.cfg.mode === 'dev') {
|
|
89
|
+
console.log('[Nommos Tracker] Screenshot Captured for:', this.activePageKey);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
if (this.cfg.mode === 'dev') {
|
|
94
|
+
console.error('[Nommos Tracker] Screenshot Capture Failed:', err);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
44
98
|
/**
|
|
45
99
|
* Stops listeners and flushes remaining data.
|
|
46
100
|
*/
|
|
@@ -120,11 +174,14 @@ export class HeatmapTracker {
|
|
|
120
174
|
resetTimer() {
|
|
121
175
|
if (this.timer)
|
|
122
176
|
clearTimeout(this.timer);
|
|
123
|
-
const interval = this.cfg.heatmapInterval ||
|
|
177
|
+
const interval = this.cfg.heatmapInterval || HEATMAP_FLUSH_INTERVAL_MS;
|
|
124
178
|
this.timer = setTimeout(() => this.flush(), interval);
|
|
125
179
|
}
|
|
126
180
|
flush() {
|
|
127
181
|
if (this.eventCount === 0) {
|
|
182
|
+
if (this.cfg.mode === 'dev') {
|
|
183
|
+
console.log('[Nommos Tracker] Heatmap interval reached - buffer empty, skipping flush');
|
|
184
|
+
}
|
|
128
185
|
this.resetTimer();
|
|
129
186
|
return;
|
|
130
187
|
}
|
|
@@ -144,6 +201,7 @@ export class HeatmapTracker {
|
|
|
144
201
|
movement: this.mapToPoints(this.movement),
|
|
145
202
|
scroll: this.mapToScroll(this.scrollBands),
|
|
146
203
|
},
|
|
204
|
+
screenshot: HeatmapTracker.screenshotStore.get(this.activePageKey),
|
|
147
205
|
};
|
|
148
206
|
if (this.cfg.mode === 'dev') {
|
|
149
207
|
console.log('[Nommos Tracker] Sending Heatmap Batch:', payload);
|
|
@@ -172,4 +230,5 @@ export class HeatmapTracker {
|
|
|
172
230
|
return bands;
|
|
173
231
|
}
|
|
174
232
|
}
|
|
233
|
+
HeatmapTracker.screenshotStore = new Map();
|
|
175
234
|
//# sourceMappingURL=heatmap-tracker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heatmap-tracker.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/heatmap-tracker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"heatmap-tracker.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/heatmap-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,15 +19,39 @@ export declare class SessionTracker {
|
|
|
19
19
|
private readonly channel;
|
|
20
20
|
private events;
|
|
21
21
|
private stopFn;
|
|
22
|
-
private
|
|
22
|
+
private inactivityTimer;
|
|
23
|
+
private isRecording;
|
|
23
24
|
constructor(ws: WebSocketClient, cfg: FullConfig, bid: string, channel: number);
|
|
24
25
|
/**
|
|
25
|
-
* Initializes rrweb recording
|
|
26
|
-
* environments like Next.js/SSR and avoid bundling overhead if not used.
|
|
26
|
+
* Initializes rrweb recording and setup listeners for visibility and inactivity.
|
|
27
27
|
*/
|
|
28
28
|
start(): Promise<void>;
|
|
29
29
|
/**
|
|
30
|
-
*
|
|
30
|
+
* Starts a new rrweb recording instance.
|
|
31
|
+
*/
|
|
32
|
+
private startRecording;
|
|
33
|
+
/**
|
|
34
|
+
* Stops the current rrweb recording instance and flushes pending events.
|
|
35
|
+
*/
|
|
36
|
+
private stopRecording;
|
|
37
|
+
/**
|
|
38
|
+
* Resets the inactivity timer. If recording was stopped due to inactivity, it restarts it.
|
|
39
|
+
*/
|
|
40
|
+
onUserActivity(): void;
|
|
41
|
+
/**
|
|
42
|
+
* Resets the inactivity timer. If recording was stopped due to inactivity, it restarts it.
|
|
43
|
+
*/
|
|
44
|
+
private resetInactivityTimer;
|
|
45
|
+
/**
|
|
46
|
+
* Listens for visibility changes to handle background/foreground recording.
|
|
47
|
+
*/
|
|
48
|
+
private setupVisibilityListener;
|
|
49
|
+
/**
|
|
50
|
+
* Listens for user activity to reset the inactivity timer.
|
|
51
|
+
*/
|
|
52
|
+
private setupActivityListeners;
|
|
53
|
+
/**
|
|
54
|
+
* Public API to completely stop the tracker (unmount/cleanup).
|
|
31
55
|
*/
|
|
32
56
|
stop(): void;
|
|
33
57
|
/**
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SESSION_CHUNK_DURATION_MS, SESSION_INACTIVITY_TIMEOUT_MS } from './constants';
|
|
1
2
|
/**
|
|
2
3
|
* SessionTracker
|
|
3
4
|
* --------------
|
|
@@ -18,32 +19,43 @@ export class SessionTracker {
|
|
|
18
19
|
this.channel = channel;
|
|
19
20
|
this.events = [];
|
|
20
21
|
this.stopFn = null;
|
|
21
|
-
this.
|
|
22
|
+
this.inactivityTimer = null;
|
|
23
|
+
this.isRecording = false;
|
|
22
24
|
}
|
|
23
25
|
/**
|
|
24
|
-
* Initializes rrweb recording
|
|
25
|
-
* environments like Next.js/SSR and avoid bundling overhead if not used.
|
|
26
|
+
* Initializes rrweb recording and setup listeners for visibility and inactivity.
|
|
26
27
|
*/
|
|
27
28
|
async start() {
|
|
28
29
|
if (typeof window === 'undefined')
|
|
29
30
|
return;
|
|
31
|
+
this.setupVisibilityListener();
|
|
32
|
+
this.setupActivityListeners();
|
|
33
|
+
this.resetInactivityTimer();
|
|
34
|
+
await this.startRecording();
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Starts a new rrweb recording instance.
|
|
38
|
+
*/
|
|
39
|
+
async startRecording() {
|
|
40
|
+
if (this.isRecording || typeof window === 'undefined')
|
|
41
|
+
return;
|
|
30
42
|
try {
|
|
31
|
-
// Dynamic import to avoid SSR issues and keep core bundle small
|
|
32
43
|
const rrweb = await import('rrweb');
|
|
33
|
-
// Initialize recording
|
|
34
44
|
this.stopFn = rrweb.record({
|
|
35
|
-
emit: (event) => {
|
|
45
|
+
emit: (event, isCheckout) => {
|
|
36
46
|
this.events.push(event);
|
|
37
|
-
if (this.
|
|
47
|
+
if (isCheckout && this.cfg.mode === 'dev') {
|
|
48
|
+
console.log('[Nommos Tracker] rrweb Checkout Event (Chunk Boundary) reached');
|
|
49
|
+
}
|
|
50
|
+
// If a checkout event occurs (every 2m), flush the current chunk
|
|
51
|
+
if (isCheckout) {
|
|
38
52
|
this.flush();
|
|
39
53
|
}
|
|
40
54
|
},
|
|
55
|
+
checkoutEveryNms: SESSION_CHUNK_DURATION_MS,
|
|
41
56
|
maskAllInputs: true,
|
|
42
57
|
}) || null;
|
|
43
|
-
|
|
44
|
-
this.timer = setInterval(() => this.flush(), 30000);
|
|
45
|
-
// Ensure final flush on tab close
|
|
46
|
-
window.addEventListener('beforeunload', () => this.flush());
|
|
58
|
+
this.isRecording = true;
|
|
47
59
|
if (this.cfg.mode === 'dev') {
|
|
48
60
|
console.log('[Nommos Tracker] Session Recording Started');
|
|
49
61
|
}
|
|
@@ -55,18 +67,79 @@ export class SessionTracker {
|
|
|
55
67
|
}
|
|
56
68
|
}
|
|
57
69
|
/**
|
|
58
|
-
* Stops recording and flushes
|
|
70
|
+
* Stops the current rrweb recording instance and flushes pending events.
|
|
59
71
|
*/
|
|
60
|
-
|
|
72
|
+
stopRecording() {
|
|
73
|
+
if (!this.isRecording)
|
|
74
|
+
return;
|
|
61
75
|
if (this.stopFn) {
|
|
62
76
|
this.stopFn();
|
|
63
77
|
this.stopFn = null;
|
|
64
78
|
}
|
|
65
|
-
|
|
66
|
-
clearInterval(this.timer);
|
|
67
|
-
this.timer = null;
|
|
68
|
-
}
|
|
79
|
+
this.isRecording = false;
|
|
69
80
|
this.flush();
|
|
81
|
+
if (this.cfg.mode === 'dev') {
|
|
82
|
+
console.log('[Nommos Tracker] Session Recording Stopped');
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Resets the inactivity timer. If recording was stopped due to inactivity, it restarts it.
|
|
87
|
+
*/
|
|
88
|
+
onUserActivity() {
|
|
89
|
+
this.resetInactivityTimer();
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Resets the inactivity timer. If recording was stopped due to inactivity, it restarts it.
|
|
93
|
+
*/
|
|
94
|
+
resetInactivityTimer() {
|
|
95
|
+
if (this.inactivityTimer) {
|
|
96
|
+
clearTimeout(this.inactivityTimer);
|
|
97
|
+
}
|
|
98
|
+
// 2 minutes of inactivity ends the current session recording
|
|
99
|
+
this.inactivityTimer = setTimeout(() => {
|
|
100
|
+
if (this.cfg.mode === 'dev') {
|
|
101
|
+
console.log('[Nommos Tracker] Inactivity Timeout Reached');
|
|
102
|
+
}
|
|
103
|
+
this.stopRecording();
|
|
104
|
+
}, SESSION_INACTIVITY_TIMEOUT_MS);
|
|
105
|
+
// If we return from inactivity while visible, restart recording
|
|
106
|
+
if (!this.isRecording && typeof document !== 'undefined' && document.visibilityState === 'visible') {
|
|
107
|
+
this.startRecording();
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Listens for visibility changes to handle background/foreground recording.
|
|
112
|
+
*/
|
|
113
|
+
setupVisibilityListener() {
|
|
114
|
+
document.addEventListener('visibilitychange', () => {
|
|
115
|
+
if (document.visibilityState === 'hidden') {
|
|
116
|
+
this.stopRecording();
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
this.resetInactivityTimer();
|
|
120
|
+
this.startRecording();
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
window.addEventListener('beforeunload', () => this.stopRecording());
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Listens for user activity to reset the inactivity timer.
|
|
127
|
+
*/
|
|
128
|
+
setupActivityListeners() {
|
|
129
|
+
const activityEvents = ['mousemove', 'click', 'keydown', 'scroll'];
|
|
130
|
+
activityEvents.forEach((ev) => {
|
|
131
|
+
window.addEventListener(ev, () => this.resetInactivityTimer(), { passive: true });
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Public API to completely stop the tracker (unmount/cleanup).
|
|
136
|
+
*/
|
|
137
|
+
stop() {
|
|
138
|
+
if (this.inactivityTimer) {
|
|
139
|
+
clearTimeout(this.inactivityTimer);
|
|
140
|
+
this.inactivityTimer = null;
|
|
141
|
+
}
|
|
142
|
+
this.stopRecording();
|
|
70
143
|
}
|
|
71
144
|
/**
|
|
72
145
|
* Packages buffered events into a payload and publishes to the broker.
|
|
@@ -88,7 +161,7 @@ export class SessionTracker {
|
|
|
88
161
|
events: [...this.events],
|
|
89
162
|
};
|
|
90
163
|
if (this.cfg.mode === 'dev') {
|
|
91
|
-
console.log('[Nommos Tracker]
|
|
164
|
+
console.log('[Nommos Tracker] Flushing Session Recording Chunk:', payload.events.length, 'events');
|
|
92
165
|
}
|
|
93
166
|
this.ws.publishSessionRecordingMessage(payload);
|
|
94
167
|
// Clear buffer
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-tracker.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/session-tracker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session-tracker.js","sourceRoot":"","sources":["../../../../../nommos/core/src/lib/session-tracker.ts"],"names":[],"mappings":"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"}
|
package/src/lib/types.d.ts
CHANGED
|
@@ -3,6 +3,20 @@ export interface ConnectionConfig {
|
|
|
3
3
|
token: string;
|
|
4
4
|
mode: string;
|
|
5
5
|
}
|
|
6
|
+
export interface TrackingControls {
|
|
7
|
+
action_tracking_enabled: boolean;
|
|
8
|
+
heatmap_tracking_enabled: boolean;
|
|
9
|
+
session_tracking_enabled: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface AdEventConfig {
|
|
12
|
+
pixel_id: string;
|
|
13
|
+
event_type: string;
|
|
14
|
+
}
|
|
15
|
+
export interface AdsEventsConfig {
|
|
16
|
+
facebook?: Record<string, AdEventConfig>;
|
|
17
|
+
google?: Record<string, AdEventConfig>;
|
|
18
|
+
tiktok?: Record<string, AdEventConfig>;
|
|
19
|
+
}
|
|
6
20
|
/** @internal */
|
|
7
21
|
export interface FullConfig extends ConnectionConfig {
|
|
8
22
|
rabbitUrl?: string;
|
|
@@ -14,6 +28,8 @@ export interface FullConfig extends ConnectionConfig {
|
|
|
14
28
|
enableTracking?: boolean;
|
|
15
29
|
heatmapInterval?: number;
|
|
16
30
|
heatmapThreshold?: number;
|
|
31
|
+
controls?: TrackingControls;
|
|
32
|
+
ads_events?: AdsEventsConfig;
|
|
17
33
|
}
|
|
18
34
|
export interface UrlTrackingKey {
|
|
19
35
|
source: string;
|
|
@@ -59,6 +75,7 @@ export interface HeatmapPayload {
|
|
|
59
75
|
movement: HeatmapPoint[];
|
|
60
76
|
scroll: ScrollBand[];
|
|
61
77
|
};
|
|
78
|
+
screenshot?: string;
|
|
62
79
|
}
|
|
63
80
|
export interface SessionRecordingPayload {
|
|
64
81
|
brandId: string | number;
|