Google Analytics 电子商务跟踪
通过电子商务跟踪,您可以衡量网站产生的交易次数和收入。在典型的电子商务网站上,当用户在浏览器中点击“购买”按钮时,用户的购买信息就会发送给执行交易的网络服务器。如果成功,服务器会将用户重定向至提供交易详情和购买收据的“谢谢”页面或收据页面。您可以使用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),将舍入为最接近的整数值。 |
实现
加载电子商务插件
为减小analytics.js库的规模,增强型电子商务跟踪不在默认库中提供,而是以需要在使用前加载的插件模块的形式提供。
要加载电子商务插件,请使用以下命令:
ga('require', 'ecommerce');
添加交易
插件加载后就会创建透明的购物车对象。您可以将交易和商品数据添加到购物车,并在完全配置后一次性发送全部数据。
您可以使用
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.
'currency': 'EUR' // local currency code.
});
命令向购物车添加交易数据:
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.
'currency': 'GBP' // local currency code.
});
添加商品
下一步,要向购物车添加商品,您可以使用
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命令,系统只会发送新的交易和商品数据。
大部分电子商务网站都使用服务器端模板引擎呈现“谢谢”页面。在这种情况下,您应向服务器端模板添加电子商务跟踪代码,并使用服务器逻辑来以动态方式将电子商务数据值写入最终页面。以下是在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(分析)。
附上Magento 交易跟踪代码
<?php
$order = Mage::getModel('sales/order')->load(Mage::getSingleton('checkout/session')->getLastOrderId());
$subtotal = $order->getSubtotal();
$order_id = $order->getId(); //the id of the order
//$order->getIncrementId();//the increment id of the order
$gtotal = $order->getGrandTotal();//grand total of the order
$address = $order->getBillingAddress()->getData();
$city = $address['city'];
$state = $address['region'];
$country = $address['country_id'];
?>
<script type="text/javascript">
ga('require', 'ecommerce');
ga('ecommerce:addTransaction', {
'id': '<?php echo $order_id; ?>', // Transaction ID. Required.
'affiliation': '', // Affiliation or store name.
'revenue': '<?php echo $gtotal;?>', // Grand Total.
'shipping': '0', // Shipping.
'tax': '0' // Tax.
});
<?php
$items = $order->getAllItems();
$itemcount=count($items);
$name=array();
$unitPrice=array();
$sku=array();
$ids=array();
$qty=array();
foreach ($items as $itemId => $item)
{?>
ga('ecommerce:addItem', {
'id': '<?php echo $order_id; ?>', // Transaction ID. Required.
'name': '<?php echo $item->getName(); ?>', // Product name. Required.
'sku': '<?php echo $item->getSku(); ?>', // SKU/code.
'category': '', // Category or variation.
'price': '<?php echo $item->getPrice(); ?>', // Unit price.
'quantity': '<?php echo $item->getQtyToInvoice(); ?>' // Quantity.
});
<?php
}
?>
ga('ecommerce:send');
</script>
心晴客栈 » Google Analytics 电子商务跟踪