C# 用户活动配置文件和统计信息

C# 用户活动配置文件和统计信息,c#,asp.net,analytics,C#,Asp.net,Analytics,我只是在探索什么是实现收集和显示用户活动统计信息的最佳实践/框架,这些统计信息是特定于用户的,并且与ASP.NET中的登录用户活动相关。例如,我想知道我网站上的某个特定登录用户,他/她在最后一天、一周或其他时间访问了哪个网站。访问频率是多少?前5/10?对于整个网站来说,前5个流行页面或搜索词是什么(仅基于登录用户,而不是爬虫或匿名访问) 我使用过网络统计工具,如getclicky、webstats和google analytics。它们都很棒,但跟踪是基于一般访问的,但我想要的是将其与系统中定

我只是在探索什么是实现收集和显示用户活动统计信息的最佳实践/框架,这些统计信息是特定于用户的,并且与ASP.NET中的登录用户活动相关。例如,我想知道我网站上的某个特定登录用户,他/她在最后一天、一周或其他时间访问了哪个网站。访问频率是多少?前5/10?对于整个网站来说,前5个流行页面或搜索词是什么(仅基于登录用户,而不是爬虫或匿名访问)

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

如果我们有层次结构,比如用户->部门/组->公司,并尝试报告该用户的前5个站点,这也会变得更有趣?本部门/业务单位/集团中用户访问的前五大网站是什么?页面频率是多少


问题:那么在ASP.NET中实现这一点的最佳方法是什么?是否有一个httpModule处理程序、框架或产品可以这样做

我会告诉你我做了什么

  • 如果你知道你在统计数据中寻找什么,例如你说的,频率是多少,那么在插入新数据时进行统计计算
例如,假设您搜索用户访问了多少页面。在连接该用户的统计表上保留一行,其中包含您需要的信息,并在输入这些信息时进行计算(例如,在每一页中,只需增加已看到的数量的计数器)。这样,您就可以进行在线统计,避免后台工作和数千行条目。我相信你首先需要知道你在寻找什么样的统计数据,如果将来还有更多的统计数据,那么你以后再添加它们

  • 在页面末尾添加对统计计算和插入的调用,可以使用线程,也可以使用对额外处理程序的调用,这样用户就不会延迟查看页面
例如,在这一页的末尾:

<img src="/myStats.ashx?infos=CodeStringWithSomeInfos">

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

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

我不确定具体细节,但我觉得你可以在谷歌分析中添加自定义字段。您可以使用它来记录用户、角色以及您在服务器应用程序中记录的有关用户的任何特定于业务的数据。如果analytics没有这个选项,Omniture肯定有(它的工作原理很像google analytics,因为它使用javascript跟踪)。Omniture不是免费的解决方案。(www.omniture.com)

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

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

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

在您的案例中,我认为最好的付费解决方案是AdobeSiteCatalyst,它拥有150个自定义变量、herarchical变量等,是市场上最好的平台


克劳迪奥。

嗨,彼得,我的问题是第一行和第二行中说了什么。我会编辑这篇文章,让它变得更加明显。谢谢你提供的信息。我将在google analytics和omniture上阅读更多关于it定制的信息,并评估它们是否合适。感谢您提供的信息和分享您的知识。我仍然希望从其他做过这件事的人身上学到更多,希望有一些已知的方法,或者希望从更多的回应中,我们都可以确信有一种标准的方法:)