Ticket #1680 (closed New feature: answered)
HeatMap - Piwik plugin to track user interaction and pointer movements
| Reported by: | GadgetMaster | Owned by: | |
|---|---|---|---|
| Priority: | normal | Milestone: | Piwik 1.0 |
| Component: | New Plugin | Keywords: | heatmap,clickmap,pointer,mouse,cursor |
| Cc: | Sensitive: | no |
Description
I am developing a native Piwik plugin to enable tracking of user interaction and pointer movements. Name and features of this plugin makes it very similar to ClickHeat (#73), but, actually there are some major differences between these two.
* ClickHeat is a standalone script/application while HeatMap is going to be a native Piwik plugin.
* It will use Piwik's own tracking codes/API, data structures and procedures to provide the features.
* This plugin aims to generate visual maps for pointer movements in addition to click maps. Additional event/tracking and data representations will be implemented as per suggestions from the community.
On the way to the development of this plugin, I would appreciate a guideline from you on these areas:
* Where should we plug in javascript (tracker) codes to capture additional data from client end?
* Which tracker method (and parameters) should be used to record pointer movement coordinates (as serialized array)? Ideally, this should be done on the unload event. And it seems like using existing methods such as logPageView or logGoal will duplicate other metrics. How do we work around?
* By using Piwik's own tracker code, is it possible to POST captured data instead of GET requests? There's a limit on URL length in Apache, and it seems like our captured data often hits that limit when tracked with GET requests.
* How about archiving (blob format)? Should generated maps be saved as images? Or should we store the raw data as compressed streams? For the later case, will there be any performance hit? We have to run queries on huge amount of data. When this data is in MySQL table, it works fine. But, how do we achieve the same performance (and memory utilization) when this data is stored in blob format?
