Todas los pluggins de ese tipo son susceptibles de ejecutar un callback javascript cuando son invocados. Eso significa que podés trackear lo que necesites usando AJAX.
Facebook usa algo como esto:
Código PHP:
//{{URL}}=url del like
<div id="fb-root"></div><fb:like href="{{URL}}" width="120" font="lucida grande" colorscheme="light" data-send="false" data-layout="box_count" style="width:120px; height:60px; float:left;position:relative; left:28px;"></fb:like>
<script>
function getScript(url,callback){
var js = document.createElement('script');
js.src = url;
if(callback){
if(js.addEventListener){
js.addEventListener('load',callback,false);
}else{
js.onreadystatechange=function(){
if(js.readyState=='complete' || js.readyState=='loaded'){
callback();
}
}
}
}
var html = document.documentElement;
html.insertBefore(js, html.lastChild);
}
getScript('http://connect.facebook.net/en_US/all.js#xfbml=1',
function(){
FB.Event.subscribe('edge.create', function(href, widget) {
callback();
});
}
);
function callback(){//lo que quieras
}
</script>
Plusone, algo así:
Código PHP:
//{{URL}}=url del +1
<div class="g-plusone" data-callback="handlePlusone" data-href="{{URL}}" data-size="tall"></div>
<script>
function getScript(url,callback){
var js = document.createElement('script');
js.src = url;
if(callback){
if(js.addEventListener){
js.addEventListener('load',callback,false);
}else{
js.onreadystatechange=function(){
if(js.readyState=='complete' || js.readyState=='loaded'){
callback();
}
}
}
}
var html = document.documentElement;
html.insertBefore(js, html.lastChild);
}
getScript('https://apis.google.com/js/plusone.js');
function handlePlusone(){//lo que quieras
}
</script>