All notable changes to this project will be documented in this file.
SoftMeter is a free or low cost application analytics library for Windows, MacOS and IOS.
[libSoftMeter website] [libSoftMeter on GitHub].
- new function sendEventEx(const TCHAR *eventName, const TCHAR *eventAction, const TCHAR *eventLabel, const int eventValue )
Provides addtional parameter, eventName. The other function, sendEvent() uses "page_view" as the eventName.
- MacOS version does not properly send the sendGA4Event() hit
-
Internal improvements.
-
to send your GA4 hits as debug hits (visible under Admin->debug view),
call:
setOptions("debugHits=On");
Must be called before calling the start() function. -
new function bool setGA4UserProperty(const char* aPropertyName, const char* aPropertyValue);
sets a GA4 user property. You can add in this way many user properties.
Must be called before calling the start() function.
The PropertyName must not contain spaces or other special characters because the whole hit will be rejected by Google Analytics 4.
- Internal improvements.
- remove debug flag
- Drop API function setCustomDimension
- cpp-demo programs v110 support only GA4 properties (dropped support for Universal analytics UA-) Usage: cpp-demo-win G-xxxxxxx YourApiSecret
- Internal improvements.
- Screen resolution, user language, CPU model and cores, Total and free memory are sent to Google Analytics 4 as user properties.
- Support for the new GA4 type (G-xxxxxxxx) of Google analytics properties.
- Windows XP compatibility
- start() must be called only once. And terminated with stop().
- Internal improvements
- MacOS silicon (ARM64) support. Starting with v1.4.2, the dylib of SoftMeter will be distributed as "fat" universal file containing both architectures for intel's x86_64 and Apple's M1 processor, ARM64. To verify use the command:
lipo -info libSoftMeter.dylib
The results should show:
Architectures in the fat file: libSoftMeter.dylib are: x86_64 arm64
- MacOS dylib: the minimum supported MacOS version had to change from OS X Lion 10.7 to OS X Mavericks 10.9.
- Internal improvements
- In Windows DLL: undecorate _setCustomDimension@8 from the DLL so it can be linked with its simple function name
- AppEdition sent to the GA field of CampaignCode. It can be seen via GA reports as CampaignCode.
- In Windows DLL: In order to call the SoftMeter DLL from desktop software made by VisualNEO Win, the __cdecl version of the all-in-one sendEvent() function was added:
aio_sendEvent_cdecl()
Reminder: the event hits are only supported by the PRO editions of SoftMeter.
- MacOS: ARM64 architecture compatibility with a universal dylib.
-
In Windows DLL: Removed the xxxxxx_stdcall version of the functions as the plain function names are already using the stdcall calling convension.
-
Windows: digitally signed dlls and cpp-demo-win executables.
-
New function to send custom dimensions to Google Analytics.
bool setCustomDimension(const int dimensionIndex, const TCHAR* dimensionValue);
The customDimension will be sent together with the next pageView, Event, or ScreenView hit.
-
SoftMeter can automatically collect extra system information:
- CPU cores
- Total RAM memory
- Free RAM memory
- Free RAM memory (The numbers are rounded so that they appear in the reporting in aggregated groups)
- CPU model, e.g. Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz
To enable the collection of this information call the function:
setOptions("ExtraInfo=15");
before calling the start() function. Read more about the reporting for the hardware info at: https://www.starmessagesoftware.com/news/softmeter-v14-free-product-analytics-tool
- Internal improvements
- Internal improvements
- Under MacOS, change in the installation directory parameter of libSoftMeter.dylib
- More unit tests
- Internal improvements
- Small internal improvements
- MacOS only: change of SDK from version 10.8 to 10.14 to pass the (new) notarization process of the Apple Store.
- Internal improvements for the SoftMeter PRO subscription and the PRO perpetual license.
- IOS analytics demo app shows the SoftMeter log file.
- Perpetual license option, removing all limitations for SoftMeter.
- Internal improvements
- Yes, in functions: setOptions(), setSubscription(), setProxy(), and in the calling convention of the Windows DLL functions.
- Windows edition: the DLL calling conversion changed from __cdecl to __stdcall
The ready samples (c++, Delphi/Pascal, Inno setup, Installaware) were also changed to reflect this change.
The __cdecl specifier will be replaced by the __stdcall specifier.
All functions in the DLL will continue to have their __stdcall counterparts so you can still call the set you prefer. E.g.
start() // this uses the __stdcall calling conventions (which is the WIN API default)
start_cdecl() // this is the __cdecl function
start_stdcall() // this is the __stdcall function (deprecated because the start() has the same convention)
- Better compatibility with Windows 7 and Vista.
- function setOptions() to pass multiple optional developer parameters to SoftMeter.
The parameters are passed as a string containing key=value pairs, separated with a new line character "\n". Examples: To pass your SoftMeter PRO subscription details, call
setOptions( "subscriptionID=Your-subsciption-ID\n"
"subscriptionType=2\n" );
- setSubscription() is removed as setOptions() can be used to pass your subscription details.
- setProxy() is removed as setOptions() can be used to pass your proxy details.
- Internal improvements