GA中的社交分享跟踪

时间:2015-11-04 05:52:36

标签: google-analytics

这是原始 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>

1 个答案:

答案 0 :(得分:2)

您在Facebook上的“分享”链接会导致页面导航(而不是打开新窗口/标签页)。当此导航发生时,大多数主流浏览器取消当前页面的所有待处理HTTP请求,然后导航到新页面(fb.com)

在这种情况下,其中一个待处理的HTTP请求将是GA事件跟踪调用,因此GA服务器永远不会完成,也永远不会被GA服务器接收。

您需要使用的是GA点击回调功能,这实际上取消了原生导航(到FB),发送跟踪调用并等待足够的时间来完成,然后将JavaScript重定向到下一页。 / p>

您应该read the google docs here

在您的情况下,您的事件跟踪功能应与此类似:

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;
});

所以我做了以下更改:

  1. 将hitCallback属性添加到事件跟踪调用中。这是一个匿名函数,在GA服务器将响应发送到事件跟踪后调用。
  2. 添加了一个'return false'语句,该语句取消了本机功能,然后依赖hitCallback函数进行导航。