2013-04-18 2 views
2

소유하고 있지 않은 다른 도메인으로 제출하는 양식이 Google Analytics에서 이벤트를 추적해야합니다. 차라리 종속성을 피하기 위해 jQuery를없이 할 거라고하지만 난이 코드가 작동하지 않는 이유를 이해하지 못하는 해요 :Google 웹 로그 분석 양식 제출 이벤트 추적

<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> 

답변

4

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

이 잘못된 부분이 될 것으로 보인다. 을 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

감사 야쿱, 그것은 좋아 보이지만 난 여전히 이벤트가 Google 웹 로그 분석에 등록 볼 수 없습니다. 그것이 나타나기 전에 어떤 종류의 지연이 있는지 확실하지 않습니다. – Lorenzo

+0

[기타 질문] (http://stackoverflow.com/questions/4086587/track-event-in-google-analytics-upon-clicking-form-submit?rq=1)을 확인하십시오. GA native 콜백 함수는 setTimeout 연습을 피하기 위해 문제 일 수 있습니다. 또한 내 경험으로 말하면 오늘의 통계를 확인 했습니까? :디 –

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> 
0

이 질문에 비틀 거리고 새로운 버전의 Google 범용 분석을 사용하는 사용자에게 이 버튼을 나는 이벤트 페이지를 제출하기 때문에 경우에 해고되고 당신은 디버거에서 콘솔 볼 것을 표시하는 경고를 뒀다

<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

관련 문제