2016-11-25 6 views
1

Ошибка при записи событий исходящей связи в моей аналитике google. Это такая простая задача, я не могу понять, где она может пойти не так. Может ли кто-нибудь заметить какие-либо проблемы с моим кодом. Функции Google в настоящее время выполняются на моих OnClick событий Вопрос заключается в том, что ни одно событие не будучи зарегистрированным в моем Google Analytics приборную панель в поведении> События> ОбзорGoogle Analytics, отслеживание исходящих событий

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> 

Click Event

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

Благодарим за помощь. Я согласен с тем, что прослушиватели событий - это лучший подход, особенно с несколькими событиями, но моя начальная функция и работа с кликом работали. Оказалось, что для анализа 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

Звуки Возможно, я далеко от своего ПК-банкомата, попробую как можно скорее. BTW '$ hreflink' - это ссылка на внешнюю страницу, на которую осуществляется переход, ее php var. Сообщает вам, работает ли прослушиватель событий. БЛАГОДАРЯ –

Смежные вопросы