概览
通过电子商务跟踪,您可以衡量网站产生的交易次数和收入。在典型的电子商务网站上,当用户在浏览器中点击“购买”按钮时,用户的购买信息就会发送给执行交易的网络服务器。如果成功,服务器会将用户重定向至提供交易详情和购买收据的“谢谢”页面或收据页面。您可以使用analytics.js库将“谢谢”页面中的电子商务数据发送到Google Analytics(分析)。
您可以使用analytics.js发送两种类型的电子商务数据:交易数据和商品数据。
交易数据
交易是指发生在您网站上的完整交易,包括以下值:
值 | 类型 | 必需 | 说明 |
---|---|---|---|
ID | String |
是 | 交易ID(例如1234)。 |
Affiliation | String |
否 | 发生此交易的商店或联属机构(例如Acme Clothing)。 |
Revenue | Currency |
否 | 与当次交易关联的总收入或总计金额(例如11.99)。此值包含运费、税费或其他要计入revenue的总收入调整值。 |
Shipping | Currency |
否 | 指定交易的总运费(例如5)。 |
Tax | Currency |
否 | 指定交易的税款总额(例如1.29)。 |
商品数据
商品指购物车里的单款产品,包括以下值:
值 | 类型 | 必需 | 说明 |
---|---|---|---|
ID | Number |
是 | 交易ID。此ID将商品与其所属的交易关联在一起(例如1234)。 |
Name | String |
是 | 商品名称(例如粉色绒毛小兔)。 |
SKU | String |
否 | 指定SKU或商品代码(例如SKU47)。 |
Category | String |
否 | 商品所属类别(例如聚会玩具)。 |
Price | Currency |
否 | 每件商品的单价(例如11.99)。 |
Quantity | Number |
否 | 在交易中购买的商品数量。如果传递到此字段的是非整数值(例如1.5),将舍入为最接近的整数值。 |
实现
您通常应在用户完成结帐过程后马上实现电子商务跟踪。这通常发生在“谢谢”页面上。在获得电子商务数据并准备好发送给Google Analytics(分析)后,您应完成以下几个步骤:
加载电子商务插件
为减小analytics.js库的规模,增强型电子商务跟踪不在默认库中提供,而是以需要在使用前加载的插件模块的形式提供。
要加载电子商务插件,请使用以下命令:
ga('require', 'ecommerce');
此命令必须是在您创建跟踪器对象之后,使用任何电子商务相关的具体功能之前执行。
加载后,系统将向默认跟踪器添加几个电子商务跟踪专用的新命令。
添加交易
插件加载后就会创建透明的购物车对象。您可以将交易和商品数据添加到购物车,并在完全配置后一次性发送全部数据。
您可以使用ecommerce:addTransaction
命令向购物车添加交易数据:
ga('ecommerce:addTransaction', { 'id': '1234', // Transaction ID. Required. 'affiliation': 'Acme Clothing', // Affiliation or store name. 'revenue': '11.99', // Grand Total. 'shipping': '5', // Shipping. 'tax': '1.29' // Tax. });
添加商品
下一步,要向购物车添加商品,您可以使用ecommerce:addItem
命令:
ga('ecommerce:addItem', { 'id': '1234', // Transaction ID. Required. 'name': 'Fluffy Pink Bunnies', // Product name. Required. 'sku': 'DD23444', // SKU/code. 'category': 'Party Toys', // Category or variation. 'price': '11.99', // Unit price. 'quantity': '1' // Quantity. });
发送数据
最后,在购物车中配置所有电子商务数据后,您可以使用ecommerce:send
命令向Google Analytics(分析)发送数据:
ga('ecommerce:send');
此命令将仔细检查购物车中的每笔交易和每件商品,并将相应的数据发送给Google Analytics(分析)。完成后,系统将清空购物车并准备发送新交易的数据。如果发出的是之前的ecommerce:send
命令,系统只会发送新的交易和商品数据。
清除数据
如果需要手动清除购物车中的所有交易和商品,可使用以下命令:
ga('ecommerce:clear');
指定本地货币
默认情况下,您可以通过Google Analytics(分析)的管理网络界面为所有交易和商品配置一种通用的全局货币。系统默认会为所有商品和交易使用全局货币。使用多种货币开展交易的网站可通过电子商务插件指定交易和个别产品的本地货币。
本地货币必须按ISO 4217
标准指定。如需支持的完整转换货币列表,请参阅货币代码参考文档。
要设置特定交易及其所有商品的本地货币,您只需为交易指定currency
:
ga('ecommerce:addTransaction', { 'id': '1234', 'affiliation': 'Acme Clothing', 'revenue': '11.99', 'shipping': '5', 'tax': '1.29', 'currency': 'EUR' // local currency code. });
最后,您还可以按商品指定currency
:
ga('ecommerce:addItem', { 'id': '1234', 'name': 'Fluffy Pink Bunnies', 'sku': 'DD23444', 'category': 'Party Toys', 'price': '11.99', 'quantity': '1', 'currency': 'GBP' // local currency code. });
多跟踪器支持
如果您在页面上实现了多个(有名称的)跟踪器,您也可以使用电子商务插件。插件的工作方式与默认跟踪器完全相同,唯一的区别在于格式:trackerName.pluginName:method
。例如,假设您创建了名为myTracker
的跟踪器:
ga('create', 'UA-XXXX-Y', 'auto', {'name': 'myTracker'});
然后,您应使用以下命令为该已命名的跟踪器加载电子商务插件:
ga('myTracker.require', 'ecommerce');
要发送交易,您可以创建交易对象并按如下所示将其传递给已命名的跟踪器:
var transaction = { 'id': '1234', // Transaction ID. 'affiliation': 'Acme Clothing', // Affiliation or store name. 'revenue': '11.99', // Grand Total. 'shipping': '5' , // Shipping. 'tax': '1.29' // Tax. }; ga('myTracker.ecommerce:addTransaction', transaction);
通过使用此语法,交易对象可用在多个跟踪器上。
最后,您应按如下方式发送交易数据:
ga('myTracker.ecommerce:send');
示例
大多数电子商务网站在服务器上执行交易,但analytics.js库是从浏览器发送数据到Google Analytics(分析)。因此,为了正确发送电子商务数据到Google Analytics(分析),服务器与客户端之间必须进行一定的协作。
大部分电子商务网站都使用服务器端模板引擎呈现“谢谢”页面。在这种情况下,您应向服务器端模板添加电子商务跟踪代码,并使用服务器逻辑来以动态方式将电子商务数据值写入最终页面。以下是在PHP中的代码示例。
在PHP中,您通常应使用某种形式来呈现电子商务数据。在以下示例中,数据存储在关联数组内:
<?php // Transaction Data $trans = array('id'=>'1234', 'affiliation'=>'Acme Clothing', 'revenue'=>'11.99', 'shipping'=>'5', 'tax'=>'1.29'); // List of Items Purchased. $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') ); ?>
第一步,编写相应的逻辑以将电子商务数据转换为analytics.js要求的JavaScript字符串:
<?php // Function to return the JavaScript representation of a TransactionData object. function getTransactionJs(&$trans) { return <<<HTML ga('ecommerce:addTransaction', { 'id': '{$trans['id']}', 'affiliation': '{$trans['affiliation']}', 'revenue': '{$trans['revenue']}', 'shipping': '{$trans['shipping']}', 'tax': '{$trans['tax']}' }); HTML; } // Function to return the JavaScript representation of an ItemData object. 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; } ?>
然后,在<script>
代码内添加额外的PHP逻辑,以动态方式输出交易和商品数据:
<!-- Begin HTML --> <script> ga('require', 'ecommerce'); <?php echo getTransactionJs($trans); foreach ($items as &$item) { echo getItemJs($trans['id'], $item); } ?> ga('ecommerce:send'); </script>
在PHP脚本完成执行后,analytics.js所需的交易和商品数据将输出至页面。一旦页面上的JavaScript在浏览器中呈现,所有的电子商务数据都将发送至Google Analytics(分析)。
货币类型
默认货币类型可通过管理界面配置。当您使用analytics.js发送货币值时,该值代表的是总货币值。
货币整数和小数部分之间可使用小数点作为分隔符。值最多可精确到小数点后6位。以下值可在货币字段中使用:
1000.000001
在值发送至Google Analytics(分析)后,第一个数字、“-
”字符或“.
”(小数点)字符之前的文字都将删除。因此:
$-55.00
将变成:
-55.00