Google Analytics电子商务追踪1—追踪代码定制和实施

收入是衡量网站的重要指标之一,尤其是对于电子商务类的网站。所以对电子商务的追踪也就尤为重要。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电子商务追踪的第一部分:追踪代码定制和实施已经完成了。有些地方可能写的有点乱,如果你有任何问题,请给我留言吧。

——【所有文章及图片版权归 蓝鲸(王彦平)所有。欢迎转载,但请注明转自“蓝鲸网站分析博客”。】——

Comments

  1. 很好很强大,支持

  2. dicky says:

    能分享下google后台电子商务报表的样例吗?能够获得哪些有意义的数据,除了罗列order以外?

    • 蓝鲸 says:

      @dicky,感谢你的留言。google后台电子商务报告的内容将在《Google Analytics电子商务追踪2》中分享。请关注。谢谢。

  3. Firm says:

    很少使用这个功能,去用看看

  4. 呼呼 says:

    谢谢指点!

  5. 乐道 says:

    您这篇文章对我的帮助太大了,我一直在为如何实现GA中订单转化率而烦恼。

  6. 乐道 says:

    受益匪浅啊,请问文章中存储变量的名称是指URL地址里面的参数还是程序里面的变量呢?

  7. 蓝鲸 says:

    @乐道: 文章中存储的变量是订单确认页面的购物信息,具体的内容需要和你们网站的技术沟通。

  8. aleshia says:

    你好, 我有2个问题,可否帮我解答
    第一: 在实际操作时, 我只追踪到_addtran()里面的数据, _additem()里面数据无法传输到分析师当中, 即在页面源代码中可以看到商品的单价, 数量等, 就无法再分析中看到这些数据. 不知道这要如何解决
    第二: 如果用户购买了2个不同的商品, 那么_additem()里面的单价会怎么显示呢?

    • 蓝鲸 says:

      @aleshia, 感谢关注,你的两个问题我想是这样的。

      1问下你们的技术具体用于记录商品信息的变量名称,并添加到电子商务的_additem()追踪代码中。

      2如果用户购买了两个不同的商品,那么分别使用两条_additem()来分别记录产商品的信息就可以了。

  9. 宋天龙 says:

    蓝鲸的博客有深度,值得每一个做营销分析的人学习!

  10. sem says:

    收下了~

  11. minicat says:

    博主 你好…
    有些地方我搞不太清楚,电子商务追踪的代码是装在收据页或订单确认页其中的一页么?
    询问用来存储这些数据的变量名称,是数据库里的相关列名么?
    我用的是shopex的商城系统,有办法完成追踪么?
    还有请问,电子商务追踪什么时候能出呢?

  12. 笨鸟先飞 says:

    我想问下,针对第二种情况,应该属于跨域跟踪把?
    GOOGLE的帮助文档里提到跨域跟踪需要使用 _link() 和 _linkByPost() 2个功能来实现跨域的用户行为传递和跟踪。
    看你的代码,为什么有没有这部分呢?
    请教了,谢谢!等你答复阿!

  13. 水白 says:

    hi,蓝鲸博主;

    我们的网站电子商务统计这块也遇到了博主说的两种情况,如下:

    1.货架是在www.xx.com下的目录,而支付却是pay.xxx.com 我是不是应该添加第一种情况的代码?

    2.我们网站的支付均采用了第三方支付,在pay.xxx.com确认订单后,会跳转至如支付宝、财付通或者网银的网站去支付,目前电子商务报告中来源这块完全不准,来源报告里的电子商务也无法关联到数据,请问第二种情况的代码能解决这个问题吗?

    3.因为我们启用了新的异步代码,所以博主提供的传统代码无法直接使用,我是一个程序小白,如果可以能否转换下。

    感谢。

    • 网上书店 says:

      @水白, 同问,网站如果同时出现了这两种情况的话,该如何解决呢?是把两种方式的代码都添加上吗?还是怎样?
      另,《Google Analytics电子商务追踪2》何时出来啊?期待啊。

  14. qiaochu says:

    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’]);
    假如是这样写的会,还能正常统计吗?

  15. 网上书店 says:

    麻烦蓝鲸解答一下啊,多谢了

  16. Eric says:

    蓝哥,请教如果客户通过paypal付款,没有返回网站本身的页面,能不能完成转化的跟踪?

  17. 深蓝 says:

    不管你的变量是不是与数据库里字段名相同,只要能输出值就可以了,比如你当前页商品名称是:工在有
    代码只需要你这“工在有”这变量其它不需要!

  18. 深蓝 says:

    其实蓝鲸老师发的还是些基础的,期望以后会有深度技术文章!

  19. davin says:

    如果两种情况都有,把两种情况都添加

  20. fety says:

    如果部署到订单付款成功后台的通知页面,那么货到付款的订单该如何跟踪?

  21. ywfw8 says:

    问一下,加了google adwords的转化代码,还需要加Google Analytics单独电子商务追踪代码不?

    现在我这里出现两种情况:
    一种是不加,GA后台有电子商务订单数据(Magento系统)。
    一种也是没有加后者,但GA后台一直没有电子商务订单数据(zen-cart)。

  22. SEO菜鸟 says:

    真的太感谢了,您这篇文章对我实在太有用了,看过您翻译的流量的秘密的,但是上面是个实例,所以一直在疑惑,如果是个大型的电子商务网站的话,会有很多商品,那么填写单一的商品信息,无法跟踪所有的交易,今天看了您这篇文章才知道是用变量,对于虚拟页面我还是不太了解,希望您能针对虚拟页面写一篇文章,关注中……

  23. pwlm says:

    如果购物车中有多个商品,代码要怎么写?我看到说要编写loop循环,有几个商品就添加几个Item,可是具体怎么实现呀,loop程序是写在GA代码里面吗?

  24. 王先生 says:

    如何添加这个GA订单跟踪代码,请指点,谢谢

  25. 王先生 says:

    如何添加这个GA订单跟踪代码,请指点,谢谢

  26. Haiyu says:

    写的很清楚,我在google support都没有太看懂,但是看了您的介绍一下就懂了,真心的谢谢您!

Trackbacks

  1. […] 关于作者友情链接网站地图资源库搜索营销网站分析数据可视化 网站分析利用Google Analytics分析百度推广效果——数据收集和预处理 2011 年 9 月 30 日 没有评论Google Analytics是目前应用最广泛的免费网站统计分析工具,接下来的文章介绍利用Google Analytics实现对百度推广数据的收集、处理,并结合其他工具进行数据分析并提出行动建议。本篇介绍如何利用Google Analytics进行数据收集和预处理。一、数据收集 1. 部署默认跟踪代码      收据收集是通过Google Analytics实现的,因此我们需要做好GATC的部署。 GATC需要添加到网站的每一个页面,通常电子商务网站的首页、产品页、搜索列表页都是由不同的模板组合而成,对于这些页面只需要在模板的头文件或脚文件添加即可。有些网页比如促销活动页面、购物车页面、帮助文档页面则需要特别添加,特别是上面提到的将电子商务跟踪代码添加到购物成功提示页。关于代码添加需要网站管理员配合实现。2. 定制电子商务跟踪代码默认情况下谷歌无法收集到网站电子商务信息,上篇文章中我们已经开启电子商务功能,但还需要添加跟踪代码。电子商务跟踪代码需要放置在订单成功提示页,GATC通过以下代码跟踪商品交易数据:_addItem(orderId, sku, name, category, price, quantity)_addTrans(orderId, affiliation, total, tax, shipping, city, state, country)_trackTrans()只需用网站实际交易的参数变量代替上面代码中的各项参数即可,具体参数需要询问网站管理员。每当有商品交易完成时,订单成功提示页会出现类似的代码:_gaq.push(['_addTrans','1234','AcmeClothing','11.99','1.29','5','SanJose','California','USA']);_gaq.push(['_addItem','1234','DD44','T-Shirt','GreenMedium','11.99','1']);_gaq.push(['_trackTrans']); 关于电子商务代码布置的更多信息,请点击蓝鲸的Google Analytics电子商务追踪1—追踪代码定制和实施。3. 监测跟踪代码代码部署的成功与否直接影响网站数据收集,影响GATC数据收集的主要因素是代码是否添加、放置位置和JS顺序。没有GATC的页面将无法收集到该页面的任何数据;通常放置在页面顶部的GATC收集到的数据信息比放置在底部的多;如果页面有其他JS代码(电子商务网站通常都会有),GATC上面先执行的JS代码加载错误也会导致后面JS加载问题;监测代码是否正确加载,推荐使用HTTP工具,比如http watch professional(软件可以在资源库中下载)具体操作步骤如下:安装HTTP工具之后,打开IE,在菜单栏工具—浏览器栏(X)中会出现刚才安装的软件,点击打开;点击记录按钮,此时IE中的页面信息就会被记录;打开要监测的网页,发现网页加载过程中的信息正在被记录;默认的http watch professional的界面小,信息显示不全,点击右侧的最大化按钮; 在URL一栏中找到Google Analytics信息,看到摘要中显示了GA利用gif图片传递信息的完整数据。出现上面的结果说明该页面数据正在被收集和传输,此时网站的数据就可以被Google Analytics记录了。其实http watch professional是个功能强大而且使用的工具,以后再跟大家分享。二、数据预处理对Google Analytics的数据预处理的主要目的是过滤无效数据,通常有两种方法,一是在收据收集前利用过滤器过滤掉已知未来会出现影响网站分析的数据,二是在数据收集完成之后,手动过滤已存在的干扰数据。举个例子,百度推广过程中,网站拓展推广渠道,需要与CPS网站对接数据,在测试数据有效传递时会下大量订单。如果事先了解情况,可以在工程师做数据接口URL中加入特定参数,比如test字段,然后利用过滤器过滤掉Request RUL中包含test字段的URL。但有时候公司的营销活动会由多个部门负责,事后才发现这个情况,这时需要手动过滤这些数据。方法比较简单:让工程师提取通过数据接口进入网站形成的订单数据,然后手动过滤最后数据。当然,如果网站有自建分析系统或更全面的基于系统日志的网站解决方案,排除这些数据手段更多也更灵活。标签: google analytics, 数据处理, 数据收集, 网站分析 […]

Speak Your Mind

*