Как отслеживать кнопку "Поделиться в Facebook" в Google Analytics (analytics.js)

Я пытаюсь отслеживать все социальные взаимодействия на моей веб-странице с помощью Google Analytics, чтобы я мог просматривать их в разделе Приобретение -> Социальные -> плагины.

В настоящее время я могу отслеживать кнопки "Нравится" и отправить, но кнопка "Поделиться" не отслеживается. Я не смог найти конкретные коды для кнопки "Поделиться". Упоминается, что большинство кодов в сети предназначены как для обмена, так и для отправки, но акции не отслеживаются. Я предоставил код ниже

        <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> 

Я видел параметры метода FB.event.subscribe по этой ссылке https://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/v2.4 но нет конкретного параметра для общего ресурса. Что я делаю неправильно? Или нет возможности отслеживать кнопку "Поделиться" в Facebook.

2 ответа

Насколько я знаю, нет возможности подписаться на события кнопки " Поделиться", но реализация пользовательской кнопки с помощью диалогового окна " Поделиться" обеспечивает обратный вызов по завершении. Вы можете отправить событие в Google Analytics в этом обратном вызове.

Вот пример:

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

Вы также можете проверить долю, сработавшую в ответе, проверив response.error_message, хотя примечание из документов:

Обратите внимание, что response.error_message появится только в том случае, если кто-то, использующий ваше приложение, аутентифицировал ваше приложение через Facebook Login.

Согласно документации ( https://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/v2.7), все еще нет доступных событий с помощью кнопки "Поделиться"...

Другие вопросы по тегам