我有一个Process Transaction Knockout方法,它返回一个事务状态,根据该状态,我希望发送analytics.js事件。我已经使用了analytics-debug.js,并在控制台中说“发送完毕”#34;但该事件从未出现在Google Analytics中。
如果发送事件位于ajax请求之前或之后,则发送事件有效;但如果成功或完成回调,则发送事件无效。
$.ajax({
url: '/ProcessTransaction',
type: 'post',
data: 'data',
contentType: 'application/json',
success: function (result) {
if (result.StatusCode == 1 || result.StatusCode == 4) {
var subtotal = 7.95;
var enrollmentFee = 25;
var total = subtotal + enrollmentFee;
ga('ec:addProduct', {
'id': 'P12345',
'name': 'Test Product 1',
'category': 'Products',
'brand': 'Brand',
'price': subtotal,
'quantity': 1
});
ga('ec:setAction', 'purchase', {
'id': 'T12345',
'affiliation': 'TestSite',
'revenue': total,
'tax': enrollmentFee,
});
ga('send', 'event', 'Review', 'transaction', 'approved', total);
$('#submitpaymentbtn').data('loading-text', 'Approved!').button('loading');
window.location.href = '@Url.Action("Confirmation", new { ParticipantId = Participant.ParticipantId })';
}
else {
$('#modal-error').modal();
}
}
});
答案 0 :(得分:1)
发送事件不允许小数表示事件值。 Math.round(total)解决了这个问题。即使分析调试说发送了事件,也不会接受或记录它,因为该值必须是整数。
ga('send', 'event', 'Review', 'transaction', 'approved', Math.round(total));