Client-Side Click Tracking via Local Storage and Periodic Sync
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing click tracking methods often impact web page performance and may lose user interaction data due to asynchronous logging, especially when users navigate away from a page or if the application crashes.
Innovation Solution
Implementing client-side click tracking by monitoring user selections of hyperlinks with embedded attributes using JavaScript code that stores information in local storage and periodically communicates it to a server, allowing for both asynchronous and synchronous data reporting without losing information.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If click tracking is performed using web logs or URL redirects, then click tracking can be implemented, but web page performance is impacted and user interaction data may be lost when users navigate away or application crashes
Solution Approach 1:
The patent implements preliminary action by storing click tracking data in local storage (e.g., browser's localStorage or sessionStorage) before the user navigates away or the application crashes. The JavaScript code captures click events and queues them for later transmission, ensuring data is preserved even if the current page unloads or the browser closes. This preliminary storage mechanism guarantees data availability without requiring continuous server communication.
Solution Approach 2:
The patent uses an intermediary approach by introducing a local storage layer between the click tracking code and the server. Instead of directly communicating with the server for every click event (which would impact performance), the system stores data locally and periodically flushes it to the server. This intermediary buffer decouples the tracking mechanism from the server, improving web page performance while maintaining data reliability.
2Productivity
If click tracking uses asynchronous logging, then web page performance is maintained, but user interaction data may be lost due to timing issues
Solution Approach 1:
The patent implements feedback mechanisms through periodic flushing of the click tracking queue to the server. The system continuously monitors and sends accumulated click data at scheduled intervals, ensuring no data is lost due to timing issues. This feedback loop maintains web page performance by avoiding synchronous requests while guaranteeing data transmission through regular asynchronous updates.
Solution Approach 2:
The patent ensures continuity of useful action by maintaining a persistent queue that continuously accumulates click events and periodically transmits them to the server. The flushing mechanism operates continuously at predetermined intervals, ensuring uninterrupted data collection and transmission. This continuous operation prevents data loss while maintaining optimal web page performance.
3Loss of information
If click tracking code is executed synchronously, then data is reported immediately, but web page performance is impacted
Solution Approach 1:
The patent applies periodic action by implementing scheduled flushing of click tracking data at predetermined time intervals rather than immediate synchronous reporting. The system configurations allow administrators to set flushing frequencies that balance data timeliness with web page performance. This periodic mechanism ensures data is reported promptly while avoiding the performance impact of synchronous requests.
Data Source
AI summary
Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for performing client-side click tracking. In one aspect, a method includes receiving, by a client, a resource from one or more servers. The resource includes (i) a link, (ii) click tracking code, and (iii) local storage monitoring code. The method includes invoking, by the client, the click tracking code and the local storage monitoring code, detecting, by the invoked click tracking code, a selection of the link, and generating, by the invoked click tracking code, a representation of the selection. The method includes storing, by the invoked click tracking code, the representation of the selection in a local storage on the client, determining, by the invoked local storage monitoring code, to communicate the representation of the selection; and communicating, by the invoked local storage monitoring code, the representation of the selection to the one or more servers.


