web-dev-qa-db-fra.com

Suivi des conversions de clics avec Google Analytics

Puis-je quand même utiliser Google Analytics pour suivre les conversions de clics sur un lien?

Par exemple, si j'ai un lien vers www.a.com, est-il possible pour Google de suivre le nombre d'affichages de ce lien sur ma page, puis de savoir combien de fois il a été réellement cliqué? Le problème est Je ne montre pas le lien vers www.a.com à chaque chargement de la page. J'utilise une fonction aléatoire (côté serveur) pour générer un lien différent à chaque fois. J'aimerais que Google Analytics me fournisse la conversion de clic pour chacun des liens que je choisis de montrer à l'utilisateur.

Merci,

Joel

3
Joel

Oui, vous pouvez suivre à peu près n'importe quoi en utilisant Google Analytics ' Event Tracking - voici comment vous pouvez le faire pour les deux cas de (a) affichage d'un lien et (b) d'un utilisateur qui clique sur le lien:

(a) piste montrant le lien

<script type="text/javascript">
    _gaq.Push(['_trackEvent', 'Links', 'Shown', 'http://www.a.com/']);
</script>

(b) Suivre l'utilisateur en cliquant sur le lien

<a href="http://www.a.com/" onclick="javascript:_gaq.Push(['_trackEvent', 'Links', 'Clicked', 'http://www.a.com/']); return true;">...</a>

Bien sûr, étant donné que vous ne voulez probablement pas vouloir coder en dur pour ces deux événements Javascript, vous pouvez utiliser une fonction Javascript pratique pour effectuer tout le travail à votre place lorsque les liens avoir une classe spécifique - j'aime utiliser jQuery , alors voici un exemple rapide:

<script type="text/javascript">
/*
  ... assuming jQuery has been loaded and you're using the
      standard Google Analytics Asynchronous tracking snippet

      URL: http://code.google.com/apis/analytics/docs/tracking/asyncTracking.html
*/
$(document).ready(function() {
    if ( $('a.tracked').length ) {
        $('a.tracked').each(function() {
            _gaq.Push(['_trackEvent', 'Links', 'Shown', $(this).attr('href')]);
            $(this).bind( 'click', function() {
                _gaq.Push(['_trackEvent', 'Links', 'Clicked', $(this).attr('href')]);
                return true;
            });
        });
    }
});
</script>

... et chaque lien avec class="tracked" devrait être suivi en conséquence.


Mise à jour: Nouveau code, mais vous pouvez même spécifier le groupe auquel un lien appartient et suivre le groupe à la place:

<script type="text/javascript">
    $(document).ready(function() {
        if ( $('a.tracked').length ) {
            $('a.tracked').each(function() {
                var groupRegExp =/group([a-zA-Z])/i;
                var group = groupRegExp.exec( $(this).attr('class') );
                if (
                    ( !group ) ||
                    ( !group.length )
                ) {
                    var group = "groupUnknown";
                } else {
                    var group = group[0];
                }
                _gaq.Push(['_trackEvent', 'Links', 'Shown', group]);
                $(this).bind( 'click', function() {
                    _gaq.Push(['_trackEvent', 'Links', 'Clicked', group]);
                    return true;
                });
            });
        }
    });
</script>

... qui devrait fonctionner pour class="tracked groupA", class="groupA tracked", etc.


Mise à jour x2:

... et pour tenir compte du comportement évoqué par yc01, une légère modification de la fonction liée aux balises d'ancrage suivies:

                $(this).bind( 'click', function() {
                    _gaq.Push(['_trackEvent', 'Links', 'Clicked', group]);
                    setTimeout('document.location = "' + $(this).attr('href') + '"', 100)
                    return false;
                });
4
danlefree