这是原始 FB / Twitter按钮的主题。但是,如果我拥有自己的"分享fb"按钮?像这样:
<div id="fb_share"><a target="_blank" href="http://www.facebook.com/share.php?u=blah-blah">Share on FB</a></div>
所以我提出了以下解决方案:
var FBbtn = document.getElementById("fb_share");
FBbtn.addEventListener('click', function() {
ga('send', 'social', {
'socialNetwork': 'facebook',
'socialAction': 'share',
'socialTarget': window.location
});
//console.log('tracked');
});
这是在Google Analytics代码之后放置的。 尽管事实上它不会捕获FB回调 - 它应该可以解决这个问题,但由于某些原因我仍然无法在Analytics中看到任何结果,所以问题是:解决方案实际上会有效吗?实际上它甚至可能是这样我相信:
<a href="http://www.facebook.com/share.php?u=blah-blah" onClick="ga('send', 'social', 'Facebook','Share',window.location.href);");">FB</a>
答案 0 :(得分:2)
您在Facebook上的“分享”链接会导致页面导航(而不是打开新窗口/标签页)。当此导航发生时,大多数主流浏览器取消当前页面的所有待处理HTTP请求,然后导航到新页面(fb.com)
在这种情况下,其中一个待处理的HTTP请求将是GA事件跟踪调用,因此GA服务器永远不会完成,也永远不会被GA服务器接收。
您需要使用的是GA点击回调功能,这实际上取消了原生导航(到FB),发送跟踪调用并等待足够的时间来完成,然后将JavaScript重定向到下一页。 / p>
在您的情况下,您的事件跟踪功能应与此类似:
var FBbtn = document.getElementById("fb_share");
FBbtn.addEventListener('click', function() {
ga('send', 'social', {
'socialNetwork': 'facebook',
'socialAction': 'share',
'socialTarget': window.location,
'hitCallback': function(){
window.location = this.href;
}
});
//console.log('tracked');
return false;
});
所以我做了以下更改: