博客工具入门之Google Analytics
要保证博客的生存与发展,Blogger需要了解博客当前的访问状况及一定时间区间内访问状况变化的趋势,需要对博客访问者进行必要的基本分析,如 博客内的哪些内容是用户欢迎的而哪些内容用户则根本不感兴趣,找出用户如何发现您的博客 及以怎样方式浏 览您的博客的基本规律,从而有的放矢地改进博客网站的建设与推广策略等。这都要求Blogger为博客配置一款有效的访问统计及分析系统,不管怎么说,数 据是最客观的,数据反映出的规律远远比blogger仅凭个人主观的臆测更真实、更有价值。
相对于日志型的访问统计软件,Google Analytics对大多数博客网站而言最大的吸引力在于其不需进行服务器设置,简单入手即可使用,毕竟,很多虚拟主机并不提供或不免费提供诸如 AWStats、Webalizer之类的网站分析软件,也不给予用户自行安装该类软件的服务器操作权限。当然,入手简单并不意味着功能上存在缺 憾,Google Analytics可提供丰富的访问统计分析数据,如访问数、综合浏览量、访问入口网页、来源及至具体的页面跳出率、用户停留时间、地理位置等等。
本文我们将介绍Google Analytics的基本使用。
如何开始?
帐户与登录
同我们之前介绍的Google 网站管理员工具 一样,要使用Google Analytics ,同样需要您拥有一个Google帐户,比 如在Gmail、Google Reader、 Adwords、AdSense、iGoogle等中使用的帐户。
如果确实没有,可至Google帐户 免费注册。
添加网站配置
登录Google Analytics后,首先做的肯定是要添加网站配置了。
输入您的博客Url——同样地,根据博客设置的首选域,选择正确的含“www”或不含“www”的版本,如博客学堂 在此便应输入“blogsdiy.org”而不是 “www.blogsdiy.org”——设置正确的时区,一般而言,您有两个选择,根据自己所在位置或主要目标用户群体所在位置,视乎您更看重哪方面而 定,当然,对大多数中文博客而言,答案都是“中国”。
第一次使用Google Analytics的话,接下来会要求您输入联系信息以及同意Google Analytics条款的确认。然后,即至跟踪代码的页面,内中提供待插入到网页中的跟踪代码。
<script src=”http://www.google-analytics.com/urchin.js” type=”text/JavaScript”>
</script>
<script type=”text/javascript”>
_uacct=”UA-xxxx-x”;
urchinTracker();
</script>
这时,返回Google Analytics主页面,可以看到相应网站的状态为“未验证”
在博客中插入Google Analytics跟踪代码
要记录网站的访问状态,需要您将Google Analytics提供的跟踪代码插入到网站的页面中去。一般而言,应该是网站的全部页面,除非您网站中存在部分不欲被Google察觉同时也不需要分析 的页面。
简单地说,跟踪代码可放置在网页中 </body>之前的任何位置,包括网页的 <head>…</head>中,不过,考虑到JavaScript代码 可能引起的网页加载延迟 问题,建议将其置于html比较靠后的地方,如恰好在 </body>之上,除非极少数特殊情况,比如说使用网页调用如 utmLinkPost() 等需要在网页加载前便进行定义的函数。
换言之,对基于WordPress的博客,一般修改footer模板,找到</body> 的位置,在其上粘贴拷贝的跟踪代码即可。
加入代码后等上一段时间,即可看到相应网站后的“状态”显示由“未验证”改变为“接收数据”。
控制台
在要检查的网站栏点击“查看报告”链接,即可看到网站访问状态的基本数据摘要。——注:控制台显示内容可定制,即您可根据自己的需要调整出现在控制 台上的内容,以更好地提高日常操作中的效率。
在默认设置下,这里显示的是过去一个月以来的网站访问数据分析结果。——除非您的跟踪代码安装时间少于一个月,或者,您希望更有针对性地检查网站访 问情况,调整了日期范围。日期范围的调整方式如下图:
该页显示的信息相当丰富,其中绝大多数可点击查看更详细的数据。下面简单介绍其显示的内容
折线图
在右侧在面板的最上方,以图表的方式直观地显示网站的访问情况,您可以一目了然地对网站的当前状态发展趋势,是象道哥那样“处于事业的上升期” 还是不幸处于下降期,有个最基本的把握。
可查看的项目包括:
- 访问量 (Visits) : 与标准意义上的Unique Visits 还是有着一定区别的。Google Analytics 判断 Visits 的标准是一个会话周期(半个小时)内的新用户即为一个Visit,即如果一个用户相隔31分钟访问了您博客的两个页面,则会被计作 2 Visits。
- 综合浏览器 (Pageviews) : 这个不必解释,用户浏览的网页数量。
- 每次访问页数 : 用户在您的博客每次查看几页,由PageViews / visit 得出。同下面的跳出率一样,可以让您简单地判断博客内容是否与访问用户的意向相一致。过低的每次访问页数,只能证明您的博客也许具有将用户引来的能力,但 却无法“粘”住用户,需要在博客粘度 上 下点功夫。
- 跳出率 (Bounce Rate) : 至您的网站后仅查看一个网页便离开的用户比例。这是衡量博客/网站质量的重要指标,跳出率较高显然表示用户对您的内容不感兴趣——不管其是通过什么渠道来 到您的网站。
需要注意的是,跳出率高并不是绝对意义上的坏事,特别对单个的网页而言。比如说,如果您的某个页面目标本来就是希望用户点击广告、购买产品离开的,那么, 这个页面的跳出率高正说明您实现了预期中的转换效果。 - 网站平均停留时间 : 如果用户打开您的博客网站后马上离开,停留时间只有几十秒,那么显然说明其对您的博客不感兴趣。
但这个指标具有很大的迷惑性,有时网站平均停留时间高仅仅因为用户打开页面而忘了关闭而矣,特别是随着IE7也支持标签浏览后情况更是如此:许多用户往往 同时打开无数标签页,什么时候看甚至会不会看都只有天晓得。 - 新访问次数所占百分比 : 过高则说明用户对您的博客忠诚度不够,而过低则说明您的博客在招徕新用户即博客推广方面仍需更上层楼。
网站使用率
上述6项的统计数据,可分别点击相应项查看详细的每日记录
访问者概述
将上述访问者一项单列出来,可点击查看报告打开访问者统计页面
地图覆盖图
以世界地图的方式访问者的地理来源,查看报告可分析来自特定区域的用户数据,如访问次数、每次访问的综合浏览量、转换率等。
点击量来源概述
给出用户通过什么渠道到达您的网站的信息,以及不同的访问来源如搜索引擎、推介网站等在总体访问量中所占比例。
点击查看报告即打开“点击量来源”页。
内容概述
显示网站内访问量居前的网页,也即用户到达网站的主要入口。可分别查看相应网站的具体访问信息。
访问者
在这里可得到与访问者有关的绝大多数数据。包括:
- 访问者趋势 :注意这里的绝对唯一访问者人数,基本相当于UniQue Visits,其表示表示不重复(仅计数一次)的网站访问者人数,而不管用户在统计期限内是否在不同日期或不同会话周期内的多次访问。
- 访问者忠诚度 :一个用户忠诚度不足的博客显然发展动力有限,但是,博客的忠诚度过高恐怕也未必是好事,也许正 说明您在吸纳新用户方面的不足。这里主要通过忠诚度、新近度、访问时长以及访问深度几项指标衡量。
- 浏览器功能 :访问用户的操作系统、浏览器、屏幕分辨率等的统计结果。可以让您有的放矢地调整网页显示状况,比 如说,如果您的网页基于1024 x 768 设计,但访问量记录显示大部分访问用户的屏幕分辨率仍为 800 x 600 ,那么,也许您需要针对这部分用户修改一下。
- 网络属性 :包括网站位置、主机名、连接速度等。虽然大多数朋友对这部分数据并不太关心,但有时其还是具有相当 意义的。比如说主机名,指用户查看您的内容时使用的连接域名,以博客学堂为例,主机名应该是“blogsdiy.org”,但是,您也许会在该项统计中看 到许多其他的域名或IP,这时也许您就需要检查一下到底怎么回事了,是否在合理范围内,以及,使用AdSense的博客,也许要考虑一下是否应针对某些引 用量大的主机调整 AdSense的域名保护列表以避免更多的损失 (在清楚相应风险的前提下)等等。
点击量来源
提供为您的博客带来访问量的各种来源的记录,包括概述与详细信息。这也是您对自己博客建设及推广特别是博客推广策略及方法是否合适是否最佳化进行分 析的主要依据。Google Analytics将访问量来源分为三类,分别为:
- 直接点击量 : 通过书签来访或直接在浏览器中键入网址的用户访问次数;
- 搜索引擎 : 在搜索引擎结果页点击网站的访问者的访问次数,并可进一步查看在不同的搜索引擎中,用户通过怎样的搜索关键词找到您的博客的,如果您重视SEO 的话
,进而总结经验规避缺点; - 推介网站 : 从其他网站点击您的网站的访问者的访问次数;需要注意的是,Google Analytics将自身不能识别的其他搜索引擎也标记为“推介网站”,在中文领域,这类小型搜索引擎名目繁多,如电信的114、soso等。
当然,如果您使用了Google AdWords,则可与Google Analytics相结合,监控您的 AdWords 广告系列和关键字的收益率。
其他
将内容与目标两项列入其他,并不意味着这两项不重要或不值得关注,事实上,这两项也许才正能体现出Google Analytics的核心价值,让您更有针对性地优化网页及内容。只不过对这么一篇面向入门使用的介绍文章而言不太合适,也无法说得清楚。
简要地介绍一下吧:
内容
检查博客/网站内最主要的入口页面、出口页面、目标页面及其访问量构成细节,以及网站覆盖图。
通过对这些页面的具体分析,您可进而更明确地发现博客自身的优势与不足,比如说,某个网页大受欢迎,那么,为什么?其他网页与其相比存在哪些不足? 如何改进?等等。
目标
不管怎么说,博客总希望用户至网站到访后完成某个特定的目标,无论该目标是获得更多的 RSS订阅 还是更多的广告点击或者销售更多的产品。那么,从这个角度说,相对于访问量,目标转换的情况更为重要,一个不能完成预期目标的网页是失 败的。
通过设置相应的目标与渠道路径,您便可使用Google Analytics来您监控访问用户的转换过程并实际情况,这对博客/网站的价值实现而言,意义显然是无论怎样高估也不过份的。
小结
如上所言,Google Analytics是一款非常有用的工具。在您博客网站建设与推广中,您可以通过Google Analytics得到所需的各类信息与数据。
当然,要把Google Analytics用好,挖掘出其全部功能还是需要花费不少功夫的。从某种程度上,我们甚至可以可以用最常见的应用软件如Word与其类比:任何人只要会 打字便可使用Word,但很多人在Word中恐怕也只是打打字、调整字体字号、进行基本的版面调整,而事实上,Word的潜力要远比这些强大得多,甚至可 以说,对像我这样的懒人而言,可以永远都不会知道如何发挥出Word的全部能力,它的有些功能可能我根本都不知道存在。
通过对web日志的挖掘来实现内容推荐系统
先说一说问题,不知道大家有没有这样的经验,反正我是经常碰到。
举例1,某些网站每隔几天就发邮件给我,每次发的邮件内容都是一些我根本不感兴趣的东西,我不甚其扰,对其深恶痛绝。
举例2,添加具有某功能的一个msn机器人,每天都有几次突然蹦出一个窗口,推荐一堆我根本不想知道的内容,烦不烦啊, 我只好将你阻止掉。
每一个观众只想看他感兴趣的东西,而不是一下与之无关的事物,那么如何才能知道观众的兴趣所在呢,还是数据挖掘,经过一番思考,终于有点思路,即根据用户 以往的浏览历史来预测用户将来的行为,也就是基于内容的推荐。
基于内容的推荐(Content-based Recommendation)是信息过滤技术的延续与发展,它是建立在项目的内容信息上作出推荐的,而不需要依据用户对项目的评价意见,更多地需要用机 器学习的方法从关于内容的特征描述的事例中得到用户的兴趣资料。在基于内容的推荐系统中,项目或对象是通过相关的特征的属性来定义,系统基于用户评价对象 的特征,学习用户的兴趣,考察用户资料与待预测项目的相匹配程度。用户的资料模型取决于所用学习方法,常用的有决策树、神经网络和基于向量的表示方法等。 基于内容的用户资料是需要有用户的历史数据,用户资料模型可能随着用户的偏好改变而发生变化。
基于内容推荐 方法的优点是:
1)不需要其它用户的数据,没有冷开始问题和稀疏问题。
2)能为具有特殊兴趣爱好的用户进行推荐。
3)能推荐新的或不是很流行的项目,没有新项目问题。
4)通过列出推荐项目的内容特征,可以解释为什么推荐那些项目。
5)已有比较好的技术,如关于分类学习方面的技术已相当成熟。
缺点是要求内容能容易抽取成有意义的特征,要求特征内容有良好的结构性,并且用户的口味必须能够用内容特征形式来表达,不能显式地得到其它用户的判断情 况。
要实现内容推荐系统总体来说要经过4个大的步骤:
1 搜集数据,即搜集用户的行为资料,其中也包括很多方法,根据我找到的资料与以往的经验来看,web日志可以作为我们的切入点,即我们的数据来源。
2 过滤数据,web日志中有很多无用的信息,我们要把这些无用的信息排除掉,而且要区分出用户和日志数据之间的联系。
3 分析数据,利用分类聚类技术分析出这些日志数据之间的关联性,以及这些日志数据和用户之间的关联性,这也是最重要的一步。
4 输出结果。
有了这个思路之后,我们可以着手做第一步,即日志数据的收集
我们知道,大多数的web服务器都是有自己的日志记录的,比如说apache安装之后有一个logs目录,其中就有它的日志文件,一般说来它有自 己的一个格式,比如说:
1浏览器所在主机的 IP 地址(ip);
2访问日期和时间(date-time);
3客户机与服务器通信所用的方法(methed,get or post);
4客户机请求访问页面的 URL;
5服务器返回的状态(status);
6客户端浏览器的类型;
但是这个日志文件有一些不能克服的问题,或者我不知道如何克服,那么我先说说我的疑问,首先,这个日志文件中记录的是ip地址,据了解,网络中有很多计算 机的ip地址是相同的,因为他们在一个统一的路由后面,这个比例可能达到25%。那么我们就无法根据ip地址来唯一确定一个用户。其次,一般的web服务 器中都会用多个应用,那么其他应用的访问信息对我们来说有可能是多余的。再者,web服务器的日志形式比较单一,灵活性不大,可定制的余地很小,在日志数 据中有效数据所占的比例较小。还有,一些静态文件的请求也会被web服务器记录下来,比如说js文件,css文件,还有图片文件,等等这些东西对内容推荐 来说都是无用的资源。
基于上面3点原因,我认为可以自定义日志数据。为了解决用户唯一性,我们让应用为每一个浏览器生成一个clientId保存在对应的浏览器上,这样该浏览 器只要访问网站,我们就可以确定这个浏览器的唯一性,当然我们仍然不能确定浏览器使用者的唯一性,但是我们可以更进一步,如果浏览器的使用者登陆网站的 话,我们就可以使用用户id来确定用户的唯一性,不过大多数网站用户可能在使用网站的时候并不会登陆,我也是这样,没有关系,即使使用clientId问 题也不会太大,随着社会的发展,计算机的拥有量逐渐增加,一般来说一个人只会使用一台固定的电脑,在公司里尤其是这样。所以我认为clientId的方案 是可行的,也许有人要问,别人的浏览器禁止了cookie怎么办,那么我只能说没有办法,不过还好事实是绝大多数人都没有这样做。
接下来我们可以定义一下我们所需要的日志数据的格式,比如这样,
ip,clientId,userId,url,datetime,get or post等等。
这样数据有效性会大大提高。
在得到较为有效的数据之后,我们还需要对这些数据进行再次过滤:
1 去掉一些非内容的url,这些数据也是无效数据,这些非内容的url需要我们自己手工的统计出来,然后和日志数据中的数据进行比对,将这些非内容数据从日 志数据中清除出去。
2 同时我们也需要把post请求从日志数据中清除出去,或者我们在记录日志的时候根本不应该把post请求记录下来。
经过以上步骤之后我们就可以开始第3个阶段了,统计每个用户的访问的url,对这些url进行访问,得到对应的html中所包含的数据,这些数据都是文 本,将有用的文本提取出来,然后对这些有用的文本进行聚类。这样就可以得到每个用户喜欢的几个类别。
聚类完成之后我们就可以开始分类了,即把最新的文章或者内容和对应的类别进行匹配,匹配成功之后,我们可以认为这个新文章或者内容可以推荐给对应的用户。
问题:以上的流程只适用于没有使用缓存的系统,但是一般大型的网站都会使用varnish,squid等等,使用它们之后我们就无法得到用户访问的日志数 据了,所以如果使用了varnish或者squid,我们不得不再次面对web服务器的日志数据。
在不考虑varnish或者squid的情况下,使用lucene+jamon+htmlparse基本就可以实现以上推荐系统。
apache的日志access_log分析
当网站出问题时分析日志,第一步一般都不会是看访问日志。但是也不能忽视它,在访问日志中记录了很多的客户信息,如果你有心,可以从这个日志中获得很多有 用的信息!
访问日志access_log记录了所有对Web服务器的访问活动。
正如其名字所示,访问日志access_log记录了所有对Web服务器的访问活动。
下面是访问日志中一个典型的记录:
10.1.1.95 - e800 [18/Mar/2005:12:21:42 +0800] "GET /stats/awstats.pl?config=e800 HTTP/1.1" 200 899 "http://10.1.1.1/pv/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Maxthon)"
这行内容由9项构成,上面的例子中有两项空白,但整行内容仍旧分成了9项。
第一项信息是远程主机的地址。如果你想知道这个IP地址的域名,可通过nslookup或者host命令来查看。如果你想让Apache自己找出这个IP 的主机名,可以打开这个开关:HostnameLookups。(建议最好不要打开,会影响Apache记录服务器日志的速度)
第二项是空白,用一个"-"占位符替代。实际上绝大多数时候这一项都是如此。这个位置用于记录浏览者的标识,这不只是浏览者的登录名字,而是浏览者的 email地址或者其他唯一标识符。这个信息由identd返回,或者直接由浏览器返回。很早的时候,那时Netscape 0.9还占据着统治地位,这个位置往往记录着浏览者的email地址。然而,由于有人用它来收集邮件地址和发送垃圾邮件,所以它未能保留多久,很久之前市 场上几乎所有的浏览器就取消了这项功能。因此,到了今天,我们在日志记录的第二项看到email地址的机会已经微乎其微了。
第三项也是e800。这个位置用于记录浏览者进行身份验证时提供的名字。当然,如果网站的某些内容要求用户进行身份验证,那么这项信息是不会空白的。但 是,对于大多数网站来说,日志文件的大多数记录中这一项仍旧是空白的。
日志记录的第四项是请求的时间。这个信息用方括号包围,而且采用所谓的"公共日志格式"或"标准英文格式"。因此,上例日志记录表示请求的时间是2005 年3月18日12:21:42。时间信息最后的"+0800"表示服务器所处时区位于UTC之后的8小时。
日志记录的第五项信息或许是整个日志记录中最有用的信息,它告诉我们服务器收到的是一个什么样的请求。该项信息的典型格式是"METHOD RESOURCE PROTOCOL",即"方法 资源 协议"。
RESOURCE是指浏览者向服务器请求的文档,或URL。在这个例子中,浏览者请求的是"/stats/awstats.pl?config=e800 "。
在上例中,METHOD是GET,其他经常可能出现的METHOD还有POST和HEAD。此外还有不少可能出现的合法METHOD,但主要就是这三种。
PROTOCOL通常是HTTP,后面再加上版本号。
日志记录的第六项信息是状态代码。它告诉我们请求是否成功,或者遇到了什么样的错误。大多数时候,这项值是200,它表示服务器已经成功地响应浏览器的 请求,一切正常。一般地说,以2开头的状态代码表示成功,以3开头的状态代码表示由于各种不同的原因用户请求被重定向到了其他位置,以4开头的状态代码表 示客户端存在某种错误,以5开头的状态代码表示服务器遇到了某个错误。
日志记录的第七项表示发送给客户端的总字节数。它告诉我们传输是否被打断(即,该数值是否和文件的大小相同)。把日志记录中的这些值加起来就可以得知服务 器在一天、一周或者一月内发送了多少数据。
日志记录的第八项记录的是客户在提出请求时所在的目录或URL。这次的是"http://10.1.1.1/pv/"即10.1.1.1的pv目录下的首 页。大多数情况下,首页会是在httpd.conf中DocumentRoot 指令后面规定的那些类型和名字的web文件。
日志记录的第九项表示客户端的详细信息,这样你就不难理解为什么有些网站能够在页面中显示你的IP、OS、Browser了。

