2012-02-28 7 views
0

내 사이트 (PHP 페이지)에 추가 한 Google Analytics 코드가 있으며 아웃 바운드 링크/이벤트를 추적하는 코드도 추가되었습니다. 링크를 열기 전에 잠시 기다릴 필요가 없으므로 코드가 약간 수정되었습니다. 링크가 모두 새 창에서 열리기 때문에 링크가 약간 변경되었습니다.Google Analytics 자바 스크립트 이벤트 추적 코드가 이벤트를 추적하지 않습니다.

발신 링크가 모두 올바르게 작동하고 있습니다.

그러나 어떤 이유로 이벤트가 전혀 추적되지 않습니다. 여기

는 헤더에 웹 로그 분석 코드입니다 :

<script type="text/javascript"> 

    var _gaq = _gaq || []; 
    _gaq.push(['_setAccount', 'UA-XXXXXXX-X']); 
    _gaq.push(['_trackPageview']); 

    (function() { 
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; 
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; 
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); 
    })(); 

</script> 

<script type="text/javascript"> 
function recordOutboundLink(link, category, action) { 
    try { 
    var myTracker=_gat._getTrackerByName(); 
    _gaq.push(['myTracker._trackEvent', category, action]); 
    }catch(err){} 
} 
</script> 

을 그리고 여기 각각의 링크를 가지고있는 코드 :

<a href="http://sitelink.tld" target="_blank" onClick="recordOutboundLink(this, 'Outbound Links', 'http://sitelink.tld');"> 

사람은 이벤트가하지 왜 저를 알아내는 데 도움이 수 웹 로그 분석 이벤트 페이지에 표시 되나요?

+1

자바 스크립트 디버그 출력을 확인할 수 있습니까? 도움이되는 경고 또는 오류가있을 수 있습니다. – CodesInChaos

+0

좋은 생각, 생각하지 않았어. 어떻게해야 할지를 알아 내고 곧 확인해 보겠습니다. – IsaacL

+0

그냥했는데 새 코드로 제대로 작동하는 것 같았지만 아무 것도 볼 수 없었습니다. 예전 코드와 함께 ... – IsaacL

답변

1

당신은 이전 동기 구문과 새로운 비동기 synteax를 혼합하고 있습니다. 당신은 기능은 다음과 같아야 위치 :

function recordOutboundLink(link, category, action) { 
    _gaq.push(['_trackEvent', category, action]); 
} 
+0

그렇다면 catcherr 코드가 필요합니까? 나는 곧 그것을 시도 할 것이다 - 감사합니다! – IsaacL

+0

사용하지 않습니다. 나는이 장소에서 오류가 발생하는 것을 결코 보지 못했다. 그러나 원할 경우 자유롭게 추가하십시오. – Eduardo

+0

일하는 것 같습니다 - 정말 고마워요! – IsaacL

1

코드에 오타가 있습니까? var myTracker=_gat._getTrackerByName();

하지 _gat_gaq

+0

아니, 그게 정확하다고 생각하고 온라인 빠른 검색을 확인하는 것 같습니다 ... 시도해 줘서 고마워! – IsaacL

1

내가 링크에서이 코드를 사용하고 난 등이 하나의 단지 설정 처음 두 필드가 이벤트 범주 작업 얻을 기본 추적 코드 요소를 형성 할 수 있어야합니다.

onclick="_gaq.push(['_trackEvent', 'Site wide', 'Search Input']);"

1

실행하고 기능에 setTimeout을 넣어 GA에 이벤트를 보낼 수있는 JS 시간을 줘. 페이지가 _gaq.push이 실행되기 전에 아웃 바운드 링크로 리디렉션되고 있습니다. 당신이 추적기가 실행하고 새로운 윈도우가로드되기 전에 실행하는 데 시간이되어 있는지 확인 인 경우에, 원래의 솔루션이 작동합니다

function recordOutboundLink(link, category, action) { 
    _gaq.push(['_trackEvent', category, action]); 
    setTimeout('window.open("' + link.href + '","newsite")', 100); 
} 

:

function recordOutboundLink(link, category, action) { 
    _gaq.push(['_trackEvent', category, action]); 
    setTimeout('document.location = "' + link.href + '"', 100); 
} 

하거나, 새 창에서 엽니 다.

+0

위에서 언급했듯이 모든 링크가 새 탭/창에 열려 있기 때문에 시간 제한이 필요하지 않습니다. 따라서 새 페이지가 열릴 때 원본 페이지에서 추적 코드를 실행할 충분한 시간이 있습니다. 타임 아웃은 "target"옵션이 아무런 영향을 미치지 않도록합니다. – IsaacL

+0

@IsaacL 새 창이 열리는 예제를 추가했습니다.그러나 추적기가 실행될 시간이있는 경우 [GA Debug with Chrome이 설치됨] (https://chrome.google.com/webstore/detail/jnkmfdileelhofjcijamephohjechhna) 콘솔에서 이벤트가 전송 된 추적기 또는 결과가 표시되어야합니다.). –

+0

위의 코드 변경을 사용하여 시간 제한이 필요 없게되었습니다. 올바르게 작동하는 것으로 보이지만 도움을 주셔서 감사합니다! – IsaacL

관련 문제