标签归档:点击流

SkyGlue—用GA标记用户生成点击流

skyglue  最早看到SkyGlue这个工具是在Cloga博客的文章,后来经过jasseyyang的推荐,向SkyGlue的cindy申请开通了博客GA账号的试用。经过一段时间的使用,现在来简单介绍一下SkyGlue这个工具。

  SkyGlue是Google Analytics的一个扩展工具,基于对网站中唯一访客的识别和标记,自动追踪网站的事件监控,记录用户操作的点击流数据。SkyGlue同样是通过JS页面标记进行安装部署,不过前提是你已经部署了GA的代码,因为SkyGlue其实是对GA标记的扩展。SkyGlue的JS会自动判断并监控页面的可交互按钮和链接,包括输入框、视频、图片等,监控用户的交互操作,并将结果通过事件追踪(Event Tracking)的函数提交给GA。

  SkyGlue提供的功能,主要是为了弥补GA本身存在的一些缺陷:

1、  GA用cookie标识访客,但是无法查看每个访客的信息和访问行为;

2、  GA用cookie标识访客,无法真正识别到用户,如果使用用户注册ID会更加准确;

3、  GA用Event Tracking可以定制监控用户的交互事件,但如果需要定制大量的用户交互,设置过于繁琐;

4、  无法追踪用户的生命周期,特别是对于跨Visit的分析和转化计算,比较无能为力;

5、  无法区分用户个体行为,使针对用户行为的细分和分析变得困难;

6、  GA大部分数据基于前后的页面浏览串联,对于页面中相同链接的点击操作未做区分,对站外链接的点击未做监控。

  来看一下SkyGlue的报表页面截图,用户的列表里面显示了自动生成的用户ID、来源、国家、城市及在所选时间段内的总访问数和页面浏览量:

 skyglue-users

  点击每个Userid就可以进入该用户的点击流数据,按照操作的时间排序,如:

skyglue-events

  上图是在SkyGlue网站的User Report上查看数据,报表会对用户操作做下分类,包括Pageview和Click,Click显示了用户通过点击哪个链接或者图片进入了页面,Pageview则显示了进入的页面的URL。同样在Google Analytics里面也可以在Event的报表中查看这些细节数据,对于SkyGlue的具体功能和使用这里不详细介绍,有兴趣的朋友可以去他们的网站查看。(这篇文章主要是看到SkyGlue这个工具能够弥补GA的一些功能缺陷,而且完全基于GA本身进行扩展,无论是工具的实现和一些细节设置都有许多可取之处,当然也因为cindy的邀请,希望将他们的工具在国内做些介绍,所以只是想介绍一下这个工具的功能和对分析的帮助,没有任何广告的意思,如果不喜欢的可以忽略这篇文章。另外,SkyGlue是需要收费的)

  SkyGlue提供的功能在分析上体现的价值主要两方面:一是使针对独立访客的分析成为可能二是使针对客户操作细节的分析成为可能

  首先,GA是不提供用户的点击流数据的,也就是我们无法区分每个用户去观察用户的操作步骤,GA的数据都是经过一定维度聚合的,这样就丧失了对独立用户进行分析的可能性。通过SkyGlue的扩展,对访问网站的每个访客做了标记(类似GA的cookie,自动生成一个字符串来标识访客,同时可以标记注册用户的UserId,注册登录后可以在Track registered users里面设置网站的注册登录页面及相应的表单元素的名称),这样GA就具备了每位访客维度的数据,不仅可以观察每个访客在一个访次(Visit)内的浏览和操作情况,更重要的是可以跟踪访客的整个生命周期的行为,合并多个Visits分析每位用户行为,同时针对用户特定行为的过滤和细分也成为可能。最常见的就是我们要分析那些访问深度(Depth)很长的用户,他们到底是频繁穿梭于各类导航索引页面一直迷失,还是真正在浏览他们感兴趣的内容;或者用户如果未在一次访问中完成转化,那么有没有可能在之后继续访问并完成转化,他们在转化前做了什么?同时可以分析每位用户的忠诚度指标和生命周期价值的体现。

  然后就是操作细节,从图中我们可以看到SkyGlue对用户操作的记录是非常完整的,不仅有Pageview,同时包含了用户点击链接(动作包含“A”关键字)的链接名或者点击图片(动作包含“img”关键字)的图片名,如果是站外链接会有“outbound”标记进行区分,还有输入标记“INPUT”等,这就一次性解决了GA中隐藏的一系列问题:无法区分指向相同链接的点击、无法监控站外链接的点击等。这些对网站用户体验的分析优化是非常有用的,具体可以参考博客中关于点击情况分析和用户体验分析的文章。另外,SkyGlue在自动识别监控可交互页面元素的基础上也支持自己定制需要监控的页面事件,可以在登录进去之后的Customize Event Tracking添加新事件的监控或者变更现有事件。

  既然SkyGlue解决了一些GA的局限性,具备了使用的价值,同时也给使用带来了一些复杂性。SkyGlue基于标识用户之后使用GA的事件监控生成了用户的点击流数据,输出了大量的细节数据,这些数据细到用户的每一步点击和输入操作,对于观察分析而言就没有GA本身的聚合数据那么直观了,所以就需要更多地结合过滤和细分的方法去处理和定制数据,SkyGlue提供了一些定制的报表,结合Event Tracking对Category=>Action=>Label的钻取,让我们可以更加有效地去做些分析。但GA的优势就在于使用的灵活性和可定制性,对于那些DIY能力强的人来说,细节数据往往能够给他们带来更加丰富的分析视角,所以如果你喜欢自己捣腾下GA的话,也可以试试SkyGlue这个工具。

网站分析的数据来源

Data-Center   Avinash Kaushik在他的《Web Analytics》一书中将数据的来源分为4部分:点击流数据(Clickstream)、运营数据(Outcomes)、调研数据(Research/Qualitative)和竞争对手数据(Competitive Data)。点击流数据主要指的是用户浏览网站时产生的数据;Outcomes我更习惯叫做运营数据,主要指用户在网站中应用服务或者购买产品时记录下来的数据;调研数据主要是网站通过某些用户调研手段(线上问卷或者线下调研)获取的一些定性数据;Competitive Data直译为竞争对手数据可能不太合适,因为根据Avinash Kaushik的阐述,更像是跟网站有业务关系或竞争关系或存在某种利益影响的一切网站的可能的数据来源。

  在获取上述几类数据的同时,也许我们还可以从其他方面获取一些更为丰富的数据。下面是我对网站分析数据获取途径的整理:

网站内部数据

  网站内部数据是网站最容易获取到的数据,它们往往就存放在网站的文件系统或数据库中,也是与网站本身最为密切相关的数据,是网站分析最常见的数据来源,我们需要好好利用这部分数据。

服务器日志

  随着网站应用的不断扩张,网站日志不再局限于点击流的日志数据,如果你的网站提供上传下载、视频音乐、网页游戏等服务,那么很明显,你的网站服务器产生的绝不仅有用户浏览点击网页的日志,也不只有标准的apache日志格式日志,更多的W3C、JSON或自定义格式的输出日志也给网站分析提供了新的方向。

  网站分析不再局限于网页浏览的PV、UV,转化流失等,基于事件(Events)的分析将会越来越普遍,将会更多的关注用户在接受网站服务的整个流程的情况:上传下载是否完成,速度如何;用户是否观看的整部视频,视频的加载情况;及用户在玩网页游戏时的操作和体验分析等。Google Analytics已经支持了基于事件的分析——Event Tracking,通过JS的动作响应获取数据,但是还存在着一定的局限性。

网站分析工具

  当然,通过网站分析工具获得数据是一个最为简便快捷的方式,从原先的基于网站日志的AWStats、webalizer,到目前非常流行的基于JS Tags的Google Analytics、Omniture的SiteCatalyst,及JS和网站日志通吃的WebTrends。通过网站分析工具获得的数据一般都已经经过特殊计算,较为规范,如PV、UV、Exit Rate、Bounce Rate等,再配上一些趋势图或比例图,通过细分、排序等方法让结果更为直观。

  但通过网站分析工具得到数据也不远只这些,上面的这些数据也一样可以通过统计网站日志获得,但网站分析工具的优势在于其能通过一些嵌入页面的JS代码获得一些有趣的结果,如Google Analytics上的Overlay或者也叫Click Density——网站点击密度分布,及一些其它的网站分析工具提供的点击热图,甚至鼠标移动轨迹图。这些分析结果往往对网站优化和用户行为分析更为有效。

数据库数据

  对于一般的网站来说,存放于数据库中的数据可以大致分为3个部分:

  • 网站用户信息,一般提供注册服务的网站都会将用户的注册账号和填写的基本信息存放在数据库里面;
  • 网站应用或产品数据,就像电子商务的商品详细信息或者博客的文章信息,如商品信息会包含商品名称、库存数量、价格、特征描述等;
  • 用户在应用服务或购买产品时产生的数据,最简单的例子就是博客上用户的评论和电子商务网站的用户购买数据,购买时间、购买的用户、购买的商品、购买数量、支付的金额等。

  当然,这一部分数据的具体形式会根据网站的运营模式存在较大差异,一些业务范围很广,提供多样服务的网站其数据库中数据的组合会相当复杂。

其它

Customer-Service

  其它一切网站运营过程中产生的数据,有可能是用户创造,也有可能是网站内部创造,其中有一大部分我们可以称其为“线下数据(Offline Data)”。如用户的反馈和抱怨,可能通过网站的交流论坛,也有可能通过网站时公布的客服电话、即时通讯工具等,如果你相信“客户中心论”,那么显然对于这些数据的分析必不可少;另外一部分来源就是网站开展的线下活动,促销或推广,衡量它们开展的效果或投入产出,以便于之后更好地开展类似的线下推广。

外部数据

  网站分析除了可以从网站内部获取数据以外,通过互联网这个开放的环境,从网站外部捕获一些数据可以让分析的结果更加全面。

互联网环境数据

  即使你的网站只是一个很小的网站,但如果想让你的网站变得更好,或者不至于落后于互联网的前进脚步,那么建议你关注一下互联网的发展趋势。可以上Alexa查一下互联网中顶级网站的访问量趋势;看看comScore发布的数据或者艾瑞的数据分析报告;如果经营电子商务网站,那么刚刚上线的淘宝数据中心也许会让你感兴趣。

竞争对手数据

  时刻关注竞争对手的情况可以让你的网站不至于在竞争中落伍。除了在Alexa及一些其他的网站数据查询平台以外,直接从竞争对手网站上获取数据也是另外一条有效的途径,一般网站会出于某些原因(信息透明、数据展示等)将自己的部分统计信息展现在网站上,看看那些数据对于掌握你的竞争对手的情况是否有帮助。

合作伙伴数据

  如果你有合作的网站或者你经营的是一个电子商务网站,也许你会有相关的产品提供商、物流供应商等合作伙伴,看看他们能为你提供些什么数据。

用户数据

  尝试跟踪用户的脚步去看看他们是怎么评价你的网站的。如果你的网站已经小有名气,那么尝试在搜索引擎看看用户是怎么评价你的网站,或者通过Twitter、新浪微博等看看用户正在上面发表什么关于你的网站的言论。

  当然通过用户调研获取数据是另外一个不错的途径,通过网站上的调查问卷或者线下的用户回访,电话、IM调查,可用性实验测试等方式可以获取一些用户对网站的直观感受和真实评价,这些数据往往是十分有价值的,也是普通的网站分析工具所获取不到的。

  在分析网站的外部数据的时候,需要注意的是不要过于相信数据,外部数据相比内部数据不确定性会比较高。网站内部数据即使也不准确,但我们至少能知道数据的误差大概会有多大,是什么原因造成了数据存在误差。而外部数据一般都是有其他网站或机构公布的,每个公司,无论是数据平台、咨询公司还是合作伙伴都可能会为了某些利益而使其公布的数据更加可信或更具一定的偏向性,所以我们在分析外部数据是需要更加严格的验证和深入的分析。而对于用户调研中获取的数据,我们一般会通过统计学的方法检验数据是否可以被接受,或者是否满足一定的置信区间,这是进行数据分析前必须完成的一步。

从WEB日志到点击流

  我们平常在看网站分析相关文章的时候,时常会看到“点击流(Clickstream)”这个词,点击流数据是网站分析的主要来源。那么究竟什么是点击流数据,它又来源于何处,为什么它是网站分析的基础数据?关于这些问题的系统解释,推荐阅读《点击流数据仓库》这本书,这里先对这几个问题做下简单的回答。

  首先,点击流来源于何处?可能从文章标题就可以看出来了,点击流数据来源于网站日志,其实就是用户日常浏览你的网站时产生的日志信息(关于WEB日志,可以参阅这篇文章——WEB日志格式)。那为什么不直接叫网站浏览日志,而叫点击流数据呢?可以先看一下下面这张图:

clickstream

  从图上可以看出点击流这个概念更注重用户浏览网站的整个流程,网站日志中记录的用户点击就像是图上的“点”,而点击流更像是将这些“点”串起来形成的“线”。也可以把“点”认为是网站的Page,而“线”则是访问网站的Session。所以点击流数据是由网站日志中整理得到的,它可以比网站日志包含更多的信息,从而使基于点击流数据统计得到的结果更加丰富和高效。

  那么点击流数据是如何从WEB日志中扩展出来的呢?其实很简单,只要有Sessionid和站内Referrers就可以将这些“点”串联起来。其中Sessionid唯一地标识一条点击流,再通过Referrers确定这个Session中页面被依次访问的顺序,那么这条线就可以轻松地画出来了。

  通常我们会分两张表(数据库中)或两种格式的文件(文件系统中)来记录点击流数据,一张记录“点”的信息,另一张记录“线”的信息:

  线(Session)的信息:Sessionid(唯一标识符)、访问来源(Referrers)、进入页面(Entrance)、离开页面(Exit)、开始时间(Begin Time)、结束时间(End Time)、访问时长(Time on Site)、访问页面数(Depth of Visit)、访问用户(Cookie)……

  有没有发现,当你拥有这些信息时,很多网站分析度量的计算变简单了:来源(Sources)、进入页面(Entrances)、离开页面(Exits)可以直接获得,平均访问时间和平均浏览页面数也可以通过简单计算得到,连Bounce Rate的计算也变得简单了,只要选择那些访问页面数为1的“线”就行。

  点(Page)的信息:URL、点击时间(Hit Time)、页面停留时间(Time on Page)、位于Session的第几步(Step),Sessionid(在关系数据库中可以用于跟Session表的外键关联)……

track

  其实点的信息被简化了,当然你可以添加更多的信息,比如页面响应状态码,冗余访问用户的Cookie等。但是这里多了一个有意思的信息——Step,这个是基于Session的,通过Step你可以发现其实你已经追踪到了用户的访问足迹,这个信息在梳理网站的流程、计算转化率(Conversion Rate)的时候非常有用,也可以基于它做用户行为分析。

  其实这就是点击流,并没有那么复杂,但是可以注意到,当WEB日志转化成点击流数据的时候,很多网站分析度量的计算变得简单了,这就是点击流的“魔力”所在。基于点击流数据我们可以统计出许多常见的网站分析度量——网站分析的基本度量