几个月来,我一直在使用脚本来跟踪出站链接。该脚本 WORKS,但在 Google Analytics 生成的报告中,许多 URL 的末尾都有一个尾随“:80”(默认端口号)。请阅读以获得更多详情。
值得一提的是,跟踪这些出站链接的网站有大量的出站流量(将您的幻想乘以∞)。
脚本的目的
它跟踪所有出站链接并将它们标记为谷歌分析中的“出站链接”。
该脚本被大量注释,并且有一些 console.log() 实例来帮助调试(这些都被注释掉了)。
“出站链接”显示在 GA 上,如下:
内容 > 事件 > 热门事件 > “出站链接” [点击它] > [报告显示所有点击的 url]
问题
在“出站链接”报告下,我得到了所有被点击的链接,我在至少 2/3 报告的链接(可能更多)的末尾得到“:80”。GA 将http://example.com和http://example.com:80视为不同的链接,在报告中将它们分开。这当然是不希望的。
值得一提:
以“:80”结尾的链接总是比没有“:80”的链接有更多的点击率,点击率高出 40% 到 60%。
想要的解决方案
- 将以“:80”结尾的链接与没有它的链接合并,或者
- 如果可能,请避免将“:80”附加到链接。
- 奖励:了解为什么我们得到以“:80”结尾的链接。
剧本
// Outbound Link Tracking with Google Analytics
// Requires jQuery 1.7 or higher (use .live if using a lower version)
$(function() {
$("a").on('click',function(e){
var url = $(this).attr("href");
// Console logs shows the domain name of the link being clicked and the current window
// console.log('e.currentTarget.host: ' + e.currentTarget.host);
// console.log('window.location.host: ' + window.location.host);
// If the domains names are different, it assumes it is an external link
// Be careful with this if you use subdomains
if (e.currentTarget.host != window.location.host) {
// console.log('external link click');
// Outbound link! Fires the Google tracker code.
_gat._getTrackerByName()._trackEvent("Outbound Links", e.currentTarget.host, url, 0);
// Checks to see if the ctrl or command key is held down
// which could indicate the link is being opened in a new tab
if (e.metaKey || e.ctrlKey) {
// console.log('ctrl or meta key pressed');
var newtab = true;
}
// If it is not a new tab, we need to delay the loading
// of the new link for a just a second in order to give the
// Google track event time to fully fire
if (!newtab) {
// console.log('default prevented');
e.preventDefault();
// console.log('loading link after brief timeout');
setTimeout('document.location = "' + url + '"', 100);
}
}
/*
else {
console.log('internal link click');
}
*/
});
});