用户活动档案和统计

我正在探索实现用于收集和显示用户特定用户活动统计信息的最佳实践/框架的最佳实践/框架,以及与ASP.NET中的登录用户活动相关的站点。 例如,我想知道我网站上的特定登录用户,他/她在最后一天,一周等访问过哪个网站。频率是多少? 前5/10? 对于整个网站,前5个热门网页或搜索字词是什么(仅基于登录用户而不是抓取工具或匿名访问)

我使用过web统计工具,如getclicky,webstats和google analytics。 它们都很棒,但跟踪是基于通用访问,但我想要的是将它与我​​的系统中定义的个人用户/角色或组织结构联系起来,并能够向利益相关者报告。

如果我们有层次结构,例如user-> department / group-> company,并尝试报告此用户的前5个站点,这也会变得更有趣? 这个部门/业务部门/集团中的用户访问的前5个网站是什么? 页面频率是多少?

问题:那么在ASP.NET中实现它的最佳方法是什么? 是否有一个httpModule处理程序,框架或产品执行此操作?

我会告诉你我做了什么。

  • 如果您在统计数据中知道自己在寻找什么,例如,如您所说, 频率是多少,然后在插入新数据时进行统计计算。

例如,假设您搜索用户A访问了多少页面。 在统计表上保留一行连接此用户A,以及您需要的信息,并在输入时计算它们,例如在每个页面中只增加多少人看到的计数器。 这样,您就可以在线统计数据避免后台工作,以及数千个行条目。 我相信您需要知道您首先要查找的统计信息,如果将来还有更多信息,那么您稍后再添加它们。

  • 您可以在页面末尾添加对统计信息计算和插入的调用,可以使用线程或调用额外的处理程序,这样用户就不会有延迟来查看页面。

例如,在页面的末尾:

 

在myStats.ashx上,保存统计数据,并返回一个emtpy gif。

  • 此外,当您显示数据时,即使您按时计算大部分信息,总会有额外的事情无法计算,当您显示此统计信息并进行此计算时,请将它们保存在额外的表缓存中以加快速度。

我不确定具体细节,但我认为您可以将自定义字段添加到Google Analytics中。 您可以使用它来记录您在服务器应用程序中记录的用户,角色和任何特定于业务的数据。 如果分析没有这个选项,Omniture肯定会这样做(它的工作方式与谷歌分析一样,因为它使用了javascript跟踪)。 Omniture不是免费的解决方案。 (www.omniture.com)

另一个想法(为了最大程度地控制登录用户的活动),您可以使用具有自定义上下文的Logging框架(例如,使用Log4Net提供程序进行Commons Logging),然后使用附加的数据库。 您可以完全控制与用户活动相关的日志记录。 通过使用附加的数据库,计算统计数据将非常简单……

我认为GA不是最适合您的解决方案。 还有很多其他WebAnalytics解决方案可以为您提供更灵活的跟踪。

我认为最好的免费解决方案是Yahoo WebAnalytics。 它将为您提供类似于GA的跟踪代码,但具有更多自定义变量。

在您的情况下,最好的付费解决方案是Adobe SiteCatalyst,具有150个自定义变量,等级变量等是市场上最好的平台。

克劳迪奥。