Исходящие клики не отслеживаются Google Analytics - PullRequest
0 голосов
/ 22 марта 2011

Я пытаюсь отследить количество исходящих кликов с помощью Google Analytic на рекламном баннере на моем веб-сайте.

То, как это работает, если вы вошли в систему, вы не видите баннер. Если вы не вошли в систему, вы увидите баннер. Я успешно сделал это на моем WordPress сайте, используя следующий код:

    <?php
if (is_user_logged_in()){
    echo "No Ads - Thank You for Supporting Us";
}
else {
echo "

<a href=\"http://www.advertiser.org/\" onClick=\"pageTracker._trackEvent('Outbound', 'CuteDog', '300sb');\" target=\"_blank\" rel=\"nofollow\"><img src=\"http://www.mydomain.com/box/cp/cuteDog.gif\" width=300 height=250 alt=\"Cute Dog\" style=\"border:none;\" /></a>

";
};
?>

Теперь баннер и все работает, но он не отслеживается GA. Я совершенно уверен, что у меня правильная функция onclick:

onClick="pageTracker._trackEvent('Outbound', 'CuteDog', '300sb');"

Мой код отслеживания GA находится в заголовке моей страницы, и это самый последний код:

   <script type="text/javascript">var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-8441420-2']);
  _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> 

Что я делаю не так ??? 1012 *

Ответы [ 2 ]

5 голосов
/ 22 марта 2011

Вы используете две разные версии кода GA.Вот асинхронная версия, которую вы должны использовать:

_gaq.push(['_trackEvent','Outbound', 'CuteDog', '300sb']);

Вы можете поместить это прямо в ваш onclick или создать функцию-обертку для вызова.

редактировать за комментарий OP о непонимании того, что делать с этим

Вы вставили этот бит кода в щелчок своей ссылки ...

Изменитьэто:

<a href=\"http://www.advertiser.org/\" onClick=\"pageTracker._trackEvent('Outbound', 'CuteDog', '300sb');\" target=\"_blank\" rel=\"nofollow\"><img src=\"http://www.mydomain.com/box/cp/cuteDog.gif\" width=300 height=250 alt=\"Cute Dog\" style=\"border:none;\" /></a>

На это:

<a href=\"http://www.advertiser.org/\" onClick=\"_gaq.push(['_trackEvent','Outbound', 'CuteDog', '300sb']);\" target=\"_blank\" rel=\"nofollow\"><img src=\"http://www.mydomain.com/box/cp/cuteDog.gif\" width=300 height=250 alt=\"Cute Dog\" style=\"border:none;\" /></a>
0 голосов
/ 22 марта 2011

Здесь есть две проблемы:

  1. Вы используете объект pageTracker в событии onClick, но используете асинхронную версию кода GA.В этой версии объект не доступен напрямую через глобальный контекст window, поэтому, возможно, произошла ошибка.
  2. Даже если объект pageTracker был доступен, новая страница будет загружена до того, как у нее будетвозможность отправить данные в GA.

Вы должны использовать функцию, аналогичную следующей:

    <script type="text/javascript">
        function recordOutboundLink(link, category, action, value) {
            try {
                var pageTracker=_gat._getTracker("UA-XXXXXX-XX");
                pageTracker._trackEvent(category, action, value);
                window.setTimeout("window.location = '"+link.href+"';", 100);
            }catch(err){}
        }
    </script>

Затем вызовите ее в своем onClick событии:

onClick="recordOutboundLink(this, 'Outbound', 'CuteDog', '300sb'); return false;"
...