Google Analytics 电子商务跟踪

通过电子商务跟踪,您可以衡量网站产生的交易次数和收入。在典型的电子商务网站上,当用户在浏览器中点击“购买”按钮时,用户的购买信息就会发送给执行交易的网络服务器。如果成功,服务器会将用户重定向至提供交易详情和购买收据的“谢谢”页面或收据页面。您可以使用analytics.js库将“谢谢”页面中的电子商务数据发送到Google Analytics(分析)。

 

可以使用analytics.js发送两种类型的电子商务数据:交易数据和商品数据。

交易数据

交易是指发生在您网站上的完整交易,包括以下值:

类型必需说明
IDString交易ID(例如1234)。
AffiliationString发生此交易的商店或联属机构(例如Acme Clothing)。
RevenueCurrency与当次交易关联的总收入或总计金额(例如11.99)。此值包含运费、税费或其他要计入revenue的总收入调整值。
ShippingCurrency指定交易的总运费(例如5)。
TaxCurrency指定交易的税款总额(例如1.29)。

商品数据

商品指购物车里的单款产品,包括以下值:

类型必需说明
IDNumber交易ID。此ID将商品与其所属的交易关联在一起(例如1234)。
NameString商品名称(例如粉色绒毛小兔)。
SKUString指定SKU或商品代码(例如SKU47)。
CategoryString商品所属类别(例如聚会玩具)。
PriceCurrency每件商品的单价(例如11.99)。
QuantityNumber在交易中购买的商品数量。如果传递到此字段的是非整数值(例如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 电子商务跟踪

发表回复