【问题标题】:Social Networking and Usage Logging社交网络和使用记录
【发布时间】:2011-05-15 00:24:15
【问题描述】:

从第一天起,应该在社交网络类型的网站上记录哪些类型的数据,以便将来进行有用的统计分析?此外,您还学到了哪些有关站点日志记录的其他提示和技巧?根据站点的规模,是否经常值得将日志记录到平面文件,并出于站点性能原因定期将数据加载到数据库中?

我在这里考虑服务器端日志记录——不仅仅是通用的谷歌分析/piwik 类型日志记录。为了快速回答问题,以下是我想到的一些简单的方法:

  • IP 地址
  • 用户标识信息,如果已登录(用户 ID)
  • HTTP_REFERRER
  • 是ajax调用(bool)
  • 会话ID(会话也应该单独永久记录吗?)
  • 自会话开始以来的第 N 次观看次数
  • 某种信息表明用户在哪个页面上(正在使用控制器?网址路径?)
  • 时间戳

【问题讨论】:

    标签: php mysql zend-framework logging social-networking


    【解决方案1】:

    嗯,对于初学者来说,“通用 google 分析/piwik 类型日志记录”实际上通常比服务器端日志处理更强大 - 您可以设置/获取各种 cookie,您可以从客户端提取大量信息,仅对 Javascript 可用,等等。甚至在 Javascript 中获取一个简单的 visitor_id cookie 也比在服务器端更容易 - 您必须设置一些 Web 服务器模块来推送会话 cookie,这与 WAA 标准的 30 分钟等不同.

    通常,在设计要记录的变量/字段时,您需要考虑您希望使用哪些报告/聚合。例如:

    • 谁是最活跃的用户?
    • 社交网络中网站/页面/页面类型的哪些部分访问量最大?
    • 您希望用户实现的各种目标之间的漏斗转换是什么?
    • 他们来自哪里(如果您为他们付费,例如使用广告,这尤其有用)以及他们之后如何实现目标?
    • 谁为您的网站提供最有用(停留时间最长、观看您的大部分广告,等等?)的用户?
    • ...

    与流行的观点“记录一切,稍后整理”相反,记录不是一个被动的过程,而是一个主动的过程。您很可能最终希望将一些 cookie 推送给将标记他们的用户:

    • 会话 ID
    • 访客 ID
    • 原始来源/引荐来源网址(即外部引荐来源网址、搜索引擎/查询、广告等)
    • 访问次数、访问频率、会话持续时间
    • 目标的状态/成就
    • 等等……

    所有这些都需要服务器(和/或 Javascript 集合 sn-p)和访问者浏览器之间的交互,而不仅仅是被动日志记录。

    【讨论】:

    • ...刚刚发现:piwik.org/docs/javascript-tracking 我一直认为这是一个绝妙的方法,但我从来不知道 piwik 有这个能力
    • 在 Openstat 网络分析系统中,我们允许在每个事件中发送任意数量的用户变量。稍后,这些变量在集群中使用用户控制的 java 代码进行处理,每行调用一次,以生成我们所说的“计算值”。然后,用户可以根据这些“计算值”获得任意数量的报告——它们可以用作按键字段分组、聚合字段等。
    • 从 piwik 1.2 开始,您现在可以像这样记录自定义变量:piwikTracker.setCustomVariable(1,"user_id",1234);
    【解决方案2】:

    记录每个请求(查询字符串等)。记录所有 HTTP 变量

    “HTTP_ACCEPT”、“HTTP_ACCEPT_CHARSET”、“HTTP_ACCEPT_ENCODING”、“HTTP_ACCEPT_LANGUAGE” 'HTTP_CONNECTION'、'HTTP_HOST'、'HTTP_REFERER'、'HTTP_USER_AGENT'

    (可能与每个请求一起)。

    由于您从第一天开始就感兴趣,因此不必担心可以从原始日志中派生的信息。你可以在以后做任何你想做的处理。

    如果资源是一个约束(它们不应该在开始),您可以像 HTTP_USER_AGENT 等上的哈希一样优化。

    【讨论】:

      【解决方案3】:

      高流量网站的 PHP 编码人员应该研究 Scribe。 Scribe 最初由 Facebook 开发,现在开源,是一种在应用程序中记录事件以供日后分析的好方法。有关 scribe 和其他提示的更多信息,请查看logging for analysis purposes 上的这篇文章。

      【讨论】:

        【解决方案4】:

        您可能已经知道,记录太多而不是太少。

        如果您记录所有请求的请求行和标头,您应该有很多信息可以在以后挖掘。例如。这将为您提供上面列出的大部分内容(或者可以从中扣除)。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-10-01
          • 2014-12-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-07-27
          相关资源
          最近更新 更多