Usman Baig
bc2534a22b
fix: reduce false positives in rage click and dead click detection
...
- Skip rage clicks when text is selected (triple-click to select)
- Exclude tabindex="-1" elements from dead click interactive selector
- Observe document.body for DOM changes (modals, drawers, overlays)
- Listen for popstate/hashchange to detect SPA navigations
2026-03-14 23:32:31 +01:00
Usman Baig
b305b5345b
refactor: remove performance insights (Web Vitals) feature entirely
...
Remove Performance tab, PerformanceStats component, settings toggle,
Web Vitals observers from tracking script, and all related API types
and SWR hooks. Duration tracking is preserved.
2026-03-14 22:47:33 +01:00
Usman Baig
7247281ce2
feat: move performance to dedicated tab, fix 0/99999 metrics bug
...
Performance metrics moved from dashboard into a new Performance tab.
Fixed null handling so "No data" shows instead of misleading zeros.
Script no longer sends INP=0 when no interaction occurred.
2026-03-14 22:01:44 +01:00
Usman Baig
cf0b6b8a68
feat: track time-on-page via unload ping for accurate visit durations
...
Sends duration to the metrics endpoint on visibilitychange and SPA
navigation. Also lowers journey min_sessions to 1 for low-traffic sites.
2026-03-14 14:07:54 +01:00
Usman Baig
fcfa4bfed9
fix: use allowlist for query params to prevent path fragmentation
...
Switch from blocklist (strip known-bad params) to allowlist (only keep
UTM/attribution params). Eliminates cache-busters like _t and _ from
page paths without maintaining an ever-growing blocklist.
2026-03-13 13:33:11 +01:00
Usman Baig
f7340fa763
fix: include URL in outbound/download events, exclude form inputs from dead clicks
2026-03-13 09:11:23 +01:00
Usman Baig
6e213539ea
feat: filter headless browsers and zero-screen bots client-side
2026-03-13 09:07:49 +01:00
Usman Baig
f69248ecfa
fix: strip utm_id from page paths to prevent fragmentation
2026-03-13 08:58:33 +01:00
Usman Baig
360d6e7e71
fix: preserve UTM params for backend attribution, only strip ad click IDs
2026-03-13 08:43:55 +01:00
Usman Baig
63144a136e
fix: only attribute referrer to landing page and strip Meta ad params
2026-03-13 01:31:14 +01:00
Usman Baig
1d71a13df4
fix: normalize page paths — strip UTM params and trailing slashes
2026-03-13 01:19:23 +01:00
Usman Baig
6edd5ac0b6
fix: skip pageview tracking for prerendered pages
2026-03-13 01:17:12 +01:00
Usman Baig
a57ed871f1
fix: screen size shadowing, popstate double pageview, custom event self-referrals
2026-03-13 01:09:45 +01:00
Usman Baig
765f8ec63e
fix: strip self-referrals from tracking script
2026-03-13 01:06:14 +01:00
Usman Baig
aae1714b02
fix: deduplicate pageviews on page refresh
2026-03-13 00:50:13 +01:00
Usman Baig
1f64bec46d
fix: correct summary card label and skip MutationObserver on html/body
2026-03-12 17:02:52 +01:00
Usman Baig
fb47716711
fix: use hasAttribute for data-no-rage and data-no-dead opt-out checks
2026-03-12 16:50:20 +01:00
Usman Baig
247a0b3460
feat: add dead click detection to tracking script
2026-03-12 16:47:53 +01:00
Usman Baig
9e6e2a2214
feat: add rage click detection to tracking script
2026-03-12 16:47:15 +01:00
Usman Baig
b05f7bbcf6
feat: add element identifier function for frustration tracking
2026-03-12 16:46:32 +01:00
Usman Baig
5677f30f3b
feat: add dashboard dimension filtering and custom event properties
...
Dashboard filtering: FilterBar pills, AddFilterDropdown with dimension/
operator/value steps, URL-serialized filters, all SWR hooks filter-aware.
Custom event properties: pulse.track() accepts props object, EventProperties
panel with auto-discovered key tabs and value bar charts, clickable goal rows.
Updated changelog with both features under v0.13.0-alpha.
2026-03-06 21:02:14 +01:00
Usman Baig
8b1d196812
feat: add automatic 404 detection, scroll depth tracking, and scroll depth dashboard card
...
- 404 detection: checks document.title for "404" or "not found", fires custom event, SPA-aware
- Scroll depth: passive scroll listener fires events at 25/50/75/100% thresholds
- ScrollDepth dashboard card: progress bar visualization showing % of visitors reaching each threshold
- Scroll events filtered out of GoalStats to avoid duplication
- Both features on by default, opt-out via data-no-404 / data-no-scroll
2026-03-06 20:00:22 +01:00
Usman Baig
53a0341925
feat: automatic outbound link and file download tracking
...
Adds a single click listener in the tracking script that detects
external link clicks and file download clicks, firing outbound_link
and file_download custom events. On by default, opt-out via
data-no-outbound / data-no-downloads attributes.
2026-03-06 19:41:11 +01:00
Usman Baig
4a8f627a5c
refactor: enhance session ID caching logic to handle legacy string format and improve expiration checks
2026-02-11 15:52:30 +01:00
Usman Baig
10df76454a
refactor: improve comment clarity in session ID caching logic within script.js
2026-02-11 15:31:51 +01:00
Usman Baig
d9f07f5cde
refactor: simplify TTL parsing in script.js and add comment for session ID caching behavior
2026-02-11 14:29:44 +01:00
Usman Baig
1454d15142
docs: clarify default and optional data-storage options in ScriptSetupBlock and script.js for improved user understanding
2026-02-11 14:13:05 +01:00
Usman Baig
f423d01d7b
refactor: remove redundant logging code from script.js to streamline session ID management
2026-02-11 13:54:18 +01:00
Usman Baig
f10b79efac
refactor: update logging endpoints in script.js to use dynamic API URL for improved flexibility
2026-02-11 11:32:26 +01:00
Usman Baig
5886cc661c
feat: implement race condition fix for session ID management in script.js, ensuring correct ID usage across multiple tabs
2026-02-11 11:26:29 +01:00
Usman Baig
2b3d052f87
feat: add logging for session ID management in script.js to enhance debugging and monitoring
2026-02-11 11:20:05 +01:00
Usman Baig
f1c27e458a
feat: update ScriptSetupBlock and script.js to support new visitor ID storage options
2026-02-11 11:06:27 +01:00
Usman Baig
c827e82376
feat: enhance ScriptSetupBlock and script.js with optional persistent visitor ID storage
2026-02-11 10:57:01 +01:00
Usman Baig
14f3fe7fbb
feat: add duplicate event name validation in SiteSettingsPage and update user guidance for event name changes
2026-02-04 15:56:25 +01:00
Usman Baig
90a743c170
feat: implement custom events tracking and goals management in the dashboard
2026-02-04 14:33:06 +01:00
Usman Baig
e75d70269f
refactor(replay): remove session replay functionality and related components to streamline codebase
2026-01-23 18:21:50 +01:00
Usman Baig
e42e2d9440
fix: reduce LCP observation timeout to 100ms and enhance SPA navigation tracking with MutationObserver and history API integration
2026-01-19 17:50:18 +01:00
Usman Baig
fe38525cf1
feat: implement SPA navigation handling for LCP metrics, ensuring accurate tracking during route changes
2026-01-19 17:42:36 +01:00
Usman Baig
d92884f7ff
feat: enhance performance metrics tracking by observing LCP and CLS events, ensuring accurate data reporting only when metrics are available
2026-01-19 17:34:16 +01:00
Usman Baig
3da53aa6c0
refactor: enhance public API for replay control with backward compatibility for Ciphera and branding update to Pulse
2026-01-19 17:22:13 +01:00
Usman Baig
5d867dd519
refactor: update application name and related identifiers from Analytics to Pulse for consistent branding across the codebase
2026-01-19 17:20:01 +01:00
Usman Baig
035d78175f
refactor: update branding from Ciphera Pulse to Pulse across the application for consistency and clarity
2026-01-19 16:58:09 +01:00
Usman Baig
9dbe74fd9f
refactor: update references from Ciphera Analytics to Ciphera Pulse across the application for consistent branding and messaging
2026-01-19 16:49:42 +01:00
Usman Baig
088e22512a
feat: add performance insights feature with toggle in settings and conditional rendering in dashboard pages
2026-01-19 14:40:42 +01:00
Usman Baig
2aa25cb3aa
fix: clarify cookie usage and session storage details in About, FAQ, and Security pages; add session replay explanation in FAQ
2026-01-19 14:12:10 +01:00
Usman Baig
8a648a2e5f
fix: update session replay settings to map legacy consent_required to anonymous_skeleton and remove related UI elements
2026-01-19 14:01:02 +01:00
Usman Baig
41b177e3e3
fix: dynamically load rrweb library before starting session replay
2026-01-19 13:00:46 +01:00
Usman Baig
a740b0d703
feat: add session replay functionality with privacy controls
2026-01-19 12:43:02 +01:00
Usman Baig
4c186548bb
feat: add web vitals tracking script and dashboard UI
2026-01-18 17:48:47 +01:00
Usman Baig
eafa66f450
fix: improve legacy session key handling by trimming whitespace
2026-01-17 16:08:56 +01:00