Google Analytics事件工作不一致

时间:2014-03-06 18:17:23

标签: javascript jquery google-analytics universal-analytics

每次用户点击在课程中注册用户的表单提交按钮时,我都会推送Google Analytics事件。该事件是使用表单按钮中的数据属性创建的。

奇怪的是,它似乎只能工作一半左右 - 课程的录取次数是录制事件的两倍。点击此按钮是注册的唯一方式。

HTML

<form class="program-button register-course-form" action="/enroll-program/?course=personal-finance" method="post">

    <input type="hidden" name="course_id" value="1850">
    <button type="submit" class="btn btn-primary ga-click" data-ga-category="Academy" data-ga-action="Enroll" data-ga-label="Personal Finance">I agree</button>

</form>

的Javascript

jQuery(document).ready(function($){

    // For elements with the .ga-click class, get information on the category,
    // action, and label and report it to Google Analytics
    $('.ga-click').click(function(){

        var ga_category = $(this).data('ga-category');
        var ga_action = $(this).data('ga-action');
        var ga_label = $(this).data('ga-label');

        ga('send', 'event', ga_category, ga_action, ga_label)

    });
});

2 个答案:

答案 0 :(得分:2)

分析调用是异步的,并且您设置它的方式并不能保证在处理表单帖子时已成功发送分析事件,这意味着它可能会被中断。

您需要阻止表单发布,直到您知道谷歌分析事件何时成功发送为止。以下是有关如何实施hitCallback

的一些信息

https://developers.google.com/analytics/devguides/collection/analyticsjs/advanced#hitCallback

答案 1 :(得分:0)

正如Niklas所指出的,在这种情况下你需要使用命中回调。但是,您还需要考虑用户可能会使用某些隐私保护工具(例如Ghostery)阻止Google Analytics,在这种情况下,点击回调将永远不会被执行。因此,您需要非常仔细地实施此操作,以便您的网站似乎不会被这些用户破坏。使用Google Analytics跟踪出站链接时会出现同样的问题。以下文章解释了如何正确实现这一点:

http://veithen.github.io/2015/01/24/outbound-link-tracking.html