Я хочу отслеживать клики пользователей по ссылкам на внешние сайты. Я рад использовать асинхронную версию GA, поскольку она позволяет (в большинстве браузеров) продолжать загрузку страницы вместо остановки в теге script и ожидания загрузки и выполнения google-analytics.com/ga.js. *
Google рекомендует эту функцию:
<script type="text/javascript">
function recordOutboundLink(link, category, action) {
try {
var myTracker=_gat._getTrackerByName();
_gaq.push(['myTracker._trackEvent', ' + category + ', ' + action + ']);
setTimeout('document.location = "' + link.href + '"', 100)
}catch(err){}
}
</script>
<a href="http://www.example.com" onClick="recordOutboundLink(this, 'Outbound Links', 'example.com');return false;">
Проблемы с этим решением:
- Это может занять 10 мс, для отслеживания события может потребоваться 300 мс, но это изменит страницу через 100 мс независимо от того, что произойдет. И если отслеживание будет слишком медленным, страница изменится до того, как будет отслежена.
document.location =
означает, что исходная ссылка игнорируется, и поэтому target = _blank не открывает новые вкладки / окна.