热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

网站流量统计中的用户识别方法

1、基于IP的用户识别IP地址是最容易获取的信息,任何的WEB日志中均会包含,但其局限性也较为明显:伪IP、代理、动态IP、局域网共享同一

1、基于IP的用户识别

IP地址是最容易获取的信息,任何的WEB日志中均会包含,但其局限性也较为明显:伪IP、代理、动态IP、局域网共享同一公网IP出口……这些情况都会影响基于IP来识别用户的准确性,所以IP识别用户的准确性比较低,目前一般不会直接采用IP来识别用户。

获取难度:★

准确度:★

2、基于IP+Agent的用户识别

同样基于最简单形式的WEB日志,我们可以增加一项——Agent,来提高单一IP方式识别用户的准确性。Agent也是WEB日志中一般都会包含的信息,通过IP+Agent的方式可以适当提高IP代理、公用IP这类情况下用户的分辨度,同时通过Agent还可以识别网络爬虫等特殊“用户”,但同样准确度也欠高。

获取难度:★

准确度:★★

3、基于COOKIE的用户识别

当你通过自定义Apache日志格式或者Javascript的方法获得用户COOKIE的时候,其实你已经找到了一个更有效的用户识别的手段。COOKIE在未被清除的其前提下可以认为是跟某个访问客户端电脑绑定的(一个客户端有可能包含多个COOKIE),所以用COOKIE来标识用户其实指的是用户使用的客户端电脑,而并非用户本身。

用COOKIE识别用户的方法当然也存在缺陷:最常见的就是COOKIE被清除而导致用户无法与原先记录实现对应;同时由于客户端电脑会被共用,或者用户会在不同的电脑上访问你的网站,这个时候COOKIE就无法直接对应到该用户了。

获取难度:★☆

准确度:★★☆

4、基于用户ID的用户识别

基于用户ID的用户识别是最为准确,因为一般情况下用户不同共享他的用户ID,所以我们可以认为数据中的userid唯一地指向该用户,几乎不存在偏差。当然要使用用户ID来识别用户是需要一定的前提条件的:网站必须是提供用户注册登录服务的,并且可以通过一些手段在点击流数据中记录 userid。

获取难度:★★

准确度:★★★

所以对于一个需要用户ID注册登录的网站来说,用户唯一标识符的选择可以遵从以下顺序:当用户注册登录时以userid为准,当用户在未登录状态浏览时以用户的COOKIE为准,当用户未登录且COOKIE无法获取的情况下以IP+Agent为准;这样就能从最大程度上识别唯一用户。

这里推荐一个网站日志中COOKIE项的自定义设置方法,以便更好地识别用户。COOKIE是从用户端存放的COOKIE文件记录中获取的,这个文件里面一般在包含一个COOKIEid的同时也会记下用户在该网站的userid(如果你的网站需要注册登陆并且该用户曾经登录过你的网站且 COOKIE未被删除),所以在记录日志文件中COOKIE项的时候可以优先去查询COOKIE中是否含有用户ID类的信息,如果存在则将用户ID写到日志的COOKIE项,如果不存在则查找是否有COOKIEid,如果有则记录,没有则记为”-”,这样日志中的COOKIE就可以直接作为最有效的用户唯一标识符被用作统计。当然这里需要注意该方法只有网站本身才能够实现,因为用户ID作为用户隐私信息只有该网站才知道其在COOKIE的设置及存放位置,第三方统计工具一般很难获取。
获取用户信息的途径

通过以上的方法实现用户身份的唯一标识后,我们可以通过一些途径来采集用户的基础信息、特征信息及行为信息,然后为每位用户建立起详细的 Profile:

1) 用户注册时填写的用户注册信息及基本资料;

2) 从网站日志中得到的用户浏览行为数据;

3) 从数据库中获取的用户网站业务应用数据;

4) 基于用户历史数据的推导和预测;

5) 通过直接联系用户或者用户调研的途径获得的用户数据;

6) 有第三方服务机构提供的用户数据。
识别并获取用户信息的价值

通过用户身份识别及用户基本信息的采集,我们可以通过网站分析的各种方法在网站是实现一些有价值的应用:

* 基于用户特征信息的用户细分;
* 基于用户的个性化页面设置;
* 基于用户行为数据的关联推荐;
* 基于用户兴趣的定向营销;
* ……


推荐阅读
  • docker镜像重启_docker怎么启动镜像dock ... [详细]
  • 简化报表生成:EasyReport工具的全面解析
    本文详细介绍了EasyReport,一个易于使用的开源Web报表工具。该工具支持Hadoop、HBase及多种关系型数据库,能够将SQL查询结果转换为HTML表格,并提供Excel导出、图表显示和表头冻结等功能。 ... [详细]
  • 本文介绍了一个基于 Java SpringMVC 和 SSM 框架的综合系统,涵盖了操作日志记录、文件管理、头像编辑、权限控制、以及多种技术集成如 Shiro、Redis 等,旨在提供一个高效且功能丰富的开发平台。 ... [详细]
  • 并发编程 12—— 任务取消与关闭 之 shutdownNow 的局限性
    Java并发编程实践目录并发编程01——ThreadLocal并发编程02——ConcurrentHashMap并发编程03——阻塞队列和生产者-消费者模式并发编程04——闭锁Co ... [详细]
  • 使用JS、HTML5和C3创建自定义弹出窗口
    本文介绍如何结合JavaScript、HTML5和C3.js来实现一个功能丰富的自定义弹出窗口。通过具体的代码示例,详细讲解了实现过程中的关键步骤和技术要点。 ... [详细]
  • Logback使用小结
    1一定要使用slf4j的jar包,不要使用apachecommons的jar。否则滚动生成文件不生效,不滚动的时候却生效~~importorg.slf ... [详细]
  • MySQL Debug 模式的实现与应用
    本文详细介绍了如何启用和使用 MySQL 的调试模式,包括编译选项、环境变量配置以及调试信息的解析。通过实际案例展示了如何利用调试模式解决客户端无法连接服务器的问题。 ... [详细]
  • 本文介绍了如何在Django项目中使用django-crontab库来设置和管理定时任务,包括安装、配置、编写定时任务以及常见问题的解决方案。通过具体实例,帮助开发者快速掌握在Django中实现自动化任务的方法。 ... [详细]
  • 本文探讨了大型服务端开发过程中常见的几个误区,包括异步任务处理不当、日志同步模式使用、网络操作未设置超时、缓存命中率及响应时间未统计、单一缓存模式、分布式缓存加锁不当以及团队管理上的误区,旨在帮助开发者避免这些常见错误。 ... [详细]
  • 本文探讨了Web开发与游戏开发之间的主要区别,旨在帮助开发者更好地理解两种开发领域的特性和需求。文章基于作者的实际经验和网络资料整理而成。 ... [详细]
  • XWiki 数据模型开发指南
    本文档不仅介绍XWiki作为一个增强版的wiki引擎,还深入探讨了其数据模型,该模型可在用户界面层面被充分利用。借助其强大的脚本能力,XWiki的数据模型支持从简单的应用到复杂的系统构建,几乎无需直接接触XWiki的核心组件。 ... [详细]
  • 全能终端工具推荐:高效、免费、易用
    介绍一款备受好评的全能型终端工具——MobaXterm,它不仅功能强大,而且完全免费,适合各类用户使用。 ... [详细]
  • 本文总结了MySQL的一些实用技巧,包括查询版本、修改字段属性、添加自动增长字段、备份与恢复数据库等操作,并提供了一些常见的SQL语句示例。 ... [详细]
  • Spring Cloud因其强大的功能和灵活性,被誉为开发分布式系统的‘一站式’解决方案。它不仅简化了分布式系统中的常见模式实现,还被广泛应用于企业级生产环境中。本书内容详实,覆盖了从微服务基础到Spring Cloud的高级应用,适合各层次的开发者。 ... [详细]
  • 探讨GET与POST请求数据传输的最大容量
    在Web开发领域,GET和POST是最常见的两种数据传输方法。本文将深入探讨这两种请求方式在不同环境下的数据传输能力及其限制。 ... [详细]
author-avatar
傻孩纸黄国帅哟
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有