Google Analytics jQuery 跟踪外部链接 - _gaq & ga 未定义
Google Analytics jQuery track external links - _gaq & ga is not defined
我想使用 google 分析来跟踪我网站上的外部 link。
我在我网站的 header 中包含了我的 Google 分析代码:
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.
//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);
如果我点击 link,我会收到以下问题报告:
错误:参考错误: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”方法调用。
我想使用 google 分析来跟踪我网站上的外部 link。
我在我网站的 header 中包含了我的 Google 分析代码:
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.
//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);
如果我点击 link,我会收到以下问题报告:
错误:参考错误: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”方法调用。