我读过这篇关于跟踪横幅上的出站链接的文章:
http://seogadget.co.uk/how-to-count-your-outbound-click-stats-with-onclick-in-google-analytics/
所以我将这段代码添加到了我的href:
的onClick事件中 javascript: pageTracker._trackPageview('/outbound/top_banners/banner_name');
这够了吗?
因为我已经阅读了一些地方,我需要一个“链接延迟”功能或者我的文档的HEAD
中的某些内容,在执行任何javascript之前!
此外,在GA中(在界面中)我能够查看点击次数吗?
由于
答案 0 :(得分:4)
问题在于:记录的每项数据和Google Analytics报告的内容会在客户的请求网址组件中发送给GA服务器,用于__utm.gif。函数_.trackPageview()将数据的收集/连接激发到请求URL以及请求本身。换句话说,如果未调用_trackPageview(),则不会向GA服务器发送任何数据。
所以问题是在与出站链接关联的请求之前是否处理了GA请求(上面)。如果不是,则GA不会记录出站链接上的点击,这不是您想要的。
所以你想要的是延迟,只是稍微 - 足够长的GA请求发生但足够短以便用户不会注意到延迟 - 出站链接请求。
您的Q中发布的代码与下面的代码之间存在一些差异 - 所有差异都针对此“竞争条件”。
首先,请注意onClick处理程序中的返回值设置为“ false ” - 阻止客户端浏览器(立即)导航到{{3} }
第二个差异是对 setTimeout 的调用。传入的第三个参数,'100'是毫秒延迟的数量。
第三,onclick处理程序(fnx)创建自己的跟踪对象,因此不依赖于pageTracker对象在其他地方初始化。
你的第二个问题是,你在GA浏览器中查看这些点击吗?使用GA,你可以用两种不同的方式跟踪事件 - 使用_trackEvent()或_trackPageView()。
通过第二种方式跟踪出站链接(正如您在下面所做的那样),“点击”不会显示为事件,而是显示为网页浏览('虚拟网页浏览'是GA Consultants等人最常使用的术语,用于指示作为页面视图跟踪的内容但实际上并非如此。因此,您会看到报告的这些点击次数以及其他网页浏览量 - 即 内容 (以及流量和访问者,左侧面板中的三个主要标题)。如何判断该报告中的哪些行引用了这些出站点击? 页面字段的值(通常是最左侧的列标题)将是出站链接的URL。当您知道这一点后,您当然可以创建高级细分或自定义报告,甚至是新的个人资料,以便单独报告这些内容。< / p>
<script type="text/javascript">
function fnx(that) {
try {
var pageTracker=_gat._getTracker("UA-YOURACCOUNTHERE-PROFILE");
pageTracker._trackPageview("http://www.outbound_link.com");
setTimeout('document.location = "' + that.href + '"', 100)
}catch(err){}
}
</script>
<a href="www.outbound_link.com" onclick='fnx(this);return false;'>"Take Me Here"</a>
答案 1 :(得分:2)
这是我用于跟踪所有出站链接的100%工作解决方案(我喜欢jQuery,因此您需要将jquery.js脚本添加到页面中)。
function isLinkExternal(link) {
var r = new RegExp('^https?://(?:www.)?' + location.host.replace(/^www./, ''));
return !r.test(link);
}
$(document).ready(function() {
$(document).bind('click', function(e) {
var target = (window.event) ? e.srcElement : e.target;
while (target) {
if (target.href) break;
target = target.parentNode;
}
if (!target || !isLinkExternal(target.href)) return true;
var link = target.href;
link = '/outgoing/' + link.replace(/:\/\//, '/');
_gaq.push(['_trackPageview', link]);
});
});
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-YOURCODE-1']);
_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);
})();
此脚本为GA提供所有出站链接:/outgoing/http/www.example.com。 为获得更好的体验,您需要为此链接创建高级细分。使用参数创建它:“Page”“Starts with”“/ outgoing / http”。 就这样!现在您已获得出站链接的完整统计信息。
答案 2 :(得分:0)
该解决方案将允许您单击带有target='_blank'
的链接,此外,还将允许您在任何链接上设置数据属性,并使这些属性自动发送到GA。
$('a').bind('click', function( event ) {
var target = $(this).attr('href');
if ($(this).attr("data-event-category") !== undefined && $(this).attr("data-event-label") !== undefined) {
gtag('event', 'click', {
'event_category': $(this).attr("data-event-category"),
'event_label': $(this).attr("data-event-label"),
'event_callback': function(){handle_redirect($(this), event);}
});
} else {
handle_redirect($(this), event);
}
});
function handle_redirect(element, event) {
var target = element.attr('href');
var regExp = new RegExp("//" + location.host + "($|/)");
var isLocal = (target.substring(0,4) === "http") ? regExp.test(target) : true;
var url = target;
if(isLocal===true) {
return;
} else {
event.preventDefault();
gtag('event', 'click', {
'event_category': 'outbound',
'event_label': window.location.href + ' --> ' + url,
'transport_type': 'beacon',
'event_callback': function(){element.unbind( "click"); element[0].click();}
});
}
}