@zaplier/sdk 1.6.8 → 1.6.9
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/dist/index.cjs +54 -63
- package/dist/index.cjs.map +1 -1
- package/dist/index.esm.js +54 -63
- package/dist/index.esm.js.map +1 -1
- package/dist/sdk.js +54 -63
- package/dist/sdk.js.map +1 -1
- package/dist/sdk.min.js +1 -1
- package/dist/src/modules/auto-tracker.d.ts +1 -8
- package/dist/src/modules/auto-tracker.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/sdk.js
CHANGED
|
@@ -19278,7 +19278,10 @@
|
|
|
19278
19278
|
this.scrollThrottle = now;
|
|
19279
19279
|
const scrollElements = document.querySelectorAll('[data-track-scroll]');
|
|
19280
19280
|
if (this.config.debug && scrollElements.length > 0) {
|
|
19281
|
-
console.log(`[AutoTracker] Checking ${scrollElements.length} scroll elements
|
|
19281
|
+
console.log(`[AutoTracker] Checking ${scrollElements.length} scroll elements`, {
|
|
19282
|
+
scrollY: window.scrollY,
|
|
19283
|
+
innerHeight: window.innerHeight
|
|
19284
|
+
});
|
|
19282
19285
|
}
|
|
19283
19286
|
scrollElements.forEach((element) => {
|
|
19284
19287
|
let hasTriggered = element.getAttribute('data-scroll-triggered') === 'true';
|
|
@@ -19322,6 +19325,28 @@
|
|
|
19322
19325
|
}
|
|
19323
19326
|
});
|
|
19324
19327
|
};
|
|
19328
|
+
this.handleClick = (event) => {
|
|
19329
|
+
if (!this.config.trackClicks)
|
|
19330
|
+
return;
|
|
19331
|
+
const target = event.target;
|
|
19332
|
+
if (!target || !target.hasAttribute("data-track-click"))
|
|
19333
|
+
return;
|
|
19334
|
+
const eventName = target.getAttribute("data-track-click");
|
|
19335
|
+
if (!eventName)
|
|
19336
|
+
return;
|
|
19337
|
+
const metadata = this.extractMetadata(target);
|
|
19338
|
+
this.trackEvent(eventName, {
|
|
19339
|
+
type: "click",
|
|
19340
|
+
element: target.tagName.toLowerCase(),
|
|
19341
|
+
...metadata,
|
|
19342
|
+
});
|
|
19343
|
+
if (this.config.debug) {
|
|
19344
|
+
console.log(`[AutoTracker] Click tracked: ${eventName}`, {
|
|
19345
|
+
element: target.tagName.toLowerCase(),
|
|
19346
|
+
...metadata
|
|
19347
|
+
});
|
|
19348
|
+
}
|
|
19349
|
+
};
|
|
19325
19350
|
this.sdkInstance = sdkInstance;
|
|
19326
19351
|
this.config = {
|
|
19327
19352
|
enabled: true,
|
|
@@ -19349,6 +19374,28 @@
|
|
|
19349
19374
|
trackHovers: this.config.trackHovers,
|
|
19350
19375
|
trackForms: this.config.trackForms
|
|
19351
19376
|
});
|
|
19377
|
+
// Log elementos existentes encontrados
|
|
19378
|
+
setTimeout(() => {
|
|
19379
|
+
const clickElements = document.querySelectorAll('[data-track-click]');
|
|
19380
|
+
const scrollElements = document.querySelectorAll('[data-track-scroll]');
|
|
19381
|
+
const viewElements = document.querySelectorAll('[data-track-view]');
|
|
19382
|
+
const hoverElements = document.querySelectorAll('[data-track-hover]');
|
|
19383
|
+
const formElements = document.querySelectorAll('[data-track-form]');
|
|
19384
|
+
console.log("[Zaplier AutoTracker] Elementos encontrados:", {
|
|
19385
|
+
clickElements: clickElements.length,
|
|
19386
|
+
scrollElements: scrollElements.length,
|
|
19387
|
+
viewElements: viewElements.length,
|
|
19388
|
+
hoverElements: hoverElements.length,
|
|
19389
|
+
formElements: formElements.length
|
|
19390
|
+
});
|
|
19391
|
+
if (scrollElements.length > 0) {
|
|
19392
|
+
console.log("[Zaplier AutoTracker] Elementos de scroll:", Array.from(scrollElements).map(el => ({
|
|
19393
|
+
tagName: el.tagName,
|
|
19394
|
+
trackEvent: el.getAttribute('data-track-scroll'),
|
|
19395
|
+
threshold: el.getAttribute('data-scroll-threshold') || '0.5'
|
|
19396
|
+
})));
|
|
19397
|
+
}
|
|
19398
|
+
}, 100);
|
|
19352
19399
|
}
|
|
19353
19400
|
// Observer para novos elementos no DOM
|
|
19354
19401
|
this.observeDOM();
|
|
@@ -19359,6 +19406,9 @@
|
|
|
19359
19406
|
this.setupViewTracking();
|
|
19360
19407
|
}
|
|
19361
19408
|
// Setup global event listeners
|
|
19409
|
+
if (this.config.trackClicks) {
|
|
19410
|
+
document.addEventListener("click", this.handleClick, { passive: true });
|
|
19411
|
+
}
|
|
19362
19412
|
if (this.config.trackScrolls) {
|
|
19363
19413
|
document.addEventListener("scroll", this.handleScroll, { passive: true });
|
|
19364
19414
|
}
|
|
@@ -19367,6 +19417,7 @@
|
|
|
19367
19417
|
* Parar auto tracking
|
|
19368
19418
|
*/
|
|
19369
19419
|
stop() {
|
|
19420
|
+
document.removeEventListener("click", this.handleClick);
|
|
19370
19421
|
document.removeEventListener("scroll", this.handleScroll);
|
|
19371
19422
|
if (this.intersectionObserver) {
|
|
19372
19423
|
this.intersectionObserver.disconnect();
|
|
@@ -19405,14 +19456,8 @@
|
|
|
19405
19456
|
* Processar um elemento específico
|
|
19406
19457
|
*/
|
|
19407
19458
|
processElement(element) {
|
|
19408
|
-
// Click tracking
|
|
19409
|
-
|
|
19410
|
-
this.setupClickTracking(element);
|
|
19411
|
-
}
|
|
19412
|
-
// Scroll tracking
|
|
19413
|
-
if (this.config.trackScrolls && element.hasAttribute("data-track-scroll")) {
|
|
19414
|
-
this.setupScrollTracking(element);
|
|
19415
|
-
}
|
|
19459
|
+
// Click tracking - handled by global listener
|
|
19460
|
+
// Scroll tracking - handled by global listener
|
|
19416
19461
|
// View tracking
|
|
19417
19462
|
if (this.config.trackViews && element.hasAttribute("data-track-view")) {
|
|
19418
19463
|
this.setupElementViewTracking(element);
|
|
@@ -19426,60 +19471,6 @@
|
|
|
19426
19471
|
this.setupFormTracking(element);
|
|
19427
19472
|
}
|
|
19428
19473
|
}
|
|
19429
|
-
/**
|
|
19430
|
-
* Setup click tracking
|
|
19431
|
-
*/
|
|
19432
|
-
setupClickTracking(element) {
|
|
19433
|
-
element.addEventListener("click", (event) => {
|
|
19434
|
-
const eventName = element.getAttribute("data-track-click");
|
|
19435
|
-
if (!eventName)
|
|
19436
|
-
return;
|
|
19437
|
-
const metadata = this.extractMetadata(element);
|
|
19438
|
-
this.trackEvent(eventName, {
|
|
19439
|
-
type: "click",
|
|
19440
|
-
element: element.tagName.toLowerCase(),
|
|
19441
|
-
...metadata,
|
|
19442
|
-
});
|
|
19443
|
-
if (this.config.debug) {
|
|
19444
|
-
console.log(`[AutoTracker] Click tracked: ${eventName}`, metadata);
|
|
19445
|
-
}
|
|
19446
|
-
});
|
|
19447
|
-
}
|
|
19448
|
-
/**
|
|
19449
|
-
* Setup scroll tracking
|
|
19450
|
-
*/
|
|
19451
|
-
setupScrollTracking(element) {
|
|
19452
|
-
let hasTriggered = false;
|
|
19453
|
-
const threshold = parseFloat(element.getAttribute("data-scroll-threshold") || "0.5");
|
|
19454
|
-
const handleScroll = () => {
|
|
19455
|
-
if (hasTriggered)
|
|
19456
|
-
return;
|
|
19457
|
-
const rect = element.getBoundingClientRect();
|
|
19458
|
-
const elementHeight = rect.height;
|
|
19459
|
-
const visibleHeight = Math.min(rect.bottom, window.innerHeight) - Math.max(rect.top, 0);
|
|
19460
|
-
const visibilityRatio = Math.max(0, visibleHeight) / elementHeight;
|
|
19461
|
-
if (visibilityRatio >= threshold) {
|
|
19462
|
-
hasTriggered = true;
|
|
19463
|
-
const eventName = element.getAttribute("data-track-scroll");
|
|
19464
|
-
if (!eventName)
|
|
19465
|
-
return;
|
|
19466
|
-
const metadata = this.extractMetadata(element);
|
|
19467
|
-
this.trackEvent(eventName, {
|
|
19468
|
-
type: "scroll",
|
|
19469
|
-
element: element.tagName.toLowerCase(),
|
|
19470
|
-
threshold,
|
|
19471
|
-
scrollDepth: window.scrollY,
|
|
19472
|
-
...metadata,
|
|
19473
|
-
});
|
|
19474
|
-
if (this.config.debug) {
|
|
19475
|
-
console.log(`[AutoTracker] Scroll tracked: ${eventName}`, metadata);
|
|
19476
|
-
}
|
|
19477
|
-
}
|
|
19478
|
-
};
|
|
19479
|
-
document.addEventListener("scroll", handleScroll, { passive: true });
|
|
19480
|
-
// Check immediately in case element is already in view
|
|
19481
|
-
setTimeout(handleScroll, 100);
|
|
19482
|
-
}
|
|
19483
19474
|
/**
|
|
19484
19475
|
* Setup view tracking usando Intersection Observer
|
|
19485
19476
|
*/
|