Как отслеживать кнопку "Поделиться в 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), все еще нет доступных событий с помощью кнопки "Поделиться"...