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
Usman Baig
02062b6518
feat: add legacy session key support for migration to new storage key
2026-01-17 15:56:06 +01:00
Usman Baig
d12d2d96e3
feat: standardize session storage key for improved consistency across pages
2026-01-17 14:17:07 +01:00
Usman Baig
134ceebca1
feat: implement memory caching for session ID with fallback to sessionStorage
2026-01-17 14:11:14 +01:00