收入是衡量网站的重要指标之一,尤其是对于电子商务类的网站。所以对电子商务的追踪也就尤为重要。Google Analytics的电子商务追踪功能可以让我们对交易中的13个数据进行追踪。并且可以追溯到订单的来源。本篇是Google Analytics电子商务追踪的第一部分——追踪代码的定制和实施。
Google Analytics的电子商务追踪是如何工作的。简单的说,Google是通过我们安装在收据页或订单确认页的电子商务追踪代码获得用户订单中的信息,并通过请求一个1像素的文件将收集到的数据传回google服务器。
第一步,开通电子商务报告
电子商务追踪功能在Google Analytics中默认是关闭的。首先在网站配置文件界面选择要开通电子商务追踪功能的报告,点击后面的修改进入配置文件设置界面。选择开通电子商务追踪功能。开通后可以在报告里看到增加了一个电子商务部分。
第二步,电子商务追踪代码定制
Google Analytics为电子商务追踪提供了一段单独的代码。这段代码分为三部分。第一部分_addTrans用来启动一个订单,并提供了8个变量存储订单中的数据。第二部分_addItem提供了6个变量来记录订单中每个商品的数据,第三部分_trackTrans将前两部分记录到的数据一起报告给google服务器,并最终显示在我们的报告里。
下面是Google Analytics的电子商务追踪代码,其中订单号,订单总价,产品代码,产品价格和购买数量为必填项。
pageTracker._addTrans( "", // 订单号(必填项) "", // 连署机构 "", // 订单金额(必填项) "", // 订单税款 "", // 订单运费 "", // 订单来源的城市 "", // 订单来源的省/直辖市/自治区等 "" // 订单来源国家 ); pageTracker._addItem( "", // 订单号(必填项) "", //商品代码(必填项) "", // 商品名称 "", // 商品所属类别 "", // 商品价格(必填项) "" // 购买数量(必填项) ); pageTracker._trackTrans();
详细的说一下前两部分的关系。_addTrans和_addItem是从属关系。_addTrans记录订单级的数据,_addItem记录商品级的数据。订单级的变量内记录整个订单的订单号,订单金额,交易税款,运费,买家所在地区等信息。而商品级的变量内记录买家订单内每件商品的信息。比如商品代码,商品名称,商品所属类别,商品价格和实际购买数量。_addTrans和_addItem的订单号字段必须相同(同一份订单)。_addItem内所有商品的价格相加就是_addTrans的订单金额。
举个例子说明一下:
一个用户在我的网站买了2本web marketing类别下的《blue whale web analytics note》,商品代码是bluewhale,单价是20元。运费5元。订单号是201024。这时Google Analytics的电子商务追踪代码将记录到这样的信息。
pageTracker._addTrans("201024","", "40", "", "5", "", "", "");
pageTracker._addItem("201024", "bluewhale"," blue whale web analytics note ", "web marketing", "20","2" );
pageTracker._trackTrans();
为了使电子商务报告有意义,_addTrans里的订单号,订单金额和_addItem里的订单号,商品代码,商品价格和购买数量是必填字段。另外在上面的例子中即使没有买家的国家和城市信息,也不能省略变量的字段。否则会发送错误。
熟悉了代码的功能就可以定制自己追踪代码了。让Google Analytics追踪我们需要的数据。定制的过程很简单:
1确定每件商品和每个订单中我
们要追踪的数据。(比如:商品名称,商品类别,运费等等)
2找到网站的技术人员,询问用来存储这些数据的变量名称。(比如:price代表商品价格)
3将变量名替换在代码的相应位置,定制电子商务追踪代码。
举个例子说明一下:如果你的变量名是这样定义的。
产品名称 => product_name
产品代码 => product_code
价格 => price
购买数量 => num
订单号 => order_number
订单总金额 => order_total
那么你的追踪代码应该是这样的。
pageTracker._addTrans(order_number,'',order_total,'','','','',''); pageTracker._addItem(order_number,product_code,product_name,'',price,num); pageTracker._trackTrans();
第三步,电子商务追踪代码实施
追踪代码的实施页面:
电子商务追踪代码要添加在用户完成付款后的收据页面或订单确认页面。为什么要添加在这里呢?因为这里是用户完成交易付款后的最后一个页面,所有的交易都已经发生了。从这里追踪到的数据更加准确。如果是在付款前的页面添加代码,有可能造成报告中的数据与实际交易数据不符。因为用户在付款前的任何步骤都有可能放弃。
实施电子商务追踪:
电子商务追踪代码部分已经完成定制了,但在实施追踪前还有最后一个问题。你的网站中可能存在以下两种情况。
情况一:
很多网站给不同的内容和功能页面设置了单独的二级域名,比如:商品页面的地址是shop.bluewhale.cc而付款页面的地址是payment.bluewhale.cc。就是说用户的购物和付款是在两个不同子域内完成的。
情况二:
很多电子商务网站都在使用支付宝,有可能商品页面的地址是bluewhale.cc而付款页面的地址是alipay.com。这种情况下用户的购物和付款就是在两个完全不同的域内完成了。这里会产生一个问题,就是cookie无法正确记录和报告买家的真实来源了。这时候需要对常规的Google Analytics追踪代码进行定制。(添加红色加粗部分代码。)
<script>
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-********-*");
pageTracker._setDomainName("bluewhale.cc");//情况一时添加此行代码,括号内改为网站的域名
pageTracker._setDomainName("none");//情况二时添加此行代码
pageTracker._trackPageview();
<!-- GA Ecommerce Track Begin -->
pageTracker._addTrans(order_number,'',order_total,'','','','','');
pageTracker._addItem(order_number,product_code,product_name,'',price,num);
pageTracker._trackTrans();
<!-- GA Ecommerce Track End -->
} catch(err) {}</script>
将以上代码添加到你的收据页或订单确认页后就可以在电子商务报告中看到数据了。(具体时间不一定,根据网站的订单频率而定,有时可能会有延迟。)Google Analytics电子商务追踪的第一部分:追踪代码定制和实施已经完成了。有些地方可能写的有点乱,如果你有任何问题,请给我留言吧。
——【所有文章及图片版权归 蓝鲸(王彦平)所有。欢迎转载,但请注明转自“蓝鲸网站分析博客”。】——



很好很强大,支持
[回复]
蓝鲸 回复:
二月 5th, 2010 at 10:43 上午
@像风一样自由,谢谢你的评论。常来呦~
[回复]
能分享下google后台电子商务报表的样例吗?能够获得哪些有意义的数据,除了罗列order以外?
[回复]
蓝鲸 回复:
二月 6th, 2010 at 8:44 上午
@dicky,感谢你的留言。google后台电子商务报告的内容将在《Google Analytics电子商务追踪2》中分享。请关注。谢谢。
[回复]
很少使用这个功能,去用看看
[回复]
蓝鲸 回复:
二月 6th, 2010 at 8:46 上午
@Firm,感谢你留言,电子商务追踪功能还是很有用的。期待你的试用报告呦~。
[回复]
谢谢指点!
[回复]
您这篇文章对我的帮助太大了,我一直在为如何实现GA中订单转化率而烦恼。
[回复]
受益匪浅啊,请问文章中存储变量的名称是指URL地址里面的参数还是程序里面的变量呢?
[回复]
@乐道: 文章中存储的变量是订单确认页面的购物信息,具体的内容需要和你们网站的技术沟通。
[回复]
你好, 我有2个问题,可否帮我解答
第一: 在实际操作时, 我只追踪到_addtran()里面的数据, _additem()里面数据无法传输到分析师当中, 即在页面源代码中可以看到商品的单价, 数量等, 就无法再分析中看到这些数据. 不知道这要如何解决
第二: 如果用户购买了2个不同的商品, 那么_additem()里面的单价会怎么显示呢?
[回复]
蓝鲸 回复:
八月 20th, 2010 at 12:19 下午
@aleshia, 感谢关注,你的两个问题我想是这样的。
1问下你们的技术具体用于记录商品信息的变量名称,并添加到电子商务的_additem()追踪代码中。
2如果用户购买了两个不同的商品,那么分别使用两条_additem()来分别记录产商品的信息就可以了。
[回复]
蓝鲸的博客有深度,值得每一个做营销分析的人学习!
[回复]
收下了~
[回复]
博主 你好…
有些地方我搞不太清楚,电子商务追踪的代码是装在收据页或订单确认页其中的一页么?
询问用来存储这些数据的变量名称,是数据库里的相关列名么?
我用的是shopex的商城系统,有办法完成追踪么?
还有请问,电子商务追踪什么时候能出呢?
[回复]
我想问下,针对第二种情况,应该属于跨域跟踪把?
GOOGLE的帮助文档里提到跨域跟踪需要使用 _link() 和 _linkByPost() 2个功能来实现跨域的用户行为传递和跟踪。
看你的代码,为什么有没有这部分呢?
请教了,谢谢!等你答复阿!
[回复]
hi,蓝鲸博主;
我们的网站电子商务统计这块也遇到了博主说的两种情况,如下:
1.货架是在www.xx.com下的目录,而支付却是pay.xxx.com 我是不是应该添加第一种情况的代码?
2.我们网站的支付均采用了第三方支付,在pay.xxx.com确认订单后,会跳转至如支付宝、财付通或者网银的网站去支付,目前电子商务报告中来源这块完全不准,来源报告里的电子商务也无法关联到数据,请问第二种情况的代码能解决这个问题吗?
3.因为我们启用了新的异步代码,所以博主提供的传统代码无法直接使用,我是一个程序小白,如果可以能否转换下。
感谢。
[回复]
网上书店 回复:
二月 19th, 2011 at 11:12 下午
@水白, 同问,网站如果同时出现了这两种情况的话,该如何解决呢?是把两种方式的代码都添加上吗?还是怎样?
另,《Google Analytics电子商务追踪2》何时出来啊?期待啊。
[回复]
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-7019765-1']);
_gaq.push(['_addOrganic', 'baidu', 'word']);
_gaq.push(['_addOrganic', 'soso', 'w']);
_gaq.push(['_addOrganic', '3721', 'name']);
_gaq.push(['_addOrganic', 'yodao', 'q']);
_gaq.push(['_addOrganic', 'vnet', 'kw']);
_gaq.push(['_addOrganic', 'sogou', 'query']);
_gaq.push(['_addIgnoredOrganic', '豆瓣']);
_gaq.push(['_addIgnoredOrganic', 'douban']);
_gaq.push(['_addIgnoredOrganic', '豆瓣网']);
_gaq.push(['_addIgnoredOrganic', 'www.douban.com']);
_gaq.push(['_setDomainName', '.douban.com']);
_gaq.push(['_trackPageview']);
问一下啊
_gaq.push(['_trackPageview']);
这个函数是不是必须放在最后啊?
如果调整顺序会有影响吗?
_gaq.push(['_trackPageview']);
_gaq.push(['_setDomainName', '.douban.com']);
假如是这样写的会,还能正常统计吗?
[回复]
麻烦蓝鲸解答一下啊,多谢了
[回复]
蓝哥,请教如果客户通过paypal付款,没有返回网站本身的页面,能不能完成转化的跟踪?
[回复]
不管你的变量是不是与数据库里字段名相同,只要能输出值就可以了,比如你当前页商品名称是:工在有
代码只需要你这“工在有”这变量其它不需要!
[回复]
其实蓝鲸老师发的还是些基础的,期望以后会有深度技术文章!
[回复]
如果两种情况都有,把两种情况都添加
[回复]