Installation analytics for Inno Setup
- What is Inno Setup
Inno Setup is one of the best installation (Setup/Uninstall) tools for Windows software. It is also free.
As a result, it is loved by the independent shareware developers.
InnoSetup has several 3rd party add-ons that further enhance its capabilities.
Our SoftMeter library can be used as an InnoSetup add-on.
- What is SoftMeter for Inno Setup
SoftMeter (formely libAppTelemetry) telemetry library allows software developers to see installation statistics/analytics of their shareware software via their free Google Analytics account.
Our library tracks installation statistics, such as Country, Operating System, Screen resolution, Application version and sends them to Google Analytics.
Google analytics has numerous reports (even real-time view) and can also show you aggregated data such as installations per month, installations per country, etc.
Our library is currently free. You can include it in your setup in a couple of hours. This is a pretty good deal for the independent shareware/software developers.
Having usage statistics in your software is vital to the success of your software.
- How to add SoftMeter to your Inno Setup script
You will need two files, installation-statistics-script.iss and libSoftMeter.dll, from our GitHub page:
The installation-statistics-script.iss file contains some InnoSetup script, some Delphi source code and the implementation instructions. Open the file in Inno setup (or any other preferred code editor) and follow the instructions inside the file.
procedure trackInstallation(appName, appVersion, appLicense, appEdition, PropertyID:PAnsiChar); var eventAction: string; begin iStart(appName, appVersion, appLicense, appEdition, PropertyID, TRUE); // Here we track the installation with a Google Analytics "Event" hit. // Depending on the monitoring model you create for your software you can alternatively send PageViews or ScreenViews. // In our model we decided that "Events" should be considered as milestones in the software's usage. // E.g. Download, Installation, Registration, Uninstall. // We send PageViews and ScreenViews hits for the daily usage of the software. // E.g. App launch, User went to settings screen, user created a new invoice, etc. // With this separation we avoid having the important actions (e.g. installation) // burried in the noise that the high volume of PageViews or ScreenViews create. eventAction := appName + ' Install'; iSendEvent(PAnsiChar(eventAction), 'Install', 1); iStop; end; procedure trackUninstall(appName, appVersion, appLicense, appEdition, PropertyID:PAnsiChar); var eventAction: string; begin uStart(appName, appVersion, appLicense, appEdition, PropertyID, TRUE); eventAction := appName + ' Uninstall'; uSendEvent(PAnsiChar(eventAction), 'Uninstall', -1); uStop; end;During the install, the event value is 1, while during the uninstall is -1. This way, GA will automatically calculate the "net" installations.
- What kind of reports can I have about my software installations?
- Below you can see some report examples. These screeshots are from a report we created to monitor our own shareware.
We shared the report template as "Installs vs uninstalls of desktop software" on the Google Analytics solutions gallery. You can import it from there, into your G.A. property.
After including the library in your setup, you can release your new software version and start monitoring in Google Analytics how many installations you have, under which operating systems, the countries of the users, etc.