Anonymous User Statistics

For future reference we want to be able to views anonymous user statistics of the devs that use Komodo so that we can make more informed decisions on what parts of Komodo to work on in the future.

Pages

Since Google Analytics is made to track websites a big part of it's functionality comes from the ability to track pages and from that create funnels. Obviously we don't have Pages in Komodo but we can identify what parts of the app are being used. Eg. the type of file being edited, the prefs dialog being opened, etc. Tracking these types of actions as "Pages" will allow us to still create funnels and visualize how Komodo is being used.

Metrics

We're interested in the following metrics:

  • System Information
    • Available Memory
    • CPU Type
    • Screen Resolution
  • File Information
    • Language
    • Approximate Size
    • Location (local, remote)
    • # of files open
  • Project Information
    • number of projects opened/used
    • number of files in a project (maybe)
    • number of folders in a project (maybe)
  • Preferences
    • Skin, Iconset info
    • Misc Boolean Prefs
    • layout for side panes
    • codeintel preferences, API catalogs used
    • colour scheme used
    • keybinding scheme used (vi/emacs enabled)
    • added file associations (are we missing any common ones)
    • SCC config
    • Syntax Checking

Properties

Additionally we want to track the following properties to be able to group our users to an extend, whilst still leaving their statistics completely anonymous. We are limited to 20 properties with google analytics.

  • Product (Edit, IDE)
  • Product Version (8.0, 8.5, 8.5.3, etc)
  • Build Number
  • Build Type (release, beta, nightly, etc)
  • License Type
  • Trial Expiration (days left)

Implementation

Our first implementation will be done through Google Analytics. The JavaScript library provided by Google should be usable from within a XUL context with a little tweaking. This will give us a good first impression of how the analytics data can be used and allow us time in deciding whether we want something more robust (eg. DeskMetrics, something of our own on top of Google Analytics?).