2013-08-28 3 views
0

Очень простой сценарий: я просто хочу отслеживать, используя Google Analytics, каждый экземпляр, который посетитель моего сайта нажимает на ссылку на внешний веб-сайт. Я сделал это, используя отслеживание событий, насколько мне известно, но когда я нажимаю на ссылку, я не вижу отслеживания в отчете Google Analytics.Использование Google Analytics для отслеживания кликов

Мне интересно, если: (a) что-то не так с моим кодом; (б) Я не ищу подходящее место в своей учетной записи Google Analytics; (с) и

Ниже вся моя страница в полном объеме, subsitituting 111111111 для фактического счета ID:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 

    <body> 
     <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', '//www.google-analytics.com/analytics.js', 'ga'); 

      ga('create', 'UA-1111111111-1', 'mysite.com'); 
      ga('send', 'pageview'); 
     </script> 
     <script type="text/javascript"> 
      var _gaq = _gaq || []; 
      _gaq.push(['_setAccount', 'UA-1111111111-1']); 
      _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> <a target="_blank" onClick="_gaq.push(['_trackEvent', 'Links', 'Click', 'CNN']);" 
     href="http://www.cnn.com">CNN</a> 
     <br/> 
    </body> 

</html> 
+0

Начало ваших проблем состояло в том, что вы смешиваете две разные версии кода аналитики (смотрите разницу между ga.js и analytics.js). –

ответ

1

Есть несколько вещей неправильно с вашим кодом:

Analytics версии

Вы путаете старую ga.js и новую analytics.js

Просто используйте только новее analytics.js

гонки состояние

Вы отслеживать события OnClick, но на данный момент, браузер уже покидая страницы и запрос не может пройти.

В принципе, открытку cnn.com и отправке события участвуют в вашем браузере.

Используйте hit callback и установите window.location.href, и вы будете в порядке:

ga('send', 'event', { 
    'eventCategory': 'Links', 
    'eventAction': 'Click', 
    'hitCallback': function() { 
    window.location.href = "http://www.cnn.com"; 
    } 
}); 

Таким образом, браузер будет ждать события, которые будут представлены, а затем получить доступ к cnn.com.

+0

Спасибо за сообщение, Томас. Три вопроса: 1. С вашим кодом не откроется ли страница cnn в том же окне? Его нужно открыть в отдельном окне. 2. Каков html-код объекта, который должен быть? Я предполагаю, что код onclick, который у меня есть, больше не будет правильным. – oyvey

+0

@oyvey 1. Возможно, вам захочется увидеть этот вопрос: http://stackoverflow.com/questions/4907843/open-url-in-new-tab-using-javascript К сожалению, вы, вероятно, будете остановлены блокировщиками всплывающих окон. 2. Это должна быть функция, которая вызывает код, который я вам дал. –