Tout savoir sur WordPress

Ajouter le code Google Analytics sur votre site WordPress

Google Analytics est un outil indispensable pour connaître l’audience d’un site Internet. Découvrez comment l’insérer de façon simple sur votre site WordPress.

J’utilise fréquemment une fonction qui permet d’insérer correctement le script de Google Analytics et de le changer facilement. Cela s’avère pratique lorsque l’on crée un thème pour le diffuser ou même pour ses propres besoins. Pour cela, rendez-vous dans votre fichier functions.php où il faut d’abord définir l’UA de Google Analytics qui va être utilisé dans la fonction :

define('GOO_ANALYTICS_ID',  'UA-xxxxxxxx-x'); // remplacer les x par votre UA

Ensuite la fonction devra ressembler à ceci :

add_action('wp_head', 'gkp_insert_goo_analytics');
function gkp_insert_goo_analytics() {

    if ( GOO_ANALYTICS_ID !== '' && defined('GOO_ANALYTICS_ID')  ) {

        echo "<script>var _gaq=_gaq||[];_gaq.push(['_setAccount','" . GOO_ANALYTICS_ID . "']);_gaq.push(['_trackPageview']);(function(){var ga=document.createElement('script');ga.type='text/javascript';ga.async=true;ga.src=('https:'==document.location.protocol?'https://ssl':'http://www')+'.google-analytics.com/ga.js';var s=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(ga,s)})();</script>";

    }
}

On part du principe que vous avez la fonction wp_head() au bon endroit dans le fichier header.php.

Assez pratique, qu’en pensez-vous ? On pourrait aller plus loin en créant une page d’options personnalisée dans le panneau d’administration où il suffirait de renseigner l’UA sans avoir à éditer les fichiers, certains thèmes le font.

Cet article a été publié il y a 2230 jours - Il n'est peut être plus à jour !

Article écrit par jmlapam

26 Commentaires

  1. wp_head ? Ne vaut mieux-t-il pas insérer les scripts en footer avec wp_footer ?

  2. voir avec la modération. J’ai proposé l’article avec wp_footer(). Il y a sûrement une raison pour ce changement. Perso, je le mets toujours dans le footer.

  3. Ah tu vois… moi je me réferais à cela sûrement à tort : « Une fois que vous avez identifié l’extrait de code, copiez et collez-le au bas de votre contenu, immédiatement avant la balise « 

  4. C’est un script asynchrone. C’est pour ça qu’on le met dans le head. Il ne fera pas patienter le chargement de la page, et en plus il permettra de tracker les évènement avant même que la page en soit chargée.

    Très bonne astuce :-)

  5. Merci pour ce tuto, aussi claire qu’efficace !
    J’ai correctement inclus le code dans ma page function.php et lorsque j’affiche le code source des pages de mon blog, je constate que l’intégralité du script de google Analytics est présent. Cependant, lorsque je me connecte au pannel d’administration de Google Analytics, ce dernier m’indique  » status : tracking Not Installed ». Faut il un certain temps avant que ce soit pris en compte ?

  6. bonjour, peut-on mettre le code de google analytics directement dans le footer ou le header sans utiliser la fonction ? ou c’est gênant ?
    A la base, je pensais le mettre dans footer.php directement.

  7. @Romain : L’utilisation de la fonction est totalement facultative. En effet, on peut directement ajouter le script de GA directement dans le code. Par contre, je vous conseille de le mettre dans le footer et non pas dans le header.

  8. @romain: cela fait partie des bonnes pratiques de ne pas rajouter du code directement dans le code du header ou du footer. C’est pour cela qu’il y a les fonctions wp_head() et wp_footer() dans la plupart des thèmes.

    @jonathan: je comprends pas c’est le footer maintenant?

  9. Oula oups, il s’agit bien du header. J’ai pensé « js » au moment d’écrire.

    Par contre, je ne suis pas forcément d’accord avec toi sur le fait que la bonne pratique soit de ne pas ajouter le script directement dans le fichier au lieu de passer par le fichier functions.php.

    Perso, à part pour l’administration, je mets tous les appels aux scripts js directement les fichier footer.php car j’estime que le fichier functions.php n’est pas leur place.

  10. C’est effectivement mieux d’enqueue car les plugins auront la main sur les fichiers et pourront minify, dequeue etc
    Maintenant, si tu sais que tu ne vas pas avoir besoin de ça, libre à toi de mettre en dur ;)

  11. @jonathan: je comprends ce que tu veux dire mais je fais cela pour la souplesse. Je créé systématiquement un fichier à part avec mes fonctions persos. Comme cela, s’il me prends l’envie de changer de thème, cela se fera rapidos.

  12. merci pour les réponses, j’ai parlé de footer car j’ai déjà constaté que sur certain blog, il y avait un ralentissement des pages qui faisait appel à une fonction en provenance de google.

  13. Si je peux me permettre, je crois qu’il y a une (minuscule) erreur de syntaxe :

    Tout à la fin il est écrit :
    s.parentNode.insertBefore(ga,s)})(); »;

    N’est-ce pas plutôt :
    s.parentNode.insertBefore(ga,s);})(); »;

    En tout cas un grand merci =)

  14. désolé mais je ne suis pas codeur, le mot « constante » ne me parle pas, j’ai compris que c’était pour le fichier functions.php de mon thème, mais juste il faut les 2 que vous présentez ou un seul ?
    La constante des fois ce n’est pas define ?

    Pour mon petit cerveau, cela aurait été plus simple si à la fin de l’article après avoir détaillé ( il me semble ) vous indiquiez simplement, code à mettre dans functions.php, merci

  15. je l’ai dit petit cerveau, pour moi, je comprends voilà le code où il faut mettre UA-xxx-x, puis voilà le code pour aller dans functions.php en lisant « fonction devra ressembler à ceci »
    Et envoyant ça GOO_ANALYTICS_ID !==  » && defined(‘GOO_ANALYTICS_ID’
    je me suis demandé si ce n’était pas le 1er code présenté modifié pour aller dans functions.php.
    J’ai mis les 2 codes pourtant Google Analytics me dit le suivi non iinstallé

    • Il faut modifier UA-xxx-x, par votre UA à vous.

      Et oui, les 2 codes sont à mettre dans le fichier functions.php les uns en dessous des autres.

  16. Bonjour,
    c’est ce que j’ai fini par faire, mais je trouve qu’en fini d’article, voir les 2 codes ensemble, empêcherait d’avoir un doute là dessus.
    C’est bon, merci de votre patiente.

  17. Salut,

    Si je comprends le 1er code avec UA-xxx-x doit être mis à la ligne 4 du 2ème code, c’est ça ?
    Dans le 2-me defined est différent, pas de virgule et de  »
    defined(‘GOO_ANALYTICS_ID’)

851e0d3e20faa17f86fed3d40b7395d4CC