收集有关应用程序使用情况的数据的最佳方法是什么?

时间:2021-09-19 16:57:02

My company releases a small software product for which I've recently been taking over the development side. It is a C# Windows Forms application.

我的公司发布了一个小的软件产品,我最近一直在负责开发。它是一个c# Windows窗体应用程序。

One of the things I've noticed is that much of the information about how the software is used is filtered through my superiors and I get the feeling that I'm missing important detail in some of the messages.

我注意到的一件事是,关于如何使用这个软件的许多信息都是通过我的上级过滤的,我觉得我在一些信息中漏掉了重要的细节。

I realise I'll have to work on the management issues with this situation, however in order to give another view on the problem I've been considering a technological solution. Perhaps something similar to the "Microsoft Customer Experience Improvement Program".

我意识到我将不得不在这种情况下处理管理问题,然而,为了对我一直在考虑的技术解决方案给出另一种看法。也许类似于“微软客户体验改进计划”。

I was wondering if anyone out there had any experience or advice monitoring and reporting on user behaviour in their applications?

我想知道是否有人在他们的应用程序中有任何经验或建议来监视和报告用户行为?

5 个解决方案

#1


3  

I would suggest you get your application to write its "usage information" somewhere and then, with the users permission, transmit it electronically every so often.

我建议你让你的应用程序在某个地方写下它的“使用信息”,然后,在用户允许的情况下,每隔一段时间就把它发送出去。

Note the emphasis above. Depending on your jurisdiction, you could get into serious trouble transmitting any sort of data from someone else's computer without permission.

注意上面的重点。根据你的权限,你可能会在未经允许的情况下,从别人的电脑上传输任何类型的数据。

You're more likely to get permission if:

你更有可能得到许可:

1/ You make it clear, on install or update, that your program will collect information and transmit it only with permission.

1/您在安装或更新时明确表示,您的程序将收集信息并仅在获得许可的情况下传输。

2/ You explain clearly what the information is and that it only holds "usage information", nothing that can be traced back to the user of the software (NO serial numbers, etc).

2/你清楚地解释了信息是什么,它只持有“使用信息”,没有任何东西可以追溯到软件的用户(没有序列号等)。

3/ You request permission to transmit infrequently. If I had an obnoxious program that asked me daily, I'd soon stop using it altogether.

你请求允许不经常地传送。如果我有一个讨厌的程序每天都问我,我很快就会完全停止使用它。

#2


0  

I believe that you've already received a good answer to your question re the privacy aspect of the technological solution.

我相信你的问题已经得到了一个很好的答案——关于技术解决方案的隐私方面。

I would also like to mention that you should try to use HTTP or HTTPS over normal 80/443 ports - these are the least likely to cause problems with the firewalls and proxy. Use MS IE proxy settings as they are usually set properly.

我还想指出的是,您应该尝试在正常的80/443端口上使用HTTP或HTTPS——这些端口最不可能引起防火墙和代理的问题。使用MS IE代理设置,因为它们通常设置正确。


From a totally different prospective I would like to say that the best way to learn about the usage of your software is to check if you have any 'friendly' users in your install base and interview them. It could be some partner company or people who are your 'pilot group' for the betas of new release. Talk to them. Grap your manager and spend a day going to their site if possible and just seeing for yourself how and then they click the buttons. Make notes. Listen to the feedback. Establish personal relationship so next time they talk to you directly.

从一个完全不同的角度,我想说,了解你的软件使用情况的最好方法是检查你的安装库中是否有“友好”用户,并对他们进行面试。它可以是一些合作伙伴公司或者是你的新版本beta的“试验组”。与他们交谈。如果可能的话,让你的经理花一天时间去他们的网站,看看他们是怎么做的,然后点击按钮。做笔记。听取反馈。建立人际关系,以便下次他们直接与你交谈。

If your application is small and your company is no Microsoft its much better to be close to your userbase than to collect anonymous usage data which takes significant effort to collect and process and then even more effort to understand.

如果您的应用程序很小,而且您的公司不是微软,那么最好是靠近您的用户基础,而不是收集匿名使用数据,这需要花费大量的精力来收集和处理,然后还要花费更多的精力来理解。

#3


0  

One idea is to send anonymous statistics with your users' permission.

一种方法是在用户允许的情况下发送匿名统计信息。

Another idea is to provide a big report bug/ask question button in your app so they can tell you when something they think is wrong happens you'd send app state along the report.

另一个想法是在你的应用中提供一个大的报告错误/问问题按钮,这样他们就可以告诉你什么时候他们认为是错误的事情发生了,你可以在报告中发送应用状态。

Always be clear on what are you going to be sending and make users have an option to be non anonymous (always set anonymized data as default) and you might be surprised when you get a lot of non anonymous data by choice of users.

始终要清楚要发送什么,并让用户可以选择非匿名(总是将匿名数据设置为默认值),当用户选择大量非匿名数据时,您可能会感到惊讶。

And be clear by using users' language, NEVER say things like "I'm going to send a Blowfish encrypted memory dump of the current state of the application's stack and heap. Yes/no?", but things like "I'm going to send a list of your activity in the program: the buttons you clicked and the type and amount of files you opened. This will help us to create a better program for you but you can choose what you want us to receive. "

通过使用用户的语言,不要说“我要发送一个由应用程序堆栈和堆的当前状态加密的内存转储”之类的东西。是/否?,但是像“我要在程序中发送你的活动列表:你点击的按钮,你打开的文件的类型和数量。”这将帮助我们为您创建一个更好的程序,但是您可以选择您希望我们接收的内容。”

#4


0  

Disclaimer: I am a developer on this product, so I may be a bit biased on how great it is :)

免责声明:我是这款产品的开发人员,所以我可能会对它有一点偏见:

There is currently a product on the market that can provide you with this functionality for both .NET and Java applications that we call Runtime Intelligence. See: http://www.preemptive.com/runtime-intelligence-services.html for details.

目前市场上有一种产品可以为。net和Java应用程序提供这种功能,我们称之为运行时智能。详情参见:http://www.preemptive.com/runtime-intelligence-services.html。

This product is currently shipping for both .NET and Java and a free version offering a limited feature set will be included in Visual Studio 2010.

这个产品目前正在为。net和Java提供服务,一个免费的版本提供一个有限的功能集将被包括在Visual Studio 2010中。

Usage of an application can be tracked ranging from high level statistics on number of times executed and on which Operating System/Framework versions down to the frequency of usage of individual features.

可以跟踪应用程序的使用情况,从执行次数的高级统计,操作系统/框架版本的高度统计,到各个特性的使用频率。

We provide a way for you to give your users either an opt-in or opt-out choice in the transmission of the usage data and the data is sent either over SSL (the default) or standard HTTP. The performance impact on your application is minimal and we take great care to not impact the responsiveness of your code.

我们为您提供了一种方式,让您的用户在传输使用数据时可以选择加入或退出,并且数据可以通过SSL(默认)或标准HTTP发送。对应用程序的性能影响很小,我们非常注意不影响代码的响应性。

This solution is great for evaluations or beta testing as you can track the usage of your application directly rather than relying on surveys or guessing at what the users are doing.

该解决方案对于评估或beta测试非常有用,因为您可以直接跟踪应用程序的使用情况,而不必依赖调查或猜测用户在做什么。

For released applications this provides the scaffolding of a customer experience improvement program and the visibility into the accumulated data is valuable to everyone from upper management down to the developer.

对于已发布的应用程序,它提供了一个客户体验改进程序的框架,并且对从上层管理到开发人员的每个人都有价值。

We have found that it takes less than an hour to set up an application for basic usage reporting with no code changes required since we can work directly on the assembly binaries.

我们发现,为基本使用报告设置应用程序需要不到一个小时,不需要任何代码更改,因为我们可以直接处理汇编二进制文件。

For pricing information or to obtain an evaluation please contact sales from our website as I'm just a developer :)

关于价格信息或获得评估,请联系我们网站的销售,因为我只是一个开发人员:)

For detailed technical information or any other questions feel free to contact me.

如需详细的技术信息或其他任何问题,请随时与我联系。

#5


0  

Actually, I think you're trying to do simple Business Intelligence.

实际上,我认为你在尝试做简单的商业情报。

Don't forget to set the "appropriate" dashbord in order to track your collected data, think deeply on the indicator you'll implement.

不要忘记设置“适当的”dashbord以跟踪收集到的数据,深入思考您将实现的指示器。

#1


3  

I would suggest you get your application to write its "usage information" somewhere and then, with the users permission, transmit it electronically every so often.

我建议你让你的应用程序在某个地方写下它的“使用信息”,然后,在用户允许的情况下,每隔一段时间就把它发送出去。

Note the emphasis above. Depending on your jurisdiction, you could get into serious trouble transmitting any sort of data from someone else's computer without permission.

注意上面的重点。根据你的权限,你可能会在未经允许的情况下,从别人的电脑上传输任何类型的数据。

You're more likely to get permission if:

你更有可能得到许可:

1/ You make it clear, on install or update, that your program will collect information and transmit it only with permission.

1/您在安装或更新时明确表示,您的程序将收集信息并仅在获得许可的情况下传输。

2/ You explain clearly what the information is and that it only holds "usage information", nothing that can be traced back to the user of the software (NO serial numbers, etc).

2/你清楚地解释了信息是什么,它只持有“使用信息”,没有任何东西可以追溯到软件的用户(没有序列号等)。

3/ You request permission to transmit infrequently. If I had an obnoxious program that asked me daily, I'd soon stop using it altogether.

你请求允许不经常地传送。如果我有一个讨厌的程序每天都问我,我很快就会完全停止使用它。

#2


0  

I believe that you've already received a good answer to your question re the privacy aspect of the technological solution.

我相信你的问题已经得到了一个很好的答案——关于技术解决方案的隐私方面。

I would also like to mention that you should try to use HTTP or HTTPS over normal 80/443 ports - these are the least likely to cause problems with the firewalls and proxy. Use MS IE proxy settings as they are usually set properly.

我还想指出的是,您应该尝试在正常的80/443端口上使用HTTP或HTTPS——这些端口最不可能引起防火墙和代理的问题。使用MS IE代理设置,因为它们通常设置正确。


From a totally different prospective I would like to say that the best way to learn about the usage of your software is to check if you have any 'friendly' users in your install base and interview them. It could be some partner company or people who are your 'pilot group' for the betas of new release. Talk to them. Grap your manager and spend a day going to their site if possible and just seeing for yourself how and then they click the buttons. Make notes. Listen to the feedback. Establish personal relationship so next time they talk to you directly.

从一个完全不同的角度,我想说,了解你的软件使用情况的最好方法是检查你的安装库中是否有“友好”用户,并对他们进行面试。它可以是一些合作伙伴公司或者是你的新版本beta的“试验组”。与他们交谈。如果可能的话,让你的经理花一天时间去他们的网站,看看他们是怎么做的,然后点击按钮。做笔记。听取反馈。建立人际关系,以便下次他们直接与你交谈。

If your application is small and your company is no Microsoft its much better to be close to your userbase than to collect anonymous usage data which takes significant effort to collect and process and then even more effort to understand.

如果您的应用程序很小,而且您的公司不是微软,那么最好是靠近您的用户基础,而不是收集匿名使用数据,这需要花费大量的精力来收集和处理,然后还要花费更多的精力来理解。

#3


0  

One idea is to send anonymous statistics with your users' permission.

一种方法是在用户允许的情况下发送匿名统计信息。

Another idea is to provide a big report bug/ask question button in your app so they can tell you when something they think is wrong happens you'd send app state along the report.

另一个想法是在你的应用中提供一个大的报告错误/问问题按钮,这样他们就可以告诉你什么时候他们认为是错误的事情发生了,你可以在报告中发送应用状态。

Always be clear on what are you going to be sending and make users have an option to be non anonymous (always set anonymized data as default) and you might be surprised when you get a lot of non anonymous data by choice of users.

始终要清楚要发送什么,并让用户可以选择非匿名(总是将匿名数据设置为默认值),当用户选择大量非匿名数据时,您可能会感到惊讶。

And be clear by using users' language, NEVER say things like "I'm going to send a Blowfish encrypted memory dump of the current state of the application's stack and heap. Yes/no?", but things like "I'm going to send a list of your activity in the program: the buttons you clicked and the type and amount of files you opened. This will help us to create a better program for you but you can choose what you want us to receive. "

通过使用用户的语言,不要说“我要发送一个由应用程序堆栈和堆的当前状态加密的内存转储”之类的东西。是/否?,但是像“我要在程序中发送你的活动列表:你点击的按钮,你打开的文件的类型和数量。”这将帮助我们为您创建一个更好的程序,但是您可以选择您希望我们接收的内容。”

#4


0  

Disclaimer: I am a developer on this product, so I may be a bit biased on how great it is :)

免责声明:我是这款产品的开发人员,所以我可能会对它有一点偏见:

There is currently a product on the market that can provide you with this functionality for both .NET and Java applications that we call Runtime Intelligence. See: http://www.preemptive.com/runtime-intelligence-services.html for details.

目前市场上有一种产品可以为。net和Java应用程序提供这种功能,我们称之为运行时智能。详情参见:http://www.preemptive.com/runtime-intelligence-services.html。

This product is currently shipping for both .NET and Java and a free version offering a limited feature set will be included in Visual Studio 2010.

这个产品目前正在为。net和Java提供服务,一个免费的版本提供一个有限的功能集将被包括在Visual Studio 2010中。

Usage of an application can be tracked ranging from high level statistics on number of times executed and on which Operating System/Framework versions down to the frequency of usage of individual features.

可以跟踪应用程序的使用情况,从执行次数的高级统计,操作系统/框架版本的高度统计,到各个特性的使用频率。

We provide a way for you to give your users either an opt-in or opt-out choice in the transmission of the usage data and the data is sent either over SSL (the default) or standard HTTP. The performance impact on your application is minimal and we take great care to not impact the responsiveness of your code.

我们为您提供了一种方式,让您的用户在传输使用数据时可以选择加入或退出,并且数据可以通过SSL(默认)或标准HTTP发送。对应用程序的性能影响很小,我们非常注意不影响代码的响应性。

This solution is great for evaluations or beta testing as you can track the usage of your application directly rather than relying on surveys or guessing at what the users are doing.

该解决方案对于评估或beta测试非常有用,因为您可以直接跟踪应用程序的使用情况,而不必依赖调查或猜测用户在做什么。

For released applications this provides the scaffolding of a customer experience improvement program and the visibility into the accumulated data is valuable to everyone from upper management down to the developer.

对于已发布的应用程序,它提供了一个客户体验改进程序的框架,并且对从上层管理到开发人员的每个人都有价值。

We have found that it takes less than an hour to set up an application for basic usage reporting with no code changes required since we can work directly on the assembly binaries.

我们发现,为基本使用报告设置应用程序需要不到一个小时,不需要任何代码更改,因为我们可以直接处理汇编二进制文件。

For pricing information or to obtain an evaluation please contact sales from our website as I'm just a developer :)

关于价格信息或获得评估,请联系我们网站的销售,因为我只是一个开发人员:)

For detailed technical information or any other questions feel free to contact me.

如需详细的技术信息或其他任何问题,请随时与我联系。

#5


0  

Actually, I think you're trying to do simple Business Intelligence.

实际上,我认为你在尝试做简单的商业情报。

Don't forget to set the "appropriate" dashbord in order to track your collected data, think deeply on the indicator you'll implement.

不要忘记设置“适当的”dashbord以跟踪收集到的数据,深入思考您将实现的指示器。