Я пытаюсь отслеживать количество исходящих кликов Google Analytics на рекламном баннере на моем веб-сайте.
Как это работает, если вы вошли в систему, вы не видите баннер. Если вы не вошли в систему, вы увидите баннер. Я успешно сделал это на моем сайте 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>
Что я делаю неправильно?
Вы используете две разные версии кода GA. Вот асинхронная версия, которую вы должны использовать:
_gaq.push(['_trackEvent','Outbound', 'CuteDog', '300sb']);
Вы можете поместить это прямо в свой onclick или сделать функцию обертки, чтобы вызвать его.
отредактировать комментарий к OP за непонимание того, что делать с этим
Вы помещаете этот бит кода в onclick вашей ссылки …
Измените это:
<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>
Здесь есть две проблемы:
pageTracker
в событии pageTracker
но используете асинхронную версию кода GA. В этой версии объект напрямую не доступен через глобальный контекст window
поэтому, вероятно, возникает ошибка. 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;"