C++-如何获得用户进行UI操作的数据,以及用户是否使用其他竞争类产品的数据?
记录用户操作UI的数据有利于我们对产品进行改进。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
记录用户操作UI的数据有利于我们对产品进行改进。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(5)
对于记录用户操作UI的数据,可以用一下步骤:
1、对所有UI的操作都定义相应的类别,比如一个游戏有商城系统,并且有两个入口可进入商城1界面,那么在这两处定义 "store_main", "store_foot"。
2、通过这些UI的操作,将数据统计起来,可以用hash表记录,比如操作 "store_main",没操作一次就 +1。
3、将统计数据发送到服务器端。这步可以分情况处理,先在客户端缓存,定时(比如10分钟)发送一次数据给服务端。至于发送的方式,因为不需要返回,可以用img请求一个链接或者用ajax发送都可以。
至于用户是否使用其他竞争类产品,如果是客户端的,搜集信息;如果是 web 的,不知道是否可以通过检查cookie的方式处理?
如果只是“记录用户操作UI的数据有利于我们对产品进行改进”,如果涉及到“用户是否使用其他竞争类产品的数据”这个就完全不同了。有点像3Q大战时代,360发现QQ进行硬盘扫描、进程扫描等等,虽然用户感觉不出来,但是系统本身是有监听的,如果你要做这类事情,那么祈祷这些用户没有反扒的工具。了解到楼主应该是为了记录用户操作自己的产品,进行模块数据分析,那么我推荐 Google Analytics (AS3使用方法参照 见,其他平台类似),它的功能很强大,并且输出成各种柱状图,直观的分析出哪部分用户操作次数频繁。
如果是自己的客户端这个问题还比较好解决,楼上几位的方法均可以借鉴。但如果要记录用户行为,就要进行底层事件监控了
包括:鼠标、键盘、目标进程信息、窗口名称、点击信息等等。这个技术实现起来不麻烦,难就难在如果用这些技术在竞争对手身上。。
这个属于监控软件了,用户可能会说这是间谍软件。不过间谍软件的事,共享软件干多了。例如:暴风影音偷偷起个进程做p2p共享、360搜集用户数据等等。需要单独开发一个程序,做成服务进程,开机自启动。有下面两种方法实现你的需求:
1.触警截屏。监控进程(自己的程序、竞争对手)是否正在运行,笨一点的方法,采用不断枚举进程的方法。资源消耗小的方法,是修改被监控程序的PE头,导入表加入一项--我们程序的,不用做成服务,进程运行就会调用我们的程序。监控到了间隔性的截屏(若键盘鼠标没动则不截),保存到本地,然后发送。
2.录制鼠标键盘事件宏。被监控进程运行后,开始录制脚本宏。发送到接收端播放宏,就可以重放用户的操作。当然屏幕分辨率和被监控进程的摆放要和用户一致。录制脚本宏采用SetWindowsHook的方法,参见:VC++鼠标键盘的录制与回放
在我们做的客户端中,也有类似的用户操作统计。实现起来不复杂,一般是在用户操作发生的时候记录起来,在一个固定的时间比如程序退出的时候提交到服务器。