我们正在尝试跨3种不同的GA属性(跟踪ID)跟踪网页浏览量和电子商务交易。按照完全按照定义进行集成和开发人员指南并使用正确的名称间隔跟踪器后,我们得到的数据不一致。跟踪某些交易,而不跟踪其他交易。似乎在方法论中存在某种冲突,但在尝试各种迭代后,我们还没有找到解决方案。
代码如下:
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create','UA-XXXX-1','auto',{'name': 'location1'});
ga('location1.send','pageview',{'dimension1': 'location-1-name'});
ga('location1.require','ecommerce','ecommerce.js');
ga('create','UA-XXXX-2','auto',{'name': 'location2'});
ga('location2.send','pageview',{'dimension1': 'location-2-name'});
ga('location2.require','ecommerce','ecommerce.js');
ga('create', 'UA-XXXX-3','auto',{'name': 'location3'});
ga('location3.send','pageview');
ga('location3.require','ecommerce','ecommerce.js');
var transaction = {
'id': '1234',
'affiliation': 'store',
'revenue': '10.50',
'shipping': '5.00',
'tax': '0.00'
};
ga('location1.ecommerce:addTransaction', transaction);
ga('location1.ecommerce:addItem', {
'id': '<?php echo $order->order_no; ?>',
'name': '<?php echo $item->name; ?>',
'sku': '<?php echo $item->item_no; ?>',
'category': '<?php echo $item->item_type; ?>',
'price': '<?php echo number_format($item->item_sale_price,2); ?>',
'quantity': '<?php echo $item->qty; ?>'
});
<?php } ?>
ga('location2.ecommerce:addTransaction', transaction);
<?php foreach ($items as &$item) { ?>
ga('location2.ecommerce:addItem', {
'id': '<?php echo $order->order_no; ?>',
'name': '<?php echo $item->name; ?>',
'sku': '<?php echo $item->item_no; ?>',
'category': '<?php echo $item->item_type; ?>',
'price': '<?php echo number_format($item->item_sale_price,2); ?>',
'quantity': '<?php echo $item->qty; ?>'
});
<?php } ?>
ga('location3.ecommerce:addTransaction', transaction);
<?php foreach ($items as &$item) { ?>
ga('location3.ecommerce:addItem', {
'id': '<?php echo $order->order_no; ?>',
'name': '<?php echo $item->name; ?>',
'sku': '<?php echo $item->item_no; ?>',
'category': '<?php echo $item->item_type; ?>',
'price': '<?php echo number_format($item->item_sale_price,2); ?>',
'quantity': '<?php echo $item->qty; ?>'
});
<?php } ?>
ga('location1.ecommerce:send');
ga('location2.ecommerce:send');
ga('location3.ecommerce:send');
答案 0 :(得分:5)
我认为我会继续回答这个,因为我们确定了为什么我们的交易没有被跟踪。
javascript块中的狡猾撇号。
在某些事务中,传递给addItem对象的项目名称在文本字符串中只有一个撇号,因此整个脚本都出错了。所以最后,当对任何可能有撇号的字符串addlashes()有疑问时。看似显而易见但容易忘记。
还发现了Chrome插件(Google Analytics Debugger),可帮助您准确了解传递给GA的内容。在管理这样复杂的多跟踪器设置时非常有用。
希望能帮助别人犯同样的错误。