我在使用Analytics时遇到了点小问题。
为了纠正交易中可能出现的一些错误(例如,用户在付款后不返回网站),我试图在后台实现一个固定页面。
使用PHP API,我检索所有的事务,并将它们显示到一个带有输入和执行删除脚本的按钮的表中。
但是它不起作用。代码正确执行,并分析Chrome扩展看到没有错误,但在统计没有修改。
下面是我的代码示例。
//Top of my page
<script type="text/javascript">
(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-10XX3X1-1', 'xxxxxxx.com');
ga('require', 'ecommerce', 'ecommerce.js');
</script>
/*
Display of Transactions
*/
<script type="text/javascript">
function modifiyTransaction(e){
var valueT=document.getElementById(e.name).value.toString();
console.log(typeof valueT+" : "+ valueT);
console.log(typeof e.name+" : "+ e.name);
//Fixing transactions
ga('ecommerce:addTransaction', {
'id': e.name, // order ID - required
'affiliation': 'Rental', // affiliation or store name
'revenue': valueT // total - required
});
ga('ecommerce:send');
$("#sendingEvent").show();
setTimeout(function(){
document.getElementById(e.name).value="Done";
$("#sendingEvent").hide();
}, 1000);
}
</script>
我得到的值和id都是正确的,并且都是字符串。
有人有解决办法吗?:)
编辑:如果这是不可能的方式,它可以通过PHP API直接完成吗?我在文档中没有看到与此相关的内容
好的,所以,使用AJAX的测量协议是有效的。
如果有人遇到同样的问题,这里是我的代码样本。
$.ajax({
type: "POST",
url: 'https://ssl.google-analytics.com/collect',
data: { v: "1", tid: "UA-XXXXXXXX-1", cid: clientId,
t: "transaction", ti: transactionId,
ta: "Rental", tr: valueToChange },
success: function(){
$("#sendingEvent").hide();
document.getElementById(e.name).value="Done";
},
error: function(){
$("#sendingEvent").hide();
document.getElementById(e.name).value="Error!";
}
});
终于超级简单了。
更多信息:https://developers.google.com/analytics/devguides/collection/protocol/v1/?hl=fr +开发人员指南和其中链接的参考指南