如何在Google Analytics中跟踪Facebook Share按钮(analytics.js)

时间:2015-09-09 13:45:21

标签: javascript facebook google-analytics facebook-social-plugins analytics.js

我正在尝试使用谷歌分析跟踪我的网页中的所有社交互动,以便我可以在收购 - >下查看它们。社交 - >插件。

目前我可以跟踪facebook喜欢和发送按钮,但不会跟踪分享按钮。我找不到任何特定的Share按钮代码。提到Web中的大多数代码都是针对共享/发送的,但是没有跟踪共享。我提供了以下代码

        <html>
    <head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    <script>

    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r; i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new    
    Date();a=s.createElement(o),
    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g; 
    m.parentNode.insertBefore(a,m)
    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

    ga('create', 'UA-xxxxxxxx', 'auto');
    ga('send', 'pageview');

</script>
</head>
<body>
<div id="fb-root"></div>
      <script>
      $(document).ready(function(){
    alert('doc loaded');
});

      window.fbAsyncInit = function() {
        FB.init({
          appId      : 'xxxxxxxxxxxxxxxxxx',
          status     : true,
          xfbml      : true
        });
                //Logged In Users
        FB.getLoginStatus(function(response) {
            if (response.status !== "unknown") { 
                ga('set', 'dimension1', 'Logged In');
            }
        });

        //Facebook Likes 
        FB.Event.subscribe('edge.create', function(href, widget) {
            var currentPage = $(document).attr('title');
            ga('send', {
                'hitType': 'social',
                'socialNetwork': 'Facebook',
                'socialAction': 'Like',
                'socialTarget': href,
                'page': currentPage,
                'hitCallback': function() {
                 alert('like done sending data');
  }

            });
        });

        //Facebook Unlikes
        FB.Event.subscribe('edge.remove', function(href, widget) {
            var currentPage = $(document).attr('title');
            ga('send', {
                'hitType': 'social',
                'socialNetwork': 'Facebook',
                'socialAction': 'Unlike',
                'socialTarget': href,
                'page': currentPage,
                'hitCallback': function() {
    alert('unlike done sending data');
  }

            });
        });

        //Facebook Send/Share
        FB.Event.subscribe('message.send', function(href, widget) {


            var currentPage = $(document).attr('title');
            ga('send', {
                'hitType': 'social',
                'socialNetwork': 'Facebook',
                'socialAction': 'Send',
                'socialTarget': href,
                'page': currentPage,
                'hitCallback': function() {
    alert('send done sending data');
  }

            });
        });

        //Facebook Comments
        FB.Event.subscribe('comment.create', function(href, widget) {
            var currentPage = $(document).attr('title');
            ga('send', {
                'hitType': 'social',
                'socialNetwork': 'Facebook',
                'socialAction': 'Comment',
                'socialTarget': href,
                'page': currentPage,
                'hitCallback': function() {
    alert('comment done sending data');
  }

            });
        });
      };
// Load Facebook SDK
    (function(d, s, id) {
     var js, fjs = d.getElementsByTagName(s)[0];
     if (d.getElementById(id)) return;
     js = d.createElement(s); js.id = id;
      js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.4&  appId=xxxxxxxxxxxx";
      fjs.parentNode.insertBefore(js, fjs);
      }(document, 'script', 'facebook-jssdk'));
      </script>


      <p><a href="www.example.in" >Some Text </a></p>

      <script src="//connect.facebook.net/en_US/all.js#xfbml=1"></script>
      <fb:like></fb:like>

     <div class="fb-share-button" data-href="https://example.com"  data-layout="button_count"></div>

     <div class="fb-send" data-href="http://example.com"></div>



      </body>
      </html> 

我在此链接https://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/v2.4中看到了FB.event.subscribe方法参数,但没有特定的共享参数。 我究竟做错了什么?或者无法跟踪Facebook中的分享按钮。

2 个答案:

答案 0 :(得分:1)

据我所知,没有办法订阅分享按钮事件,但实现Share Dialog的自定义按钮会在完成时提供回调。您可以在此回调中将事件推送到Google Analytics。

以下是一个例子:

FB.ui({
    method: 'share',
    href: 'https://developers.facebook.com/docs/',
}, function(response){
     //Google Analytics send here
});

您还可以通过检查response.error_message来验证回复中的共享,尽管文档中有一条说明:

  

请注意,只有当使用您的应用的用户通过Facebook登录验证您的应用时,才会显示response.error_message。

答案 1 :(得分:0)

根据文档(https://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/v2.7),共享按钮仍然没有可用的事件......