Countly user statistics is less that actual number?


I did user statistics myself by reading and logging user's machine information, such as CPUID, harddisk ID, etc. But it is lack of statistic UI, so I'd like to switch to countly so that I have more power on statics UI and analysis function in future.

I use countly windows SDK to do usage analysis of my desktop application ( written in C# with WPF). I am found the user count number in countly is far less than what we counted by ourself. I am using countly community version.

I start countly session and my statistic at the event,

            // my staticstics method
            Task.Run(() => UserStatistics.SendUserStatistics("browserfirststart"));
           // countly session start. it is initialized already when the application starts up.
            Countly.RecordEvent("SessionBegun by Library");

But when I examine the statistic result. I found that the countly user number is far less the number I counted by distinctive hard-disk ID ( I assume a user has a unique hard-disk ID).

countly result : 15
distinct hard-disk ID(or distinct MAC address) : 170

so would you please elaborate how countly define a user ? I assume different user has different hardware info( hard-disk ID, MAC address, etc)


Hello, which SDK version are you using?


I am using the latest version from nuget.

After some examination, it seems that the deviceId method is CPUID by default, while CPUID may be duplicated. so I switch to multipleFields, but since new version is not released yet, so I am not sure whether it is the final solution or yet.

cc.deviceIdMethod = Countly.DeviceIdMethod.multipleFields;


It would be appreciated if someone could confirm this or correct me.



Hello, here is our description and comparison of the available device ID methods:

CPUID is the default because of legacy support. But nowadays there is a high chance of generating duplicates, especially if used on virtual machines or windows 10 devices.

Let me know if you still have question regarding device ID's.


Thank you for the message.

I use the default deviceMethod ( CPUID) at first and found that the user number is less due to CPUID is duplicated, as you explained.

Now I switched to multipleFields, but I did not see the user count increase when I have a new installation.

cc.deviceIdMethod = Countly.DeviceIdMethod.multipleFields;

I installed the new application (with multipleFields option) on a machine on which the old application(with CPUID option) was installed. But since I am switching to multipleFields, I expect the deviceID is different even it is same machine, so I expect the user count should increase.

I assume it generate different deviceID since I am using different method.

Am I right? Did I miss anything?