有人可以解释我做错了什么吗?我试图在AngularJS应用中发送事件和电子商务详细信息。事件和综合浏览量正在发送,但电子商务详细信息不会发生,我没有错误。这是我的设置:
app.html:
<script>
(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');
if (window.document.location.hostname == 'domain.com') {
// Prod
ga('create', 'UA-XXXXXXXX-2', 'auto');
} else {
// Dev
ga('create', 'UA-XXXXXXXX-1', 'auto');
}
ga('send', 'pageview');
ga('require', 'ecommerce');
</script>
有条件的只是测试它是否在生产环境或开发网站上。
这是我的一个Angular控制器中的另一部分,通过单击按钮触发:
$scope.sendAnalyticsData = function() {
ga('send', 'event', 'Click', 'Plan Enrollment Submitted');
var id = $scope.id;
var name = $scope.name;
var sku = $scope.sku;
var category = $scope.category;
var price = $scope.price;
ga('ecommerce:addItem', {
'id': id,
'name': name,
'sku': sku,
'category': category,
'price': price
});
ga('ecommerce:send');
};
为了这些目的,我只是在那里放了一些假变量。
单击该按钮时,会发送该事件,我可以在Google Analytics上看到它,但不会发送电子商务内容。我尝试了很多不同的变体,包括要求使用&#39; ec&#39;而不是电子商务&#39;并使用ec:addProduct变体。什么都没有。
有人可以解释我在电子商务部分做错了吗?
答案 0 :(得分:1)
你在这里遇到的问题是你试图将项目添加到任何东西!在这种情况下,您需要先创建一个事务,然后在发送事务和产品数据之前将事项添加到事务中。
所以,taken from the google docs,首先添加交易:
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.
});
然后添加您的项目
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.
});
最后提交您的电子商务数据:
ga('ecommerce:send');
您显然需要使用交易数据正确填充字段,但这会为您提供一个好的模板。