Google Analytics : traquer les clics sortants avec jQuery

Le script ci-dessous permet de traquer les clics vers des liens externe à votre site internet.

En complément, je vous laisse le code permettant de traquer les ouvertures d’image en PNG ainsi que les téléchargements de fichier zip.

jQuery('a').click(function(){
    var linktype = '';
    // Get click href attribut
    var hreflink = jQuery(this).attr('href');
    var myClass = jQuery(this).attr("class");
    
    // Debug
    console.log('Link clicked : ' + hreflink);
    console.log('Class clicked : ' + myClass);

    linktype = hrefType(hreflink);

    // Debug
    console.log('Link type : ' + linktype);

    if( typeof gtag == "undefined" ){
        // Debug
        console.log('GA not loaded');
    }else{
        if(linktype == 'external'){
            gtag ('event', 'clic', {
                'event_category': 'Outlink',
                'event_label': hreflink,
                'transport_type': 'beacon'
              });
        }else if(linktype == 'internal_image'){
            //Debug
            console.log('Click on image');
            gtag ('event', 'clic', {
                'event_category': 'Images',
                'event_label': hreflink,
                'transport_type': 'beacon'
            });
        }else if(linktype == 'internal_download'){
            //Debug
            console.log('Click on file');
            gtag ('event', 'Download', {
                'event_category': hreflink.substr(hreflink.length - 3),
                'event_label': hreflink,
                'transport_type': 'beacon'
            });
        }
    }    
});

function hrefType(link){
    var url = link;
    var sourceString = url.replace('http://','').replace('https://','').replace('www.','').split(/[/?#]/)[0];

    if(sourceString.charAt(0) == ''){
        return "Anchor";
    }

    if(sourceString !== window.location.host){
        return 'external';
    }

    if(sourceString == window.location.host){

        if(link.substr(link.length - 3) == 'png'){
            return 'internal_image';
        }else if(link.substr(link.length - 3) == 'zip'){
            return 'internal_download'
        }

        return 'internal';
    }

    return 'unknow';
}

Romain Drouche
Architecte Système | MCSE: Core Infrastructure
Expert en infrastructures IT avec plus de 15 ans d’expérience sur le terrain. Actuellement Chef de projet Systèmes et Réseaux et Référent SSI (Sécurité des Systèmes d’Information), je mets mon expertise au service de la fiabilité et de la sécurité des environnements technologiques.

Laisser un commentaire