2016-11-25 3 views
1

Google Analytics에서 아웃 바운드 링크 이벤트를 기록하는 데 문제가 있습니다. 이것은 내가 잘못 이해할 수없는 간단한 작업입니다. 어느 누구도 내 코드에 문제가 있음을 알 수 있습니까? 구글 기능 내 온 클릭 이벤트에 실행되고, 문제는 어떤 이벤트가 행동> 이벤트> 개요Google 웹 로그 분석, 아웃 바운드 이벤트 추적

google_analytics.php

<script> 
    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 
    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 
    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 
    })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); 

    ga('create', 'UA-86854644-1', 'auto'); 
    ga('send', 'pageview'); 


var trackOutboundLink = function(url) { 
    alert(url); 
       ga('send', 'event', 'outbound', 'click', url, { 
         'transport': 'beacon', 
         'hitCallback': function(){document.location = url;} 
       }); 
} 



function handleOutboundLinkClicks(event) { 

  ga('send', 'event', { 
    eventCategory: 'Outbound Link', 
    eventAction: 'click', 
    eventLabel: event, 
    transport: 'beacon' 
  }); 
} 

</script> 

클릭 이벤트에서 내 구글 분석 대시 보드에 기록되지되고 있다는 점이다

onclick=\"handleOutboundLinkClicks(this);\" 

header.php

include_once("/includes/google_analytics.php"); 
+0

나는 브라우저가 추적이 끝나기 전에 링크로 사용자를 리디렉션한다고 생각합니다. ['event.preventDefault'] (https://developer.mozilla.org/en/docs/Web/API/Event/preventDefault)를 사용하여 링크를 여는 브라우저의 동작을 중지해야하므로 'hitCallback'에 대한 코드는 다음과 같습니다. 이벤트가 보내진 후 실제로 호출됩니다. – danguilherme

+0

나는 이것이 두 사건일지도 모른다라고 생각했다. 나는 다음 콜백에 대한 로그가 여전히 존재하지 않도록 노력했다. onclick = \ "trackOutboundLink ('$ hreflink', event); \"var trackOutboundLink = function (url, event) { alert (event); event.preventDefault(); –

답변

0

감사합니다. 도움을 받으려면 Event Listeners가 여러 이벤트에서 더 나은 접근 방식이지만 특히 초기 함수 및 클릭 이벤트가 효과적이라는 데 동의합니다. Google Analytics가 내 대시 보드에 표시 할 시간이 필요했습니다. 감사합니다.

0

event을 매개 변수로 보낼 수 있지만 this이 아닙니다. '$hreflink'과 같은 것은 없습니다. onclick 사용을 피하십시오! (아래 참조)

this을 보내면 요소 자체 (귀하의 경우에는 <a> 요소)를 보냈습니다. 따라서 귀하의 경우에는 내가 this JSFiddle처럼 뭔가를 할 것이다 :

theAnchor.addEventListener('click', function (event) { 
    // avoid browser from following the href 
    event.preventDefault(); 

    // call google analytics, and on hitCallback, follow the url: 
    document.location = this.href; // `this` is the own element 
}); 

피를 onclick 속성을 사용!

HTML과 JavaScript를 함께 사용하지 마십시오. onclick 속성 (및 유사)을 사용하지 마십시오. 이벤트 관리에 적합하지 않으며 응용 프로그램이 커짐에 따라 유지 관리가 더 어려워집니다.

그렇다면 EventTarget.addEventListener을 사용하여 이벤트를 요소에 추가하십시오 (위의 예 참조).

+0

소리 가능합니다. PC ATM에서 멀리 떨어져 있습니다. 곧 돌아 가려고합니다. BTW '$ hreflink'는 탐색중인 외부 페이지의 링크이며, php var입니다. 이벤트 리스너가 작동하는지 알려줍니다. 감사 –