2

我们正在尝试跨 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');
4

1 回答 1

5

我想我会继续回答这个问题,因为我们确实确定了为什么我们的交易没有被跟踪。

javascript 块内的迂回撇号。

在某些事务中,传递给 addItem 对象的项目名称在文本字符串中有一个撇号,因此整个脚本出错了。所以最后,当有疑问时,将斜杠()添加到任何可能有撇号的字符串。看起来很明显,但很容易忘记。

还遇到了一个 Chrome 插件(Google Analytics 调试器),它可以帮助您准确查看传递给 GA 的内容。在管理像这样复杂的多跟踪器设置时非常有用。

https://chrome.google.com/webstore/detail/google-analytics-debugger/jnkmfdileelhofjcijamephohjechhna?hl=en

希望能帮助别人不要犯同样的错误。

于 2014-03-15T21:40:49.337 回答