If you are developing a software application and are familiar with Google Analytics, you might find yourself asking a very common question: “Why not use Google Analytics to track my desktop application?” At first glance this might seem like a very attractive option, however if you look into the details you will realize there are a number of fundamental problems that you are likely to encounter. The way users engage with a website or browser-run application is very different from the way they engage with a desktop application. This means by simply using the same tracking metrics for website and desktop applications alike, you cannot effectively measure both. Google Analytics does a great job at tracking website browsing sessions, however a number of technical deficiencies arise when trying to adapt browsing session metrics directly to track desktop application runtime sessions. Such deficiencies can drastically limit your ability to accurately report on application usage and in some cases also affect your end user experience. In this article we discuss some points you need to keep in mind when looking into a tracking solution.
When it comes to desktop applications, the short answer is “never.” But if you simply want to track generic software popularity of an experimental desktop application or some non-commercial freeware tool, then relying on a free web-analytics solution might be an option you can hack together, since through Google Analytics you will be able to answer simple questions such as “How many runtime sessions of my software are invoked daily around the world?” However if you are looking for a more elaborate software usage analytics solution on which you can rely for strategic business decisions or to increase conversions, then you have two alternatives:
Below we have outlined a number of points that you should keep in mind when comparing Google Analytics with a specialized desktop application tracking solution like Usage Intelligence.
Web analytics solutions (such as Google Analytics) were designed to track user engagement with your website. Essentially this means all metrics are based around browsing sessions. During a session, a visitor enters your website from one of your public pages, clicks around on different pages throughout the site, possibly generates some tracked events along the way, until they complete their session, by converting or leaving your site. This gives you enough information to track the count of new versus returning visitors as well as their browsing path through the pages in that session. The concept of this user is created and stored in a browser-based cookie that is accessed and written to each time a user returns to your website.
However on desktop applications which do not have cookies associated with them, as far as Google Analytics is concerned, once they leave your application that is the end of the browsing session and if that user comes back, they will be tracked just like any other new user, irrespective of who they are, how often they return and what happened during their previous visits. Therefore when web analytics are implemented to try and track desktop applications there is no concept of building a user profile to track how their usage patterns vary over their lifetime or throughout their evaluation lifecycle.
This also means that with Google Analytics you cannot generate any reports that span over a number of days for desktop applications - such as conversion funnel analysis - since the user tracking terminates in a single “browsing” session. This limitation doesn’t exist for your website visitors, but makes using website analytics less applicable for desktop applications.
In order to track desktop software effectively, whatever solution you choose must keep track of each individual user’s story and not a single runtime session. This is an essential building block that will change your reporting abilities from simple generic statistical reports to truly actionable business intelligence reports.
Below we have listed some specific issues that you will need think about if you consider tracking your desktop application with Google Analytics. We also explain how Revulytics manages to solve these issues so the developer does not have to worry about them.
Keep in mind that what you are doing with Google Analytics is kind of a hack because it is not the primary intent of Google analytics to track desktop applications. So before you start, you need to become familiar with the traditional web-based tracking system using ga.js. The Google Analytics collector is designed for websites (not applications), so it is up to the developer to determine what constitutes a change of page or clicking of a link inside the application to be able to pass that to Google Analytics. Therefore all the ‘events’ within your application will have to be manually mapped to page views and URLs in a way which can be reported on later.
- The Usage Intelligence API, on the other hand, was designed specifically for tracking user engagement with a Desktop Application, therefore it contains all the functions that you need to track runtime session starts, stops and other application events such as feature usage and exceptions. The API can be easily integrated in just 30 minutes without the need to worry about the inner workings.
Always-on requirement: To track any event with Google Analytics, you will have to make a web request. This means you will be adding a requirement that your software must always have a live internet connection in order to be tracked. Any offline usage of your desktop application will not be tracked.
Web traffic: When using Google Analytics, every tracked feature, button click, program start, etc. will generate an individual web request which means your software will be constantly generating internet traffic, which in extreme cases can slow down your application or raise eyebrows of administrators who might be monitoring internet traffic passing through a corporate gateway.
- Since Usage Intelligence was purpose built for the desktop environment, it uses an intelligent caching system where everything is logged in memory and/or to file. The logs are compressed at the most appropriate time before being sent to the server without interfering with user experience. If a user goes offline, the logs are sent the next time a connection is available and no tracking data is lost. This intelligent caching mechanism will cut down hundreds of HTTP calls to a mere 2-3 calls per runtime session. The system also accounts for users who are permanently offline so that log sizes are automatically kept under control.
With web analytics, a single malicious user can simply sniff the connection (using protocol analyzing tools like ) to copy your callhome URL and use this in a script to skew all your reporting data, and unfortunately there is not much Google can do about this since you are simply tracking using anonymous web requests.
- The Usage Intelligence callhome protocol on the other hand implements various security checks including fingerprinting and RSA encryption to prevent replay attacks which make it much more difficult for malicious users to simply use your callhome URL to skew data on the server.
Tracking unique users vs. single sessions: Web analytics solutions are designed to track individual browsing sessions (usually through cookies) and not users or installations. Therefore you have no idea if a user launches your application 10 times a day or whether it was 10 separate users launching it once. This limits all reporting by session rather than by user.
Usage patterns over time: Using Google Analytics it is impossible to report on usage patterns for a particular user group over time because Google cannot identify a user from day to day. Thus you cannot know if users are running your application 5 times a week or 5 times a month. You can only tell that a runtime session belonged to either a new or a returning user.
- Usage Intelligence on the other hand tracks a user’s journey from the day they install your application until they churn or stop using your application. This means Usage Intelligence reporting can tell you how many times in a day/week/month users are engaging with your application as well as their average runtime duration. In addition, you can even break down this data by versions, builds, editions and compare how usage patterns vary between freeware, evaluation users or those that purchased a license. Since Usage Intelligence keeps track of individual users, you benefit from detailed conversion funnel and sales cycle analysis reports so you know the amount of time users spent in evaluation before buying/dumping your software. This information cannot be made available with web analytics solutions that rely on single session tracking.
Installation count and Churn rate: With Google Analytics you cannot get an accurate installation count showing you how many unique installations you have had over a specific time frame and how many of these have quit using your software. With Google Analytics you are limited to reporting how much activity (i.e., runtime sessions) you had on a single date. However if you try to look into this daily activity, you don’t know which activity came from new users or old established users. Since Google does not really care about building user profiles on desktop applications, there is no easy way to get distribution reports such as how many installations you have running different versions or editions, or how many installations you have running an evaluation license as of today. These types of metrics are collected differently for websites and are thus not captured by Google in desktop applications. To try and get this information you would have to simulate a page view for every build/version of your software and call this on your application load.
- All of these metrics and more are part of Usage Intelligence’s core framework, and therefore from a single dashboard you have access to an accurate installation count, churn rate, how many users are running each product version, edition or build number as well as demographic data such as location and OS language. You will also get readily available reports of how quickly users are taking up a new version or product update viewed over a timeline. Usage Intelligence reports also offer you the ability to drill down using real-time filtering criteria, so you can focus on a particular country, version, build number, edition, OS, license type, etc. or any combination of those. Data is not pre-computed and presented as static numbers, so you can investigate any product question that may come up.
With Google Analytics you need to define beforehand (at the development stage) what features and events are important to you and which of them you need to track. Once you deploy a build that tracks a set of events, these events will be permanently tracked and you have no way to switch tracking on/off for any of those events. Why would you ever need to turn off tracking? Well let’s say you want to do an A/B test on a user interface element to check which version works best with your customers. For this reason you start tracking all the clicks related to this user interface element and these will start showing up in all your Google Analytics reports as individual Page views. Once you finish your A/B test, all the event data generated by this UI element is less useful and your current reports to may become cluttered with the continued collection of this less than useful data. Unfortunately, in Google Analytics you have no way to disable what pages/events are tracked at the clients side, so these events will keep showing up in all your future reports. Given that a number of Google Analytics reports focus on showing just the most visited pages/events, this can possibly hinder your ability to report on other (now more important) events/feature because your reports would be suppressed.
- Usage Intelligence on the other hand offers a convenient management console in the Reporting UI which enables you to control exactly which features/events you want to track and which you want to ignore. Therefore you can switch on/off any tracked event or feature without involving any development. In addition to this, when your clients sync with the Revulytics server, the SDK automatically and seamlessly retrieves the new set of whitelisted events/features so that the client itself does not even bother tracking them on the client side. This avoids logging and transmitting useless data, thus keeping your clients working efficiently and the logging as lightweight as possible.
With Google Analytics you are only capable of passively collecting data without having any ability to interact with your customers. Ultimately you need to find third-party tools to respond to what you have collected through your analytics tracking (unfortunately even with third-party applications, since many do not serve the desktop application, it can be quite complicated to implement adding other services onto your Google Analytics).
- When using Usage Intelligence you do not only get analytics and reporting but this data is made actionable through the unique ReachOut Direct-to-Desktop messaging framework. This a powerful in-app messaging tool which can help you increase conversions and collect user feedback through contextually relevant messages to end users. For example, let’s say you discover that most of your users are dropping out from evaluation of your application 10 days after installation. Using ReachOut you can send out promotional offers or other incentives directly to the desktop of these users on the 7th and 8th day of evaluation so that you can reengage them and improve your conversion rates. Likewise, you can send out surveys to a particular user segment (say those running a particular build) to collect feedback about your product or their user experience.
As we outlined in this post, there are several points you need to keep in mind before diving into a tracking solution for your desktop software. Of course, if you have enough time on your hands to try to re-engineer Google Analytics web analytics, it may be a good enough and ‘free’ alternative to only get a generic idea of how popular your software is. However if you have a more mature or commercial software product from which you want to gather more serious user engagement analytics, then you might want to consider a purpose built desktop software usage analytics solution like Revulytics Usage Intelligence.
Keith is Revulytics’ VP, Software Analytics and was the co-founder and CEO of Trackerbird Software Analytics before the company was acquired by Revulytics in 2016. Following the acquisition, Keith joined the Revulytics team and is now responsible for the strategic direction and growth of the Usage Analytics business within the company. Prior to founding Trackerbird, Keith held senior product roles at GFI Software where he was responsible for the product roadmap and revenue growth for various security products in the company's portfolio. Keith also brings with him 10 years of IT consultancy experience in the SMB space. Keith has a Masters in Computer Science from the University of Malta, specializing in high performance computing.
Flexera, a demonstrated leader in software installation, open source, software scanning, and software monetization has acquired ...
No one likes to be audited. On its own, the word “audit” implies wrongdoing or, at the least, carelessness. Opening the books ...