Google Tag Manager 入门指南

Google 近期发布了:Tag Manager 产品(http://www.google.com/tagmanager/),适用于站点多,运行多套:流量,广告系统的用户。部署一份脚本,然后根据规则,加载对应的脚本,方便修改和管理,还支持版本和调试等功能。中文帮助在这儿:http://support.google.com/tagmanager/?hl=zh-Hans,国外的话,之前也有很多类似的商业产品。

在正式使用Google Tag Manager之前,我们先看看没有这个工具之前,我们是如何管理Tag脚本的。

Step 1:

按照Google Analytics的配置要求,我们把如下的脚本放到网站全局的页脚,如:footer.inc:

<script type=”text/javascript”>
var _gaq = _gaq || [];
_gaq.push(["_setAccount", "UA-XXXXXX-1"]);
_gaq.push(["_trackPageview"]);
(function() {
var ga = document.createElement(“script”); ga.type = “text/javascript”; ga.async = true;
ga.src = (“https:” == document.location.protocol ? “https://ssl” : “http://www”) + “.google-analytics.com/ga.js”;
var s = document.getElementsByTagName(“script”)[0]; s.parentNode.insertBefore(ga, s);
})();
</script>

这样全站的访问数据就会提交到Google Analytics的服务器。

一个星期后,我们发现Google Analytics对国内的搜索引擎识别不好,于是又添加了如下的代码:

_gaq.push(
["_addOrganic", "baidu", "word"],
["_addOrganic", "so.360.cn", "q"],
["_addOrganic", "sogou", "query"]
);

随着业务分析的深入,我们会更频繁的修改这儿的脚本,而一个web站点往往会有多台服务器,每次修改,会涉及到版本发布和部署的问题,非常的不方便。

Step 2:

总是骚扰IT部门的同事不太好,我们决定把这儿的统计脚本独立出来,并放到独立的文件域,如:www.mysite_file.com/track/site_a.js,然后把这个js的引用放到全局的页脚:

<script type=”text/javascript” src=”www.mysite_file.com/track/site_a.js”></script>

这样后边要修改统计脚本时,只要修改这个js脚本即可。

为了更好的管理这儿的脚本,还可以把这儿的:site_a.js,site_b.js等脚本放到代码管理工具下,如:svn下,每次修改后,保存一个版本并添加注释,这样即使脚本有问题,也可以及时回退。

Step 3:

我们的业务蓬勃发展,对于脚本定制性的要求越来越高,如:

1.需要对特定的页面,设置用户变量。
2.如果从某个引用页过来,则触发事件。
3.在记录站点搜索结果时,需要读取搜索的结果数,而这个结果数,是放在一个Html文本框内。
4.需要快速的添加广告系统代码,如:AdWords,DoubleClick。

以判断页面地址为例:

完全匹配:
if (location.pathname == “/en/list.aspx”) { … }

以某个地址开始的情况,如:/cate1/ 或 /cate2/目录:
if (location.pathname.indexOf(“/cate1/”) == 0 || location.pathname.indexOf(“/cate2/”) == 0) { … }

通配符,如:文章的地址:/article_123:
If (/article_d+/.test(a)) { … } // 这儿用正则表达式来匹配末尾的数字。

实际的匹配条件会有很多种,这对于没有代码基础的网站分析人员可真是一种挑战啊,另外写完的判断脚本,测试也是个问题,有可能需要先发布,然后:alert或 console.log来辅助测试。

Step 4:

半年以后,我们的网站分析人员或成为了代码编写高手,或每天继续被这些常见的问题困扰,大大影响了本职分析工作的展开,那么是否有更好的方式来管理,修改,测试,发布我们的统计脚本吗?

先整理一下基本需求:

  1. 希望简化日常的代码:修改,发布,测试,版本管理。
  2. 希望常用的代码能够重用,或修改一下参数就可用。
  3. 希望根据特点的条件加载对应的统计脚本,这儿的条件设置,希望能简单一些。
  4. 希望有常见广告系统的代码模板,填一下参数即可。

这个时候,你就可以考虑Google Tag Manager 产品了,首先他完全免费,其次界面操作,权限管理等,和Google Analytics操作习惯类似,可以很快上手。

账号添加:

首先你需要注册一个新账号,用gmail邮箱即可,然后创建一个Account:

指定默认的Container名称,可选的,输入站点域名:

提示你添加如下的代码到自己的站点:

然后会提示你创建:Google Analytics,Adwords等统计的Tag,我们选稍后加。

基本概念:

Container
也就是容器了,容器里会包括相关的代码和判断加载逻辑,可以从:Container Settings里查看复制加载脚本。

Tag
代码段,如一段Google Analytics代码,一段百度统计代码,tag归属于当前的Container,tag有多种类型,目前有:Google Analytics,Adwords,Doubleclick等类型,还可以选择:Custom Html Tag来自定义代码,对于Google Analytics统计,最好的方式还是Custom Html Tag,因为现在的Google Analytics类型的tag可定制的地方很少。

Rule:
加载规则,默认的是,All pages规则,可以自己添加,以和Tag关联,决定在什么条件下,加载指定的tag。

Macro:
宏,预定义的名称键值对,默认有:event,referrer,url三个宏,宏可以应用在rule和tag里,rule里作为筛选条件,tag里会被替换成当前值。

Google Analytics统计代码的添加与发布:

  1. 添加Container的加载脚本到自己站点的全局页脚
  2. 添加一个Custom Html Tag,把默认的Google Analytics的统计代码加到HTML文本框内,注意要包含:<script type=”text/javascript”> 标签,同时要点击:Add Rule to Fire Tag按钮,添加默认的All pages规则。
  3. 点击在Versions -> Overview页面的右上角,Create Version,选择Save and Preview,这时会进入调试模式,在弹出的对话框里,点击:jiyang.me链接。

    在默认的首页下方,会提示当前页面加载的tag脚本与名称。

     

  4. 确认没有问题后,我们回到最新的版本,这儿是版本3,选择右上角的:Publish即可。

定制与筛选:

假设我们希望在博客的关于页添加一些定制脚本,如:触发个view_about事件,我们可以这样做:

  1. 添加一个新rule,名称叫:about_page,条件是 url 等于:http://jiyang.me/?page_id=13
  2. 添加一个新tag,名称叫:about_track,触发的规则选:about_page,保存。
  3. 创建一个新版本,在调试模式中测试,这时我们在首页会看到:ga_track被触发,about_track没有触发,再进入关于页,这时2个tag都提示被触发了。

注意点:

  1. Tag里是不支持document.write形式的脚本的。
  2. Tag里的脚本是异步加载的,不保证执行顺序,这样如果是Google Analytics的事件代码,要写上:var _gaq = _gaq || [];,保证gaq被初始化。
  3. 预览和调试,在发布前,选择预览或调试,可以指定当前站点加载指定版本的代码,相关说明在这儿:http://support.google.com/tagmanager/bin/answer.py?hl=zh-Hans&answer=2695660

Tag Manager的风险:

凡事都有风险,使用Tag Manager虽然可以方便我们管理脚本,但也增加了所有鸡蛋都放在一个篮子里的风险。

  1. 有可能影响前端加载速度,以我们的部署的Container为例,实际加载的脚本是:http://www.googletagmanager.com/gtm.js?id=GTM-K9GV,你可以用一些测速工具看一下加载速度和文件大小是否可以接受,我这边测了一下,电信和网通平均在200毫秒这样,大体可以接受。这儿的gtm.js的浏览器缓存时间大概是15分钟,如果要强制刷新,可以在js的末尾加个附加的参数如:&v=1。
  2. 被墙的风险,这个还真是麻烦,解决的办法是:祈祷不会被墙 或者 本地缓存这个gtm.js脚本,在全局的页脚加载本地缓存的js文件。可以参考我的这篇文章:《多站点Google Analytics脚本部署与管理》

小结:

Google Tag Manager引入了更好的统计脚本管理,调试,发布方式,减少了IT部门的压力,让网站分析人员可以专注于业务逻辑,如果你的站点多,脚本复杂,不妨试一试这个产品。如果你有问题或想法,欢迎与我讨论,我的微博:@jasseyyang或在知乎里给我提问:http://www.zhihu.com/people/jiyang

参考:

  1. 官方帮助:http://support.google.com/tagmanager/?hl=zh-Hans
  2. 开发者中心:https://developers.google.com/tag-manager/
  3. Justin Cutroni大神的系列文章:http://cutroni.com/blog/category/tag-management-2/
  4. Cloga的:Google Tag Manager简介:http://www.cloga.info/2012/10/10/google-tag-manager%E7%AE%80%E4%BB%8B/
  5. 肖庆的:Google Tag Manager,免费可靠的标签管理工具:http://xiaoq.in/net/google-tag-manager/
  6. Tag里的价值:管理Tag的创业公司Tealium获1050万美元投资:http://www.36kr.com/p/135233.html

     

Google Analytics站内搜索分析思路与方法 – 基础篇

不管是电子商务,还是SNS社区,或内容型站点,都少不了站内搜索功能,通过站内搜索,用户可以快捷的找到他关心的内容,某些情况下,站内搜索的比例会高于按分类查找内容,如:亚马逊,豆瓣读书等。

以电子商务型站点为例,我们看一下基本的分析思路和方法。

1 有多少访问做了站点搜索,占全站访问数的比例是多少?

我们需要知道站内搜索的比例,如果比例低,可以看站内搜索文本框的位置是否不够明显。

然后通过细分,看做了站内搜索的访问的平均PV,平均停留时间,以及购买转化率是否高于全站的平均指标,如果站内搜索的次数少,但转化率高,则值得进一步的优化。

2 用户从哪里开始站内搜索?

用户习惯于在首页就开始搜索,还是在商品内页,或者是促销专题页。
还可以看用户在不同页面搜索时的关注点,如:在计算机图书分类页,搜索了哪些关键字?

3 用户站内搜索时的分类与选项?

用户是默认全部分类就直接搜索,还是先选了分类再做搜索?

如果发现大部分人都是对全部分类搜索,则不如去掉复杂的搜索选项,然后在搜索结果里做好分类和排序。在搜索结果页,还可以观察用户的排序习惯,是喜欢按价格,还是按热门来排序。

4 用户搜索时用的关键字?

这个无疑是最重要的数据了,相当于免费的用户调查,用户主动告诉你,我关注这个,我关注那个。

对于关键字,需要看,关键字的分布,长短,如:用户是喜欢搜索:硬盘,还是详细的:希捷硬盘,或空格分开的词语组合:2T IDE硬盘。

如果关键字分布比较集中,集中在少数关键字,则可以考虑手工优化搜索结果,把重要的,热门的商品放在前面,以及放上相关的推荐等。

如果关键字多为词语组合或短句子,则开发人员就要忙了,得处理好中文分词啥的。

另外还要看重要关键字每天搜索次数的变化情况,这样可以找出热门的关键字,如随着苹果新款iPhone的发布,iPhone这个关键字会热门起来。

5 用户搜索的关键字能否找到内容?

需要记录找不到内容的关键字,及时发送给运营编辑人员。还可以考虑在找不到内容的结果页,让用户留下联系方式,告知添加了相关商品时,会及时和他联系,这样也可以很好的改进用户体验。

6 用户搜索后的行为特点?

这个相对复杂一些,关注点也会有所不同,一般会看以下数据:

  1. 有多少访问,搜索后,直接离开?退出的比例,我们称之为:搜索退出百分比,这个比例相当于用户在用脚投票,如果比例很高,则表示搜索结果对用户缺少吸引力,或用户总是找不到结果。
  2. 有多少访问,做了搜索后,紧接着做了下一次搜索?我们称之为:搜索优化百分比,这个出现在:找不到内容,搜索的内容太多,太少的情况,用户尝试换一个关键字搜索,如:先搜索:索尼,这时出来了索尼电脑,索尼录音笔,索尼随身听,于是用户缩小范围,搜索:索尼录音笔,这次找到了关注的商品。
  3. 用户搜索后的,平均看了多少页面,以及平均停留时间,通过这个数据我们可以分析搜索结果,是否对用户起到引导与帮助。
  4. 做了站内搜索的购买转化率,这个很重要,可以看哪些关键字更容易产生购买,如果在GA里开启了电子商务报告,还可以看到关键字与购买的商品的对应关系。

小结

站内搜索的分析和优化是一件需要长期进行和持续优化的事情,还可以结合不同时期的关注点,分析不同的内容,如:

  1. 看新访客站内搜索的比例和搜索的关键字。
  2. 看搜索引擎过来的用户的搜索习惯,如:用户可能在百度搜索:卡西欧,来到你的站点后,站内搜索:电子词典。
  3. 看搜索结果中商品的展示次数和点击次数,由此找出点击率高的热门商品,这个需要定制,我会在后面的文章说明。

这篇文章主要是和大家讨论一下站内搜索分析的思路,如果你有更好的思路或问题,欢迎与我讨论,我的新浪微博:@jasseyyang

这儿提到的大部分内容,在Google Analytics的站内搜索报表中都有对应的内容,在下一篇:《Google Analytics站内搜索分析思路与方法 – 操作篇》,我会和大家介绍具体的操作。

参考:

Google Analytics官方帮助:
https://support.google.com/analytics/bin/answer.py?hl=zh-Hans&answer=1012263&topic=1031951&ctx=topic

优化网站内部搜索 – joeghwu
http://webdataanalysis.net/personal-view/optimize-site-search/

Google Analytics功能篇—站内搜索 – 蓝鲸
http://bluewhale.cc/2010-03-26/google-analytics-site-search.html

淘宝站内搜索的优化
http://www.biaodianfu.com/taobao-seo.html

Kick Butt With Internal Site Search Analytics
http://www.kaushik.net/avinash/kick-butt-with-internal-site-search-analytics/

 

Google Analytics中高级细分的配置与使用

简介

对于访问量大的站点,用户的来源会相对复杂,如:

  1. 从不同的城市
  2. 不同的设备(pc,手机,平板)
  3. 不同的流量来源(搜索引擎,引荐,直接)

从访客类型看,可分为:

  1. 新访客
  2. 回访客

从用户访问的内容看,我们会关心:

  1. 访问了首页的用户行为
  2. 购买了课程的用户的行为

如果不加区分的看总体的数据,我们会看到一个平均,隐藏了细节的数据,如:
看到平均PV是5,你会觉得站点的访问情况还不错,用户比较喜欢我们的站点。

但应用了新,老访客细分后,会看到:
新访客(第一次来的用户)平均PV:2
老访客平均PV:14
新老访客的比例是:3 : 1

这时问题就比较严重了,站点新访客比例很高,同时平均pv很低,这说明站点对新访客缺少吸引力,需要做改进了。应用了细分后,还可以看新访客浏览最多的页面,有针对性的优化这些页面。

基本概念:

细分的基本单位是:访问(visit),应用了细分后,查看站点数据后,看到的就是符合条件的访问数据了。

张三:
上午,在百度搜索:自行车
第一次来到自行车销售页访问了:首页,/zt/bike,/bike/bike_id=123
共3个页面
 

下午,直接输入 /zt/bike 来到自行车销售专题
访问了:/zt/bike,/bike/bike_id=456
共2个页面

李四:
上午,直接输入自行车销售站的首页地址
访问了:首页,/zt/bike,/bike/bike_id=997
共3个页面

总体的数据:
访问数是3
唯一身份访问者是2
总pv是8(3+2+3)

当我们应用:搜索引擎流量细分:
访问数是1
唯一身份访问者是2
PV是3

如果指定细分条件是:访问过首页的流量,这时:
访问数是2 (张三的上午,李四的上午)
唯一身份访问者是2 (张三,李四)
PV是6 (3 + 3)

应用默认的高级细分:

点击工具条的高级细分:

这时会看到已经提供了一些默认的细分。

如果想比较:新老访客的访问情况,可以同时选择:新访者,回访者。

创建自定义细分:

点工具条的高级细分:新自定义细分。

我们创建一个访问了首页的细分。

先创建条件1,指定页面完全匹配:/
因为我们的站点经历过一次改版,新的首页地址是 /new/
所以添加条件2,页面完全匹配: /new/

这2个条件是或关系,访问过任意一个新老首页都可以。

保存前,可以点一下:测试细分按钮,看看相关条件有没有匹配的访问。

确认没有问题后,保存即可。

相关资料:

官方帮助:

https://support.google.com/analytics/bin/answer.py?hl=zh-Hans&answer=1033017&topic=1032940&rd=1

蓝鲸的网站分析笔记:

使用Google Analytics细分网站流量1—为什么要细分
http://bluewhale.cc/2010-03-02/google-analytics-traffic-segmentation.html

使用Google Analytics细分网站流量2—分割频道流量
http://bluewhale.cc/2010-03-04/google-analytics-channels-traffic-segmentation.html

使用Google analytics细分网站流量3—细分用户流量
http://bluewhale.cc/2010-03-08/google-analytics-user-traffic-segmentation.html

使用Google analytics细分网站流量4—交叉细分
http://bluewhale.cc/2010-03-09/google-analytics-traffic-cross-segmentation.html

 

 

Google Analytics中的快捷方式(Shortcut)功能介绍

今天打开Google Analytics,发现在报表的工具条上增加了快捷方式(Shortcuts)按钮。

顾名思义,点击该按钮,会添加一个链接到Home分类的Shortcuts列表下,下次点链接,可以快捷的看对应报表,官方的帮助在这儿:http://support.google.com/analytics/bin/answer.py?hl=en&answer=2676996

如果你认为这只是一个快捷方式就错了,功能不只如此,我们一般看报表时,会根据需要,做一些:筛选,排序,细分操作。

如标准的关键字列表:

因为我会关注移动相关的关键字,所以我按:移动筛选:

这时列出了移动的关键字,然后我想按水平百分比看关键字的访问情况:

这时比较直观了,同时我还想知道新老访客的访问情况,没问题,选择细分:

结果如下:

这时列出的数据就对我就很有用了,并且我最近一段时间,都会关注这儿的移动关键字访问情况,于是点工具条的:Shortcut,创建一个新的Shortcut。

下次我就可以方便的在Shortcuts列表看这个报表了,之前的设置都在,很方便吧。

注意这儿的工具条上还有个Save按钮,当你查看这个报表时,如果修改了一些设置,可以点击保存。

总体来讲:

GA的快捷方式(Shortcut)功能,支持保存当前报表的:筛选,排序,细分相关设置,以方便下次查看。

操作上,比创建自定义报告方便,还支持基于指标的筛选,如只显示:跳出率高于80%的移动关键字,这是细分和自定义报告的筛选条件里没有或不方便的。

你可以认为GA的快捷方式(Shortcut)是对当前报表的自定义视图,当然这个功能还属于Beta阶段,不支持Shortcuts列表里的排序,分组,和分享给别人,另外这儿按指标筛选条件,如果添加到Dashboards时会丢失。

最喜欢GA的一点就是他们每隔一段时间,就会在:产品功能,分析思路,和界面操作的人性化上做改进,这样大家也可以跟着学习提高,如果你喜欢这一新功能,不妨与我交流,我的新浪微博:@jasseyyang,或者订阅我的博客:http://jiyang.me/?feed=rss2

官方的介绍见这儿:http://analytics.blogspot.com/2012/08/get-to-your-data-faster-announcing.html

Google Analytics配置文件技巧之只包含文章访问流量

以内容系统为例,页面会包括:首页,列表页,站内搜索页,帮助关于页等类型,作为站点运营,核心的目标是:新老访客,访问数,文章浏览量,人均文章浏览量等指标。

默认情况下,所有的页面访问数据是混杂在一起的,假设今天的平均PV是5,我们没办法知道用户是访问了5篇文章,还是列表页看了5次,也没办法比较新老用户的人均文章浏览量。

简单的做法是,添加一个新的配置文件:site_article,在过滤器里,只包含文章的流量,假设我们的文章浏览地址是:www.jiyang.me/tools/article_1001.html这样的地址,那么只要创建这样的过滤器即可:

即按文章的url信息来过滤,如果你的文章url不是那么规范,也可以按别的条件过滤,如:标题里的关键字。

过滤器生效后,在site_article这个配置文件下,你就可以把页面浏览量,平均页面浏览量,等信息看着是:文章浏览量,人均文章浏览量了。

假设我们想知道深度浏览用户的访问量,还可以创建站点目标:

指定文章浏览量超过3篇,即为深度浏览用户,通过添加这样的目标,帮助我们发现重要的流量来源,假设有2个外站推荐,带来的访问数都差不多,但其中一个的深度浏览用户比例很高,这时我们就可以认为该站点带来的用户质量比较高。

假设站点的结构比较好,我们还可以在:内容深入分析(Content Drilldown)报表下,看各个分类的文章浏览量:

在这个图上,我们可以看出google analytics相关的文章浏览量最大,然后是工具类的文章。

另一个你应该看的报表是:参与(Engagement)报表下的,页面访问深度:

可以看平均文章浏览量下的明细数据,因为平均数不可靠,假设人均文章浏览量为5,有可能每个人都看了5篇文章,也有可能两级分化,一部分人只看了1篇文章,一部分人每次看很多文章。在这个图上,我们可以看出,有一半的人,只看了一篇文章,有三分之一的人看了2到5篇文章,少量的人,每次看更多的文章。

小结:

通过只包含文章访问流量,有助于我们不需要细分筛选就可以在标准流量报表里,看到有价值的数据,制定站点目标,方便发现重要的流量来源和关键字等信息。当然这样的配置文件里,跳出率,平均停留时间等数据会不准确,毕竟不是完整的访问流量,看的时候,关注主要的报表即可。

GA中使用事件追踪站内引荐流量

从整站看流量来源可以分为:搜索引擎流量,直接流量,引荐流量。
其中引荐流量指不同站点之间的互链,流量来源为:引荐的站点域名,引荐路径为:引荐站点的推荐页面地址。

对于大的站点,会包括很多专题版块或子站,这部分页面因为路径比较深,往往不容易被发现,当我们希望推广这部分内容时,就需要通过站内引荐的形式来做了,假设我们有一个音乐专题:/music/,为了推广这个专题,在首页放了一个广告条指向这个地址,同时在外文图书页面也放了推广链接:如果是英文书,则推荐 /music/en/,如果是日文书,则推荐:/music/jp/。

通过站内链接给/music/专题带来的流量,我们称之为:站内引荐流量。

如果我们想分析:/music/jp/ 的站内引荐流量,这时可以看该页面的导航摘要,看上一页路径:

 

从图上可以看到,/book/jp/带来了2156次PV。当然这儿的数据是有一些问题的,GA中的上一页路径是基于时间顺序的,假设用户先访问/bike/页面,然后在地址栏输入:/music/jp/ 这时/bike/还是会出现在这儿的列表中,即使/bike/页面上根本没有听力专题的链接。

同时当站内引荐的入口多,以及引荐到听力专题的目标页面比较多时,这样一个一个去看会很麻烦。我们希望有一个简便的方式,看站内的哪些页面给听力专题带来了流量,以及这些流量都指向听力专题的哪些子页面。

最佳的做法是用事件记录:
category = “insite_ref”
action = “/book/jp/”
label = “/music/jp/”

记录后,事件数就是带来流量的PV数。

在自定义报告里,可以按:action->label为维度,Total Events为指标,看带来最多流量的站内引荐路径。

如果要看具体页面的站内引荐路径,可以按:label->action为维度,Total Events为指标即可。

基本的思路有了,我们来看看如何部署脚本,一种做法是,点击站内引荐链接时,提交相应的事件,例如日语查词页:

_gaq.push(["_trackEvent", "insite_ref", "/book/jp/", "/music/jp/"]),这个需要在各个引荐链接里写代码,链接数量少,并且位置比较固定时,可以这样做。

另外一种做法是在/music/的全局页脚放代码,如果浏览器的上一页路径不是以/music/开始,则记录事件。

// 如果引用页不为空,并且是本站的页面
if (document.referrer != “” && document.referrer.indexOf(“wwww.mysite.com”) != -1) {
// 如果上一页路径不是以:http://wwww.mysite.com/music/开始,则认为是站内引荐
if (document.referrer.indexOf(“http://wwww.mysite.com/music/”) == -1) {
// action为引用页地址,label为tingli的当前页地址
_gaq.push(["_trackEvent", "insite_ref", document.referrer, location.pathname]);
}
}
这样的好处是一次部署即可。

通过事件,我们还可以看很多信息,如:触发事件的访问数,不重复的事件数(排除一个链接重复点击多次的情况),还可以做细分,如看从/book/jp/过来的访问,都看了哪些页面,总之非常方便。

如果要统计,站内链接展示次数与点击次数之间的关系,可以在站内引荐页面每次加载时触发事件:
category = “insite_ref”
action = “/book/jp/”
label = “show”

将/book/jp/页面的展示次数和站内引荐路径点击次数结合起来,我们还可以分析点击率,看哪些站内引荐链接的效果最好。

在写本文时,参考了:肖庆翻译的:使用Google Analytics跟踪站内广告系列一文:
http://xiaoq.in/google-analytics/tracking-on-site-campaigns-with-google-analytics/

如果你有更好的思路或想法,欢迎与我讨论 :)

 

手把手教你在Excel里做GA的水平百分比图

GA报表除了默认的表格方式显示数据外,还支持饼图,水平百分比图,数据透视图等展现方式,其中水平百分比图在可视化看流量时最为方便,就像这样:

那么当我们要在Excel里做类似的效果应该怎么做呢?尤其是数据源不是来自GA的情况。

初始的表格:

做好的效果:

首先选择好百分比这一列,然后插入->条状图->水平条状图

选中新建的图表:

依次选中删除:水平,垂直坐标轴,图例等不需要的元素,就像这样:

再鼠标点中垂直的表格线,然后删除,就像这样:

这时效果已经接近了,我们需要加上文字百分比,选中图表,布局->数据标签->数据标签外:

这时数据标签就出来了:

这时还有边框线,不是太好看,选中图表,右键菜单,选择:设置图表区域格式:

填充->无填充
边框颜色->无线条

然后拖放图表到要展示的区域,调整大小,以正好在表格里居中即可。

默认的水平柱状图是从小到大排序的,如果希望倒过来排序,选中图表:

选择布局->坐标轴->主要纵坐标轴->其他主要纵坐标轴选项->选中:逆序类别 复选框。

总的操作就是这样,你可以得到一个和GA里效果一样的水平百分比图。

如果这一切操作让你觉得太复杂,你可以:

开始->条件格式->数据条,选中一个样式即可,效果如下:

当然这样的效果没有GA里的漂亮,如果时间比较赶,还是推荐用这种方法。

感谢 Joegh wu告诉我后一种的简便方法,我的方法推荐给追求尽善尽美的你 :-)

例子表格下载:excel_水平百分比.xls

 

 

GA中网站速度的度量与分析

很多文章都会说到网站速度对于用户转化的影响,速度慢的网站用户更容易离开,尤其是可以找到替代内容的情况下。

那么如何度量网站的加载速度呢,之前大家的做法是在页面的头部记一下时间:var start = new Date().getTime(),然后在页脚计算一下用掉的时间:var timeUse = new Date().getTime() – start,把这儿的timeUse用事件的方式提交到GA服务器:_gaq.push(['_trackEvent', 'timeUse', '/home.html', 'load', timeUse]),最后在GA的事件列表,看事件的平均值来评价页面的加载时间。

这样做,可以获得加载时间,但不完整,完整的页面加载是这样的:

1用户打开url链接
2 浏览器查询url的dns地址
3 提交url请求到服务器端
4 服务器端处理
5 传输处理好的html文本内容到浏览器
6 浏览器解析html,并加载css,js,图片等内容
7 加载完成,用户看到完整的页面内容

前面的timeUse获取的其实是第6步操作的用时,2到5步的用时都无法获取,假设某个网站的dns查询慢,服务器端处理慢,还是会影响用户的体验,而这个是我们无法度量的。

其实dns查询,等待服务器处理等时间,作为浏览器是知道的,于是HTML5规范为这部分的查询,提供了接口,允许javascript来查询详细的用时,具体文档在这儿:https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/NavigationTiming/Overview.html#sec-navigation-timing-interface,调用的例子见这儿:http://www.html5rocks.com/en/tutorials/webperformance/basics/,假设我们要获取当前页面的dns解析时间,只要:performance.timing.domainLookupEnd – performance.timing.domainLookupStart即可,目前支持该接口的浏览器有:firefox,chrome,IE9等对html5标准支持较好的浏览器。我实际看了一下我们站点的统计,firefox/chrome/IE9浏览器共占 38% 这样,不同类型网站因为用户群不同,这个比例会有差别。速度值可以作为参考,如果Chrome加载一个页面特别慢,可以认为IE6也快不到那里去,就该着手优化了。

作为与时俱进的GA分析,当然要使用更好的度量方式的,于是你可以在网站->网站速度报表处看你的站点的详细加载时间,包括:网页的平均加载时间,重定向,dns查询,服务器端处理等时间,在网页计时(Page Timings)列表,可以按页面看平均加载时间。

如果选择了一个时间段,点击具体的页面,如:/home页,还可以看一下这个页面在这段时间的加载速度变化。

看过统计学的朋友都知道平均值是靠不住的,假设有10个用户,9个加载速度是1秒,一个是191秒,这时得到的平均加载时间是:20秒,很显然这儿的20秒是没有意义的,我们需要看明细,GA考虑到了这个问题,支持在报表页点击:效果(Performance)标签,查看明细的信息:

从这个图上,我们可以知道大多数用户的加载时间在10秒左右,少部分用户特别慢,超过了20秒,整体速度可以接受。

在网页计时(Page Timings)列表页我们可以找出加载慢的页面,有针对性的优化。

当然在中国的网络环境下,网页加载速度还受所在城市,网络运营商等因素影响,这时可以按城市,页面加载时间,配置一个自定义报告:

效果如下:

而网络运营商对于网站加载速度的影响,要用细分来做,目前中国主要运营商有:电信和联通,分别占据南北市场,电信的服务器提供商名会包含:chinanet,联通会包含:unicom,以电信为例,新建一个细分:

还是刚才的/home页,我们这时就可以按运营商来比较页面加载速度了:

这时我们可以看出联通的页面加载速度要比电信慢很多,这时就应该考虑使用CDN加速了,毕竟16秒还是太慢了。

影响网页加载时间的因素有很多,除了运营商,带宽等,如果是sns类的站点,同样的home页,不同用户看到的内容其实不一样的,如:某个活跃用户加入的小组多,好友多,这时他加载home页自然会速度慢,如果要详细的分析这部分用户慢的原因,可以把用户ID传到自定义变量里,按用户ID看加载时间。

对于GA的网站速度报表,默认情况下是不需要额外配置的,GA在统计页面时,会按1%的抽样比例,提交页面的加载时间,如果你的站点访问量比较小,可以通过:

_gaq.push(['_setSiteSpeedSampleRate', 20]),来调整整体的抽样比例,或者对于重要的页面,指定更高的抽样比例。

在有了网页加载时间的数据后,就可以分析比较加载速度对跳出率,转化的影响了,但我实际尝试做的时候,却发现没有现成的指标,或维度来让你筛选,我的想法是用页面级自定义变量来标记, key是speed,value是slow, fast,5秒以下算fast,超过5秒算slow,具体的操作,我后继会补充 :)

小结

网站速度的度量不管对于网站开发,还是网站分析都有重要的意义,通过改进网站速度,我们可以提高用户体验,降低跳出率,提高转化率,而这一切都是可以观察量化的 :)

 

桌面客户端程序的GA统计

和网站类似,我们也希望知道桌面客户端程序的访问情况,这儿的桌面客户端开发语言可能是:C++, Delphi,.net。

假设有一个视频下载及播放的客户端程序,我们需要知道,每天的登录次数,下载次数,播放次数,还想知道下载、播放最多的视频名称列表。

简单的做法是,登录时,往服务器端提交一个数据包,参数为:用户名,下载时,提交:视频名称,用户名。服务器端记录提交的数据,并编写相应的后台报表,用来展现访问情况,附加的,还要做权限管理,报表导出,邮件通知等功能,工作量可真不小。

如果把客户端程序的操作看着页面访问,那么对应的页面的标题和地址会是这样:

用户登录 – tom (/login/tom)
视频下载 – 海绵宝宝第一集(/download/海绵宝宝第一集/tom)
视频播放 -海绵宝宝第一集(/play/海绵宝宝第一集/tom)

基本的数据提交到GA后,就可以按标题和路径,筛选登录的次数,下载,播放最多的视频名称了,权限管理,图表展现也不在话下。

这时大家要问了,客户端程序模拟ga.js数据提交可不是一件简单的事情,而且每种开发语言还得写一遍,工作量一点都不小啊。

其实有一种简单的方法,就是客户端程序做一个隐藏的窗口,在这个隐藏的窗口嵌一个浏览器,windows下就是IE浏览器了,当有操作发生时,这儿的隐藏浏览器转到响应的页面地址,就像这样:
http://www.mysite.com/track.html?action=login&username=tom&title=用户登录 – tom
http://www.mysite.com/track. html?action=download&username=tom&video=海绵宝宝第一集&title=视频下载 – 海绵宝宝第一集
http://www.mysite.com/track. html?action=play&username=tom&video=海绵宝宝第一集&title=视频播放 – 海绵宝宝第一集

track.html页面的代码:
<script type=”text/javascript” src=”js/jquery-1.4.1.min.js”></script>
<script type=”text/javascript” src=”js/jquery.url.js”></script>
<script type=”text/javascript”>
    var p = $.url().param();
    var action = p.action;
    var path = “”;
    if (action) {
        switch (action) {
            case “login”:
                path = “/login/” + p.username;
                break;

            case “download”:
                path = “/download/” + p.video + “/” + p.username;
                break;

            case “play”:
                path = “/play/” + p.video + “/” + p.username;
                break;
        }

        var _gaq = _gaq || [];
        _gaq.push(['_setAccount', 'UA-XXXXXX-1']);
        _gaq.push(
            function () { document.title = p.title;},                
            ['_trackPageview', path]
        );
    }
</script>
<script type=”text/javascript” src=”http://www.google-analytics.com/ga.js”></script>

这儿用到了jquery.url.js用来获取url中的参数,下载地址在:https://github.com/allmarkedup/jQuery-URL-Parser

GA的账号添加和报表配置就不详解了,本文主要是给大家一个思路,实际使用时,还需要注意以下的一些问题:

1 客户端程序的Session过期时间,网页是半小时,客户端可以长一些,如2小时:_gaq.push(['_setSessionCookieTimeout', 120 * 60 * 1000]);
2 客户端程序需要关注程序版本,这儿的程序版本,可以通过用户变量设置:_gaq.push(['_setCustomVar', 2, 'ver', p.ver, 2]);
3 客户端程序需要知道:操作系统,屏幕尺寸等信息,这部分直接读GA报表里的:Browser & OS 即可,不需要自己做
4 除了TrackPageview方式,其实用事件来记录客户端的操作,也蛮方便的,方便筛选
5 隐藏的浏览器,传递参数时,要有个random参数,保证浏览器强制刷新

小结:
GA统计功能强大,定制方便,如果没有太特别的需求,桌面客户端用GA统计不仅代码修改量小,而且定制性也很好,值得一试。

 

 

衡量访问量的基本指标选择

在看GA的流量信息时,你会发现标准报表会选择不同的指标来反映流量信息。

所有页面报表是:浏览量,唯一身份浏览量。
引荐,关键字报表是:访问次数,每次访问的网页浏览量

这儿的唯一身份浏览量,简单的讲,就是在一次访问中,去掉重复后的页面浏览量,假设张三上午来到你的网站,依次访问了:home, article_12, home, article_15这几个页面,那么他的总PV是4,唯一身份浏览量是:3,即home页只算一次。

对于所有页面,我们会关注基本的浏览情况,所以用浏览量比较合适。

对于引荐和关键字,我们会关注带来多少次访问,以及每次访问的平均网页浏览量,停留时间,跳出率等信息。

这时如果单纯的看PV则容易误导,举个例子,假设某个关键字,因为SEO做的好,带来了大量的访问,但因为关键字和网页的内容不相关,大多数用户只看了一个页面就离开,既不会访问网站的其他内容,也不会产生潜在的购买,则这个关键字对我们的就没有意义。

除了:浏览量,访问次数外,唯一身份访问者也是一个很重要的指标,当我们有一个销售专题时,我们会关心有多少人访问了这个专题的相关页面,这时就可以选择:唯一身份访问者指标。

从数量上看:
浏览量 > 唯一身份浏览量 > 访问数 > 唯一身份访问者

熟悉了这3个基本的指标后,我们就可以有针对性的创建自定义报告了,以观察比较流量。

补充一下joegh的看法,比我想的更深入:

其实页面层级的Unique Pageviews跟Visits是同一个意思,只是GA认为页面层级不应该有访问这个度量存在。GA弱化UV的一个原因是UV不能在不同维度层级直接汇总,需要去重,所以在下钻和向上聚合中计算不方便,而且“量”的层面Visits也可以很好地体现
但貌似国内还是很喜欢用用户数来体现网站的价值。