Difference between revisions of "Documentation/Labs/ApplicationUsageAnalytics"
From Slicer Wiki
(Created page with "=Requirements= * We would need to know: ** Slicer application downloads ** extension downloads ** Slicer application startups ** Slicer module usage (how many times user switc...") |
(Updated link based on request from Revenera) Tag: 2017 source edit |
||
(One intermediate revision by one other user not shown) | |||
Line 17: | Line 17: | ||
** data uploading: this is the only server-specific component | ** data uploading: this is the only server-specific component | ||
** Probably it would be a Python module, as Python SDK is available for almost all services | ** Probably it would be a Python module, as Python SDK is available for almost all services | ||
+ | ** must be non-blocking | ||
* Server: there are many options, none of them are perfect, see below | * Server: there are many options, none of them are perfect, see below | ||
=Server options= | =Server options= | ||
* Hosted services: easier to get started, no need for experts to maintain/update; may be locked out from certain countries, limited customization | * Hosted services: easier to get started, no need for experts to maintain/update; may be locked out from certain countries, limited customization | ||
− | ** Google Universal Analytics: The largest and most sophisticated solution for traffic analysis that you can get for free. APIs are provided for desktop app tracking, but built-in features are mostly geared towards website and e-commerce tracking - and not optimal for desktop applications (where you would want to send aggregate metrics, accumulate and upload data in batches, etc. - [https://www. | + | ** Google Universal Analytics: The largest and most sophisticated solution for traffic analysis that you can get for free. APIs are provided for desktop app tracking, but built-in features are mostly geared towards website and e-commerce tracking - and not optimal for desktop applications (where you would want to send aggregate metrics, accumulate and upload data in batches, etc. - [https://www.revenera.com/blog/software-monetization/tracking-desktop-applications-with-google-analytics-what-you-should-know/ see comparison to Revenera] for a list of limitations). |
** Many other similar services, for a small monthly fee (typically below $100), see https://github.com/onurakpolat/awesome-analytics | ** Many other similar services, for a small monthly fee (typically below $100), see https://github.com/onurakpolat/awesome-analytics | ||
− | ** [https://www. | + | ** [https://www.revenera.com/ Revenera]: Specialized desktop app usage tracker. It is supported on win/mac/linux, could do everything what we need very nicely, but it's not open (you have to link a binary library into your application). |
* Self-hosted open-source systems: free, we can control our destiny, chance of being locked out from countries can be minimized; significant amount of work to set up and maintain | * Self-hosted open-source systems: free, we can control our destiny, chance of being locked out from countries can be minimized; significant amount of work to set up and maintain | ||
** https://piwik.org/ | ** https://piwik.org/ | ||
** http://www.openwebanalytics.com/ | ** http://www.openwebanalytics.com/ |
Latest revision as of 20:28, 4 December 2020
Home < Documentation < Labs < ApplicationUsageAnalyticsRequirements
- We would need to know:
- Slicer application downloads
- extension downloads
- Slicer application startups
- Slicer module usage (how many times user switched to a module and % of time used)
- Possibility of hosting our own server would be preferred (to avoid blocked in certain countries, ensuring long-term access to our data, etc.)
- User should be notified and have the option to opt out
- It should not be tightly integrated into Slicer (should be an optional module that can be excluded from the build)
- It should be possible to customize it for private builds of Slicer (so that it can use a different backend)
Design
- Slicer-side:
- add a few Qt events that a Python module can observe (application startup, module switch, crash, etc)
- data caching (so that data can be uploaded later, when there is network connection)
- data accumulation (report metrics such as total hours of Slicer and individual modules used instead of reporting each module switch)
- data uploading: this is the only server-specific component
- Probably it would be a Python module, as Python SDK is available for almost all services
- must be non-blocking
- Server: there are many options, none of them are perfect, see below
Server options
- Hosted services: easier to get started, no need for experts to maintain/update; may be locked out from certain countries, limited customization
- Google Universal Analytics: The largest and most sophisticated solution for traffic analysis that you can get for free. APIs are provided for desktop app tracking, but built-in features are mostly geared towards website and e-commerce tracking - and not optimal for desktop applications (where you would want to send aggregate metrics, accumulate and upload data in batches, etc. - see comparison to Revenera for a list of limitations).
- Many other similar services, for a small monthly fee (typically below $100), see https://github.com/onurakpolat/awesome-analytics
- Revenera: Specialized desktop app usage tracker. It is supported on win/mac/linux, could do everything what we need very nicely, but it's not open (you have to link a binary library into your application).
- Self-hosted open-source systems: free, we can control our destiny, chance of being locked out from countries can be minimized; significant amount of work to set up and maintain