我想使用 Google Analytics 跟踪我网站上的外部链接。
我在网站标题中添加了 Google Analytics 代码:
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXX-XX']);
_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);
})();
我可以查看是否有人在我的网站上... 之后,我添加了 jQuery 脚本来检查是否有人单击外部链接。
//Link Tracking
(function($)
{
$('a.liexternal, a.liinternal, .wp_rp_content ul li a').click(function(e)
{
//Aktuelle URL
var actual_url = window.location.href;
//Angeklickte URL
var clicked_url = $(this).attr('href');
//Checken ob der Link bereits getrackt wurde (je Seitenaufruf)
if(!e.isDefaultPrevented())
{
//Verhindere die Default Eventaktion (Linkklick = Seitenaufruf)
e.preventDefault();
//Manuelle Funktion um den Seitenaufruf nach Tracking zu bewirken
function loadPage()
{
document.location = clicked_url;
}
//Callback Funktion um den Seitenaufruf nach Tracking durchzuführen
//Unterschied zwischen Classic & Universal Analytics beachten!
_gaq.push(['_set', 'hitCallback', loadPage]);
if($(this).hasClass('liexternal'))
{
//_gaq.push(['_trackEvent', actual_url, 'External link', clicked_url]);
ga('send', 'event', actual_url, 'External link', clicked_url, {'hitCallback':loadPage});
}
else if($(this).hasClass('liinternal'))
{
//_gaq.push(['_trackEvent', actual_url, 'Internal link', clicked_url]);
}
else if($(this).hasClass('wp_rp_title'))
{
//_gaq.push(['_trackEvent', actual_url, 'Internal related post', clicked_url]);
}
else
{
loadPage();
}
}
else
{
return true;
}
});
})(jQuery);
如果我单击链接,我会收到以下问题报告:
错误:ReferenceError:ga未定义
希望你能帮助我。
最佳答案
您调用的库是较旧的经典 GA 库,使用“ga.js”名称以及“_gaq”对象即可证明这一点。但是,您尝试使用 Universal Analytics 方法通过“ga”方法发送事件(即 ga('send','event', ....))。您正在做的是将两个版本混合在一起。您应该考虑弃用经典代码,转而使用通用代码。
这是您尝试使用 ga 对象的位置(您已注释掉 _gaq 行):
if($(this).hasClass('liexternal'))
{
//_gaq.push(['_trackEvent', actual_url, 'External link', clicked_url]);
ga('send', 'event', actual_url, 'External link', clicked_url, {'hitCallback':loadPage});
}
如果您决定继续使用经典 GA,那么您还应该坚持使用“_gaq”方法调用。
关于javascript - Google Analytics jQuery 跟踪外部链接 - _gaq & ga 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32206644/