Google Analytics表单提交事件跟踪

时间:2013-04-18 20:14:00

标签: javascript javascript-events google-analytics

我有一个表单提交到我不拥有的另一个域,需要在Google Analytics中跟踪该事件。我宁愿在没有jQuery的情况下做到这一点以避免依赖,但我还是不明白为什么这段代码不起作用:

<form action='example.com/search' onsubmit='trackSubmit()' id='frm'>
    <button type='submit'>Search</button>
</form>

<script type='text/javascript'>
function trackSubmit(e) { 

  var bForm = document.getElementById('frm');

    bForm.addEventListener('submit', function(e){
    e.preventDefault();
    _gaq.push('_trackEvent', 'Foobar', 'Foobar Form Submit');
    setTimeout(function(){

        console.log('tracking foobar');
        bForm.submit();

    }, 1000);
  }, false);

}
</script>

3 个答案:

答案 0 :(得分:4)

onsubmit='trackSubmit()'bForm.addEventListener('submit', function(e){

这似乎是错误的部分。如果你在trackSubmit()上调用submit,那么在此函数中添加一个侦听器是没用的,它甚至都不会触发。我认为应该只是:

<form action="http://example.com/search" onsubmit="return trackSubmit()" id="frm">
    <button type="submit">Search</button>
</form>

<script type="text/javascript">
function trackSubmit() {
    var frm = document.getElementById('frm');

    _gaq.push('_trackEvent', 'Foobar', 'Foobar Form Submit');
    setTimeout(function(){

        console.log('tracking foobar');
        frm.submit();

    }, 1000);

    return false;

}
</script>

答案 1 :(得分:0)

这可以重复用于多次提交跟踪。

<script type="text/javascript">
    function trackSubmissions(form, category, name, value) {
        try {
            _gaq.push(['_trackEvent', category, name, value]);
        } catch(err){}
        setTimeout(function() {
            form.submit();
        }, 100);
    }
</script>

<form onsubmit="trackSubmissions(this, 'category', 'name', 'value'); return false;">
</form>

答案 2 :(得分:0)

对于偶然发现此问题且正在使用新版Google google Analytics的用户。 这是提交按钮和链接点击的代码

<script type='text/javascript'>
        function trackSubmit() { 


        ga('send', 'event', 'button', 'click', 'searchsubmit', 4);
          alert('testing send event')
        }

        function trackClick() { 
            ga('send', 'event', 'button', 'click', 'This is coool');
        }
    </script>

    <body>
    Pushing data.......

        <form onsubmit='trackSubmit()' id='frm'>
            <button type='submit' id= 'searchsubmit'>Search</button>

            </br>
            <a href='http://cool.com' onclick="trackClick(); return false;">cool</a>
        </form>

    </body>

我已发出警告以显示事件被触发,因为当页面提交并且您将在调试器中查看控制台时,您的事件将不可见。

enter image description here