A follow-up to the problem I posed last week about an Auto Updating Delphi Application (and for which I got a large amount of feedback, without having had time to implement any... hopefully next week). A question I'm asking myself is how (and how much) to track users, while they updating my Delphi application (or asking for updates).

This is the scenario: I want to distribute this application as much as possible, so I don't want to ask for an email of each user downloading it, or anything of that sort. However, I'd love to have some idea of its users base. One of the options is to track the users while they ask for an update (in the current implementation, each time the program starts and there is an active Internet connection). In practice, this works by default, as I'll get hits to the file with the version number(s) and can use Apache logs to create my own stats. However, I could use a little more information.

In theory, I could append to the request a user name / email asked while configuring the program. This seems very unfriendly, as far as the users privacy is concerned. Another option, which is my current favorite, is to generate a unique GUID for each "installation" and pass that ID in the incoming URL. This way I could easily count the requests I get in a day for each "unique" user and know how many "different" users have started the program... without having any real information about the users and better respecting their privacy. I guess a small disclaimer id due anyway.

On the other hand, I could write a simple server to process the data right away, instead of using off-line stats, but I don't want to pose a useless burden on the server (you know, in case the programs becomes very popular <g>). I'm also thinking of hosting the program download at some external site... but hosting the check for updates externally might eventually make sense...

I guess this is something many of you had to tackle... and I'd like to know what you have done and what you suggest in my scenario.