Benvenuti da Idea R | Vicenza - Romano di Lombardia (Bergamo)
Passa alla visualizzazione per i dispositivi mobili

      Idea R - Pianifica la tua comunicazione visiva a 360°

Blog

Prendere uno smanettone del software degli anni 80, aggiungere un graphic designer di nuova generazione e allungare il tutto con uno studioso di strategie di marketing. Agitare energicamente e si ottiene il blog Idea R.

Change language... English

Tracking Facebook likes with Google Analytics, the real solution!

Pubblicato il 10/28/2012
Ultimo aggiornamento 3/28/2013
Categorie: Web Analytics
Tracking Facebook likes with Google Analytics, the real solution!

Questo articolo è disponibile anche in italiano.

Social interaction of your customers are very important to analyze their impact on your conversions.
Reading the official Google Analytics developers guide, the solution seems to be the usage of the following code:

FB.Event.subscribe('edge.create', function(targetUrl)
{
    _gaq.push(['_trackSocial', 'facebook', 'like', targetUrl]);
});

Unfortunately this code doesn't work if you are correctly loading the Facebook SDK asynchronously, that's because may be the the SDK is still loading when you subscribe to the event.

<div id="fb-root"></div>
<script>
    window.fbAsyncInit = function()
    {
        // init the FB JS SDK
        FB.init(
        {
            appId : 'YOUR_APP_ID',
            channelUrl : '//WWW.YOUR_DOMAIN.COM',
            status : true,
            cookie : true,
            xfbml : true
        });

        // Add event subscripion here
        FB.Event.subscribe('edge.create', function (targetUrl)
        {
            _gaq.push(['_trackSocial','facebook', 'like', targetUrl]);
        });
    };

    // Load the SDK's source Asynchronously
    (function(d)
    {
        var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
        if (d.getElementById(id)) {return;}
        js = d.createElement('script'); js.id = id; js.async = true;
        js.src = "//connect.facebook.net/en_US/all.js";
        ref.parentNode.insertBefore(js, ref);
    }(document));
</script>

If you want to add the event handler programmatically, the correct solution is to use the window.fbAsyncInit event to append the like event subscription to the Facebook SDK initialization.
In the following code I used jQuery to append the event subscription after DOM initialization.

$ (function ()
{
    var exsistingFbAsyncInit = window.fbAsyncInit;
    if (exsistingFbAsyncInit == null)
        window.fbAsyncInit = function ()
        {
            FB.Event.subscribe('edge.create', function (targetUrl)
            {
                _gaq.push(['_trackSocial','facebook', 'like', targetUrl]);
            });
        };
    else
        window.fbAsyncInit = function ()
        {
            exsistingFbAsyncInit();
            FB.Event.subscribe('edge.create', function (targetUrl)
            {
                _gaq.push(['_trackSocial','facebook', 'like', targetUrl]);
            });
        };
})
;

By the way if you are using Infrared CMS, that's a problem you have not to worry about.

Sei il lettore numero 13,453.

Commenti

Articolo precedente

Articolo precedente

Come aumentare velocemente i MI PIACE dei social media al tuo sito

Articolo successivo

Il blog è il miglior canale persuasivo

Articolo successivo

Torna all'inizio