libAppTelemetry - Usage Analytics for shareware software (Windows, MacOS X)
Watch installation and usage statistics of your desktop application (e.g. Shareware) with this low cost (or zero cost) solution.
Our software analytics library is built with C++ so that is easily portable to different operating systems (cross-platform feature). It uses the native OS connectivity structures, e.g. winhttp, NSURLConnection, etc to achieve a small footprint, OS compatibility, and optimised performance. While is it developed in C++, it can be used by any program that can call a .dll library (Windows) or a .dylib library (MacOS X).
Who is it for:
"No relationship can survive without effective and honest communication, and the special relationship that exists between you [the software developer] and your users is no exception.
Yet development organizations too rarely exploit the most immediate communication tool at their disposal: their application."
Read about the benefits of application statistics on this article of Sebastian Holst.
Shareware developers, desktop application developers, independent software developers who distribute their programs via the internet and what to know how many users have installed their software, what is the percentage of the free vs the paying users, which application features are used the most. With this information, they can shape their product to better match the expectations and the preferred usage by their customer. This critical information can help the developers deliver more value to the customers by focusing on what is important for them.
(Quick answer: because of the well known, reliable, free reporting platform)
On IOS and Android, there are native ways to monitor your app's usage via the iTunesConnect account or the Google Developer account.
But for Windows and Mac OS X there are only a few (and costly for the independent developers) systems to get runtime statistics of your programs.
/// get the version string of the library. You can call this anytime. const char* appTelemetryGetVersion(void); /// get the full path name of the log file. You can call this anytime. const char* appTelemetryGetLogFilename(void); /// enable or disable the writing to the log file. You can call this anytime. /// Default state is Disabled. void appTelemetryEnableLogfile(const char *appName, const char *macBundleId); void appTelemetryDisableLogfile(void); /// initialize the library. /// Must be called before: appTelemetryAddOsVersion(), AddPageview(), AddEvent(), Free() bool appTelemetryInit(const char *appName, const char *appVersion, const char *appLicense, const char *appEdition, const char *propertyID, const bool userGaveConsent); /// free the library. /// The function will wait for a maximum of 3 seconds for all pending async calls to gracefully finish. /// After freeing the library, you can call again appTelemetryInit() if you need to reuse it. void appTelemetryFree(void); /// call this function on program launch, on program exit and on every important form, window, screen /// that you want to track. E.g. Main Window, Configuration settings, Main Window, Exiting bool appTelemetryAddPageview(const char *pagePath, const char *pageTitle=0); /// optionally call this function to log events in Google Analytics. /// With the events you have an alternative way of tracking your program. /// Depending on the things you want to track, maybe the Events will allow you to create /// a better model for understanding the usage of your program. bool appTelemetryAddEvent(const char *eventAction, const char *eventLabel, const int eventValue );
- Versions up to 1.0 will be free.
- Version after 1.0 might have a small fee. The fee will be so small that it would be easily affordable by independent software developers that make little or even no income from their software.
By using the library you can see in Google Analytics all the following figures as being fed directly from your installations around the world:
- number of active users now
- daily/monthly number of active users
- number of unique installations
- new users vs returning users
- new installations per day/month
- average number of windows/forms that the users open
- average usage time
- the preferred language on the user's computer
- screen resolution
- OS versions
- OS 32/64 bit
- Screen views of your program and users path, e.g.
main screen -> address book -> create new contact
main screen -> configuration -> main screen -> (exiting)
- custom events sent from your program
- Versions of your application
See some screenshots of reporting examples here.
- Currently, the library does not cache the statistics in case there is no internet connectivity. It first checks for internet connectivity before attempting to post the statistics to your Google Analytics account.
- Cross-platform (Mac + Windows)
- Small footprint
- Affordable by design: It eliminates the cost of running a complex reporting platform by using Google Analytics.
- You can rename the library (.dll or .dylib) to a filename that matches your application's name
- Work in a reporting/analytics tool you already know: Google Analytics
- Free and reliable reporting platform: Google Analytics
- Simple API; easy linking with your Mac/Windows desktop software
- No sign-up needed to download the library and start testing it
- Ready compiled command line programs let you test the recording of hits in your Google Analytics profile
Icon designed by Eucalyp from Flaticon