Utilisez le suivi côté serveur sur Matomo pour améliorer vos analyses
Avec Matomo , nous pouvons activer le suivi analytique côté serveur et obtenir un suivi plus précis et amélioré du trafic de votre site web.
Table des matières
Suivi côté serveur vs suivi côté client : en bref
Pour l'expliquer en quelques mots, le suivi côté client fonctionne sur le navigateur de l'utilisateur et est généralement réalisé à l'aide de Javascript. L'avantage est qu'il est assez facile de collecter des données et qu'il est également léger sur le serveur.
D'autre part, le suivi côté serveur n'utilise pas Javascript et est exécuté directement par le serveur lui-même. Nous pouvons utiliser PHP pour analyser les requêtes que nous recevons de nos utilisateurs.
Il existe également des logiciels d'analyse de logs comme Awstats ou GoAccess, qui analysent les fichiers journaux du serveur pour déterminer les vues des utilisateurs sur nos pages web.
Le principal avantage du suivi côté serveur et de l'analyse des journaux est que nous pouvons même surveiller les utilisateurs qui utilisent AdBlock ou des systèmes similaires, qui empêchent le code de suivi Javascript de fonctionner correctement.
Comment configurer le suivi côté serveur avec Matomo
En fait, l'utilisation du suivi analytique côté serveur avec Matomo est assez simple.
Nous utiliserons la bibliothèque PHP comme exemple, car c'est l'un des langages les plus utilisés pour créer des sites web.
- Téléchargez MatomoTracker.php et PiwikTracker.php depuis Github ou toute autre bibliothèque de suivi côté serveur.
- Téléchargez les fichiers MatomoTracker.php et PiwikTracker.php sur votre serveur web, dans le dossier /public_html/matomo/, en utilisant Filezilla ou tout autre logiciel FTP.
- Dans notre application web, nous ajoutons le code PHP suivant sur toutes nos pages, ou dans le template, en fonction du type d'outil que nous utilisons
# Fichier template.php ou similaire, assurez-vous que ce code est chargé dans chaque page $matomoSiteId = 1 ; $matomoUrl = '{url-to-matomo-platform}' ; $matomoToken = '{inser-auth-token-here}' ; $matomoPageTitle = '' ; require_once '{path-to-file}/MatomoTracker.php' ; try { $matomoTracker = new MatomoTracker($matomoSiteId, $matomoUrl) ; $matomoTracker->setRequestTimeout(2) ; $matomoTracker->setTokenAuth($matomoToken) ; } catch (Exception $e) { } # File page.php, pour personnaliser le titre de la page pour Matomo if (!empty($matomoTracker)) { $matomoTracker->doTrackPageView($matomoPageTitle) ; }
Voyons quelques détails supplémentaires :
- $matomoSiteId est l'identifiant du site web configuré sur Matomo, vous pouvez le trouver dans les paramètres en allant dans Paramètres > Sites web > Gérer
- $matomoUrl est l'URL publique utilisée par Matomo, par exemple https://matomo.yourwebsite.com
- $matomoToken est un code aléatoire unique qui doit être configuré (voir le paragraphe Configurer le jeton d'authentification)
- $matomoPageTitle est le titre de la page à envoyer à Matomo, si vous utilisez un CMS ou un Framework vous devrez trouver un moyen de configurer cette variable correctement, alors que si vous utilisez des fichiers PHP uniques pour chaque page vous pouvez l'ajouter dans chaque fichier.
- require_once chargera le fichier MatomoTracker.php, remplacez {path-to-file} par le chemin réel pour obtenir MatomoTracker.php, un exemple pourrait être /var/www/html/website.com/vendor/matomo/MatomoTracker.php
- $matomoTracker contiendra la classe MatomoTracker avec ses propres propriétés et méthodes
- setRequestTimeout est utilisé pour donner un temps maximum pour envoyer une requête à notre Matomo : sinon, si votre serveur Matomo ne fonctionne pas, la page sera fortement ralentie
- setTokenAuth définit le jeton d'autorisation pour Matomo
- doTrackPageView est la fonction qui envoie l'evento PageView à Matomo, elle fonctionne de la même manière que dans le code Javascript. Il est obligatoire de donner à cette fonction une chaîne de caractères à utiliser comme titre de page, qui sera ensuite utilisée par Matomo dans le rapport des visites.
- le bloc try/catch et le if à la fin sont utiles pour éviter de déclencher des erreurs fatales de PHP au cas où notre istance Matomo ne répondrait pas.
Configurer le jeton d'authentification
Pour configurer le jeton d'authentification en PHP, allez dans les paramètres de Matomo dans le menu Paramètres > Personnel > Sécurité et en bas vous trouverez les jetons d'authentification, cliquez sur Créer un nouveau jeton.
Vous devrez saisir à nouveau votre mot de passe administrateur , puis il vous sera demandé de donner une description et de générer le jeton. Une chaîne aléatoire apparaîtra, et vous recevrez peut-être une notification de sécurité par email.
Exemple de jeton: 2a96a7df4c6f09272bf445d1c753d4a8 (chaque jeton est unique)
Après avoir inséré le jeton dans le code PHP , nous pouvons tester que le suivi fonctionne comme prévu, en affichant le site web public et en vérifiant que la session est enregistrée par Matomo.
Puis-je utiliser à la fois Javascript et le suivi côté serveur ?
Oui, vous devrez supprimer ou commenter la ligne Javascript qui envoie l'événement PageView à Matomo, sinon vous trouverez des vues doublées. J'ai testé cette possibilité et il peut vraiment arriver d'avoir des visites dupliquées si vous utilisez le suivi des pages vues à la fois avec Javascript et PHP.
Exemple de code :
var _paq = window._paq = window._paq || [] ; /* les méthodes de suivi comme "setCustomDimension" doivent être appelées avant "trackPageView" */ _paq.push(['enableHeartBeatTimer', 15]) ; // La ligne suivante a été supprimée pour éviter les vues dupliquées // _paq.push(['trackPageView']) ; _paq.push(['enableLinkTracking']) ; (function() { var u = "https://matomo.yourwebsite.com/" ; _paq.push(['setTrackerUrl', u + 'matomo.php']) ; _paq.push(['setSiteId', '1']) ; var d = document, g = d.createElement('script'), s = d.getElementsByTagName('script')[0] ; g.type = 'text/javascript' ; g.async = true ; g.src = u + 'matomo.js' ; s.parentNode.insertBefore(g, s) ; })() ;
Vous verrez que j'ai également utilisé enableHeartBeatTimer, c'est une fonction qui permet de suivre plus précisément le temps passé par un utilisateur sur la page, en envoyant une requête ping à Matomo toutes les N secondes (minimum 15). Consultez également la documentation Javascript de Matomo.
Vous pouvez également configurer le suivi des événements sur Matomo, par exemple lorsque vous souhaitez savoir quels liens sont cliqués par vos utilisateurs.
Veuillez noter que certains modes de suivi seront bloqués par la fonctionnalité Do Not Track de Firefox et d'autres navigateurs, ou par des outils de blocage des publicités.
AdBlocker et Do Not Track
La plupart des bloqueurs de publicité (AdBlock, uBlock et similaires) bloqueront le suivi initialisé par Matomo. Par exemple, le mot "matomo" peut être interdit, de sorte que toute ressource telle que matomo.js ou matomo.php ne sera pas chargée.
Parallèlement, le mode Do Not Track de Firefox bloquera certains types de traqueurs, si le navigateur de l'utilisateur l'utilise et si le serveur utilise l'en-tête relatif.
J'ai testé ces deux cas et ils peuvent être résolus avec le suivi côté serveur. Cependant, l'utilisation de Javascript pour suivre certaines actions ou événements sera de toute façon bloquée. Vous pourriez vouloir configurer le suivi de vos événements côté serveur, mais cela nécessitera plus de travail.
Vous pouvez créer vos liens à l'aide d'un fichier php unique appelé link.php , qui se chargera de rediriger l'utilisateur vers la bonne page. Avant de le faire, il peut envoyer un événement à Matomo en PHP. Le principal problème de cette approche est qu'elle rendra clairement plus difficile la gestion des liens et des ressources, et qu'elle nécessitera plus de saisie de votre part.
Préoccupations en matière de protection de la vie privée
Suivre ceux qui ne souhaitent pas être suivis est une mauvaise idée, mais nous ne devons pas nécessairement renoncer à surveiller nos opinions.
Nous devons certainement faire de notre mieux pour respecter la vie privée des utilisateurs. Si nous ne collectons que des données agrégées à des fins statistiques, il n'y aura pas de problème, mais si nous voulons effectuer du remarketing et du profilage, nous devrons demander le consentement explicite de l'utilisateur et n'activer le suivi qu'après l'avoir reçu.
À titre d'exemple, nous pourrions configurer une page PHP pour demander le consentement et installer un cookie technique s'il est donné.
Ensuite, nous vérifierons que le cookie a été défini et, dans ce cas, nous lancerons le suivi :
if (!empty($_COOKIE['matomoTrackingConsent'])) { # Fichier template.php ou similaire, assurez-vous que ce code est chargé dans chaque page $matomoSiteId = 1 ; $matomoUrl = 'https://matomo.yourwebsite.com' ; $matomoToken = '2a96a7df4c6f09272bf445d1c753d4a8 ' ; $matomoPageTitle = 'Titre de la page' ; require_once '/var/www/html/yourwebsite/vendor/matomo/MatomoTracker.php' ; try { $matomoTracker = new MatomoTracker($matomoSiteId, $matomoUrl) ; $matomoTracker->setRequestTimeout(2) ; $matomoTracker->setTokenAuth($matomoToken) ; } catch (Exception $e) { } # File page.php, pour personnaliser le titre de la page pour Matomo if (!empty($matomoTracker)) { $matomoTracker->doTrackPageView($matomoPageTitle) ; } } }
Bien sûr, en procédant de la sorte , nous risquons de perdre le premier accès, car nous ne pouvons pas activer le suivi avant que l'utilisateur n'ait donné son accord.
Conclusions
Maintenant votre Matomo Server Side Tracking est en place !
Si vous avez aimé cet article, suivez-moi sur Facebook et abonnez-vous à notre chaîne Youtube! Si vous avez besoin d'aide, écrivez-moi sur le chat ou par email !