The Telerik Platform product is retired.Learn more


A central concept to how your application and Analytics account are being used is the concept of installations. This is because you are likely interested in the number of installations of your software that are out in the wild and your current Telerik subscription plan is also being metered according to this number. So let's dive in and understand how this number is calculated and how this reflects on your software and your account.

Counting installations

In Analytics the number of installations is counted based upon the number of unique, anonymous identifiers or cookie ids that have been encountered within the current 30-day period. This anonymous identifier is obtained by the monitor library when communicating with the Analytics servers and is stored on the PC or device. This anonymous identifier is then passed along with all data to the servers and is used for uniquely identifying the number of installations. For more on cookie ids, go here.

When counting installations the Analytics servers are really counting the number of unique anonymous identifiers for a given period of time. Let's see how this surfaces in a Analytics account.

InstallationCount Example

In the screenshot above, taken from the Account page in the web client, the account has 1266 installations for the current period. This means that the Analytics servers have seen data from 1266 different unique identifiers in that time period for all products belonging to this account.

But how does this installation count compare to e.g. the number of users and machines?

Installations, Machines and Users

The monitor library that you include in your application will store the anonymous identifier it receives from the server (along with other metadata) on the file system of the machine or device that your application is running on. Effectively the Analytics servers are counting the number of metadata storage that have communicated with the servers since each storage has a unique, anonymous identifier.

Therefore, the specific location where this metadata is stored is important in terms of correlating the installations reported in the application to machines and/or users.

On platforms that does not support multiple users (such as mobile phones) the installation count will be equal to the number of devices (with one exception, see below). On platforms with multiple users accessing the same software (such as on standard desktop computers) the location of this meta data becomes important. Let's take a few examples:

  • If the meta data is stored individually for each user on the machine (which is the default behavior for e.g. the .NET library) the installation count is equal to the number of unique users across all computers and not the number of actual computers.
  • If the meta data is stored so it is shared for all users logging in to the machine the installation count is equal to the number of computers and not the number of actual unique users.

Please note that the numbers will also be affected by the indirect removal of the meta data storage (for instance, by a re-installation of the computer or a factory reset of the device) since a new anonymous identifier will be assigned on the next communication with the Analytics servers.

Understanding how your monitor meta data is stored for your software is an important part of interpreting the installation count and also for understanding e.g. the daily users data on various charts as it is also based on the anonymous identifier.

Can I affect this for my products?

Yes, you absolutely can. All monitors have built-in default locations for storing this data and most monitor libraries offer the ability to override this default location. This is done by assigning a new IStorage implementation to the IAnalyticsMonitorSettings.StorageInterface property which controls the location for the meta data.

You can implement the required interface yourself but we highly recommend that you make use of the various CreateStorage(...) methods on the AnalyticsMonitorFactory for creating specialized instances of the storage interface that can be assigned to the StorageInterface property. For instance, the .NET library provides overloads for storing in IsolatedStorage (with various settings) and in specific folders on the file system.

How about virtualized environments?

The same thing applies to virtualized environments such as Citrix, where users are mounted on different machines. When you instrument an application that is to be deployed in such an environment, you should make sure that the meta data file is stored such that it roams along with the user profile. This can e.g. be done by using the CreateStorage overload that accepts a specific folder path which you can then programmatically supply as a location within the user profile,

Can I control the anonymous identifier?

No, the anonymous identifier is entirely generated and controlled by the monitor and Analytics server. If you want to add a semantic identifier to the data, please take a look at the installation id which allows you to assign your own text with the semantic value to the currently active session.

Please note that the Installation ID is not used for counting the installations or the daily users numbers, they are always calculated based on the anonymous identifier.

Contact us: +1-888-365-2779
Copyright © 2016-2018, Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.