Universal Analytics : 结束beta版测试!

今天Justin Cutoni在其博客宣布:Universal Analytics 在经历了整整一年beta测试之后,现在正是结束beta测试,成为正式版本。

Universal Analytics: The next generation of Google Analytics

100%特性兼容

Universal Analytics现在已经完全支持标准版Google Analytics的功能,包括:

  • 使用Google Analytics进行再营销。
  • 受众报告。
  • 高级版SLA支持。
  • 完整的Google Tag Manager支持。

跨设备测量

The User-ID feature let's you measure the user journey across multiple devices - and even in stores.

跨屏幕、甚至是线上与线下的User ID标识。

设备重叠。设备重叠率是很高的。

The Device Overlap report shows what percentage of users access your content from multiple devices.

设备路径。

The Device Path report shows the last five devices that were used prior to a conversion.

设备获得。

The Acquisition Device Report.

基于时区的数据处理

现在已经支持基于时区的数据处理,保证您所在的时区能及时获取到新鲜的数据报告。

The time zone setting in a view now controls when your data is processed.

还不赶紧迁移至新平台?

参考资料:https://cutroni.com/blog/2014/04/02/universal-analytics-now-beta/

Google Analytics流量来源报告处理流程图

本文主要提供一种可视化的角度,深入了解Google Analytics(Universal Analytics)的广告系列与来源报告(Campaigns & Traffic Sources)的处理过程。认识处理过程,能够让我们了解Google Analytics内置的一些配置是在哪个环节对数据产生影响,并且最终影响到哪些报告。

基本概念

在认识整个报告处理流程之前,我们需要先回顾一些浏览器中的JavaScript概念,他们决定着我们数据来源:

//输出当前页面的上一级页面(推介来源页面)
document.referrer
//输出当前页面路径
document.location

更多关于URL的,可以看看之前这一篇网站分析中的URL

处理流程图

google-analytics-processing-flow

值得关注的地方

从这张图可以观察到一些处理细节,这些都是对我们的配置及报告有影响的:

  • 广告系列优先于流量来源报告处理
  • 搜索来源与社交媒体报告优先于配置的排除referrer处理
  • 通过set设置的ClientID或UserID的来源处理级别低于一般referrer,换句话说,即使是来源没过期,只要有新的referrer,都会更新一个新的来源数据

参考资料:

Google Analytics部署 电子商务(进阶)

上次写到Google Analytics电子商务部署,主要是简单介绍Google Universal Analytics的基本统计代码,并没有涉及到具体的实施。本文将以主要介绍如何精准的统计到电子商务交易及商品数据。

电子商务场景介绍

电子商务网站的从购物车页面,到下单页面,到订单确认页面,到最终提交订单。整个的交互流程可以大致划为如此:

因此,我们可以看到,订单的真正产生,还是在电子商务网站服务端进行。因此,如果我们想记录到比较准确的交易、订单数据,那么我们必须在订单系统确认了付款成功才能确认订单,发送订单数据。

数据监测方案

因此,我们如果需要利用Google Universal Analytics准确的记录订单,我们现在有两种方式:

1.网站服务端(订单系统)在确认完订单之后,直接向Google Universal Analytics发送订单数据,但是这样做的缺点就是,如果不做专门的部署,我们也很可能丢失用户其他关联数据:

2.网站服务端(订单系统)在确认完订单之后,在支付完成回调页面(返回页面,通常是显示订单成功的页面),动态输出Javascript收数代码,发送交易、订单数据。

代码及案例

下面我们以在订单确认页/订单成功回调页面为例,部署Google Universal Analytics跟踪代码。

背景提示

绝大多数电商网站的交易都是在网站服务端完成的,但Google Analytics的analytics.js是从客户端发送数据到GA服务器的。所以,我们需要在这中间,将服务端与客户端进行一些协调,来发送这些电子商务数据。

大多数电商会在购买完成之后,会返回一个“感谢”页面或者成功订单详情页面。这个页面一般是由网站服务端动态输出的页面。因此,在进行电商统计的时候,我们需要由网站服务端代码,根据实际的交易数据和商品数据,动态输出GA的Javascript跟踪代码。下面,我们以PHP为例:

定义交易和商品数据

我们在服务端存储好交易数据及商品数据:

<?php
// 定义交易数据
$trans = array('id'=>'1234', 'affiliation'=>'Acme Clothing',
'revenue'=>'11.99', 'shipping'=>'5', 'tax'=>'1.29');

// 定义商品数据
$items = array(
array('sku'=>'SDFSDF', 'name'=>'Shoes', 'category'=>'Footwear', 'price'=>'100', 'quantity'=>'1'),
array('sku'=>'123DSW', 'name'=>'Sandles', 'category'=>'Footwear', 'price'=>'87', 'quantity'=>'1'),
array('sku'=>'UHDF93', 'name'=>'Socks', 'category'=>'Footwear', 'price'=>'5.99', 'quantity'=>'2')
);
?>

定义返回的Javascript跟踪代码

同时,也定义好用于返回Google Analytics电子商务跟踪代码的PHP函数:

<?php
// 返回Javascript交易数据跟踪代码的PHP函数
function getTransactionJs(&$trans) {
return <<<HTML
ga('ecommerce:addTransaction', {
'id': '{$trans['id']}',
'affiliation': '{$trans['affiliation']}',
'revenue': '{$trans['revenue']}',
'shipping': '{$trans['shipping']}',
'tax': '{$trans['tax']}'
});
HTML;
}

// 返回Javascript商品数据跟踪代码的PHP函数
function getItemJs(&$transId, &$item) {
return <<<HTML
ga('ecommerce:addItem', {
'id': '$transId',
'name': '{$item['name']}',
'sku': '{$item['sku']}',
'category': '{$item['category']}',
'price': '{$item['price']}',
'quantity': '{$item['quantity']}'
});
HTML;
}
?>

执行数据跟踪

输出电子商务跟踪代码,执行数据统计发送至GA服务器:

<!-- Begin HTML -->
<script>
ga('require', 'ecommerce', 'ecommerce.js');

<?php
// 跟踪交易数据
echo getTransactionJs($trans);

// 跟踪商品数据
foreach ($items as &$item) {
echo getItemJs($trans['id'], $item);
}
?>

ga('ecommerce:send');
</script>

如上所部署,一旦进行交易的时候,客户端与服务端的交互会使交易数据及商品数据在最终才发送至GA服务器,使我们订单监测更为精准。

无法避免的问题

虽说由后端动态输出跟踪代码,理论上来说是非常精准的数据了,但是由于最终统计是在客户端进行,还是会不免有所数据损耗。例如,由第三方网站付款,付款回调成功页面返回较慢,用户直接关闭,或者返回不成功等。这些情况都会导致数据上的损耗。

更精准的方式

如果在这个基础上,一定要一个更精准的方式,那么就只能是由网站服务端在收到交易成功消息的时候,亲自向GA服务器发送订单数据了。当然,经典版Google Analytics并不支持如此操作。新版本的Google Universal Analytics是支持Measurement Protocol,我们是直接可以通过在服务端构造数据请求将数据发送至GA服务器。这其中也有一些细节问题,就暂且不在本篇的讨论范围了。

参考资料:

https://developers.google.com/analytics/devguides/collection/analyticsjs/ecommerce