Building a Better Mousetrap: Compressing Mouse Cursor Activity for Web Analytics

Websites can learn what their users do on their pages to provide better content and services to those users. A website can easily find out where a user has been, but in order to find out what content is consumed and how it was consumed at a sub-page level, prior work has proposed client-side tracking to record cursor activity, which is useful for computing the relevance for search results or determining user attention on a page. While recording cursor interactions can be done without disturbing the user, the overhead of recording the cursor trail and transmitting this data over the network can be substantial. In our work, we investigate methods to compress cursor data, taking advantage of the fact that not every cursor coordinate has equal value to the website developer. We evaluate 5 lossless and 5 lossy compression algorithms over two datasets, reporting results about client-side performance, space savings, and how well a lossy algorithm can replicate the original cursor trail. The results show that different compression techniques may be suitable for different goals: LZW offers reasonable lossless compression, but lossy algorithms such as piecewise linear interpolation and distance-thresholding offer better client-side performance and bandwidth reduction.



The following are the two datasets we used on our experiments.

Source Code

The software is implemented in Python language and has been tested on v2.7.3. There is a README.txt file on all directories describing their contents.


Our software is free for scientific use (dual licensed under MIT and GPL licenses). The software must not be distributed without prior permission of the authors. Please contact us if you are planning to use the software for commercial purposes. The authors are not responsible for any implication derived from the use of this software.


If you use the code (or a derivation thereof) in your work, please cite as

LaTeX users can use the following BibTeX entry for citation:

      author  = {Luis A. Leiva and Jeff Huang},
      title   = {Building a Better Mousetrap: Compressing Mouse Cursor Activity for Web Analytics},
      journal = {Information Processing \& Management},
      volume  = {51},
      number  = {2},
      year    = {2015},