Ajax成功的Google Analytics发送事件无效

时间:2015-03-26 20:25:18

标签: ajax knockout.js google-analytics-api

我有一个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();
        }
    }
});

1 个答案:

答案 0 :(得分:1)

发送事件不允许小数表示事件值。 Math.round(total)解决了这个问题。即使分析调试说发送了事件,也不会接受或记录它,因为该值必须是整数。

ga('send', 'event', 'Review', 'transaction', 'approved', Math.round(total));