Formation gratuite
Formation Matomo Analytics gratuite – 2026
Dans un contexte où la protection des données est devenue cruciale, Matomo s’impose comme l’alternative souveraine à Google Analytics. Solution open-source, auto-hébergeable et conforme au RGPD (et aux recommandations de la CNIL), Matomo permet aux entreprises de garder le contrôle total sur leurs données d’audience.
- Matomo est l’un des rares outils de mesure d’audience pouvant être utilisé sans consentement, sous conditions strictes de paramétrage, il bénéficie de cette fonctionnalité car il fait partie des solutions bénéficiant de cette exemption par la CNIL.
- Les données sont stockées en Europe ou sur vos propres serveurs, sans transfert vers les États-Unis (contrairement à Google Analytics 4 dont les données peuvent être stockées en Europe mais la main-mise des Etats-Unis reste présente sur celles-ci).
- Il est particulièrement adapté aux secteurs très sensibles (santé, collectivités, services publics, banques…) par sa capacité à être implémenté sur les serveurs de l’organisation (on-premise).
Le rôle de Matomo versus des solutions analytiques plus éprouvées
Dans un paysage dominé par les solutions propriétaires, Matomo se distingue par son approche open-source, sa capacité d’auto-hébergement, et sa conformité native au RGPD, sans dépendance aux États-Unis.
| Solution | Hébergement | RGPD compliant par défaut | Accès au code | Personnalisation avancée |
|---|---|---|---|---|
| Matomo | On-premise ou cloud EU | ✅ Oui (avec ou sans consentement) | ✅ Oui (open-source) | ✅ Totalement personnalisable |
| Piano Analytics | 100% cloud (hébergé dans l’UE) | ✅ Oui (avec ou sans consentement) | ❌ Non | ⚠️ Limitée aux options du produit |
| GA4 (Google Analytics) | Cloud Google (US) | ❌ Non, nécessite consentement obligatoire pour suivi utilisateurs | ❌ Non | ⚠️ Limité, dépendant de Google Ads |
Pourquoi Matomo est privilégié dans un contexte souverain ?
- Contrôle total sur les données (auto-hébergement possible)
- Aucune dépendance à un cloud américain
- Possibilité de fonctionner sans consentement, avec paramétrage adéquat
- Communauté active, documentation riche, plugins personnalisables
⚠️ Piano Analytics, bien qu’européen et moderne, ne peut être auto-hébergé. Il reste un bon choix pour les grands groupes avec une gouvernance Data forte, mais moins adapté aux exigences de souveraineté technique complète.
Bien connaître les limites de Matomo pour faire un choix éclairé : entre simplicité et frustration
Bien que Matomo soit une solution robuste et conforme, elle atteint rapidement ses limites dès que l’on cherche à aller plus loin que des analyses standards. Contrairement à Piano Analytics, qui propose une exploration multi-niveaux de la donnée (drill-down, métriques segmentées, rapports rétroactifs & boards complexes) ou à GA4, dont l’interface permet des croisements plus poussés via l’explorateur, Matomo reste limité à une structure de rapports assez rigide.
Voici les principales contraintes à connaître :
- Rapports peu flexibles : 3 dimensions maximum dans les rapports personnalisés, avec une rétroactivité limitée (voire inexistante en version cloud).
- Fonctionnalités avancées payantes ou instables : funnels, entonnoirs, heatmaps, custom reports sont parfois imprécis ou bogués selon les versions.
- Pas d’analyse comportementale poussée (comme l’analyse de cohorte avancée ou la modélisation de churn) intégrée nativement.
- Nombreux petits bugs d’interface : tris approximatifs, métriques mal nommées, segments instables sur certaines dimensions, problèmes d’échantillonnage masqué dès qu’on dépasse 10M de hits/mois.
- Infrastructure coûteuse si auto-hébergée à grande échelle : Matomo est lourd à scaler sans tuning serveur précis.
- Peu de connecteurs existants pour le relier à des outils de dataviz comme Tableau (seul un connecteur lookerstudio existe)
Matomo reste un excellent outil de mesure d’audience simple, souverain, éthique et utile pour de la statistique brute ou des objectifs métiers basiques. En revanche, pour des stratégies data-driven complexes, il doit être complété par un entrepôt de données (DWH = datawarehouse) ou un outil de visualisation externe (Looker Studio, Tableau, etc.). Pour ce dernier point, malheureusement les possibilités de connexion étant faibles, il sera préférables de taper directement dans sa base de données.
Fonctionnement technique de Matomo
2.1 Comment Matomo collecte les données
Matomo repose sur un script JavaScript intégré sur toutes les pages du site, exécuté à chaque chargement. Ce script envoie des requêtes à un serveur Matomo, où les données sont stockées en base.
Par défaut, Matomo suit :
- Les pages vues
- Le référent (source de trafic)
- Le navigateur et le système utilisé
- Les événements JavaScript déclenchés (si implémentés)
Chaque hit génère une requête HTTP vers matomo.php, contenant toutes les informations encodées en paramètres d’URL.
2.2 Sessions, visiteurs et cookies
Matomo distingue :
- Une session (ou “visite”) : période d’activité d’un utilisateur sur le site (30 minutes d’inactivité = nouvelle visite)
- Un visiteur unique : reconnu grâce à un cookie
pk_idcontenant un identifiant pseudo-anonyme
Le suivi multi-visite est possible grâce à ce cookie. Sans lui, Matomo reconnaît l’utilisateur sur une seule session, en s’appuyant uniquement sur l’IP et l’empreinte navigateur.
📌 Le mode “sans cookie” est donc compatible RGPD, mais limite fortement les possibilités de suivi longitudinal.
2.3 Suivi avancé via événements personnalisés
Pour aller au-delà des pages vues, il faut instrumenter des événements personnalisés (clics, téléchargements, interactions, etc.). Cela se fait via une ligne de code JS :
_paq.push(['trackEvent', 'Formulaire', 'Soumission', 'Contact']);
Ces événements ne sont pas suivis automatiquement : ils doivent être déclarés manuellement ou via un TMS comme Matomo Tag Manager (voir section suivante).
Ils permettent ensuite de :
- Créer des objectifs
- Construire des tunnels de conversion
- Segmenter les visiteurs
- Analyser les interactions clés (ex. vidéos, boutons CTA)
2.4 Suivi des campagnes : UTM vs MTM et tracking Google Ads
UTM : standard universel, compatible par défaut
Matomo détecte automatiquement les paramètres UTM utilisés pour vos campagnes marketing, tout comme Google Analytics :
utm_source=google&utm_medium=cpc&utm_campaign=soldes2025
Ces paramètres sont déjà reconnus par Matomo sans configuration supplémentaire. Ils peuvent aussi exister dans d’autres formes (mtm_, pk_, piwik_, etc.), toutes prises en charge par défaut :
| Variante reconnue | Exemple accepté |
|---|---|
mtm_campaign |
?mtm_campaign=campagne-printemps |
pk_campaign |
Ancienne version Matomo |
utm_campaign |
Compatible GA |
💡 Si vous utilisiez déjà les paramètres de campagne pour vos urls pour GA, vous n’avez rien à modifier dans vos URLs : Matomo récupérera les paramètres existants.
MTM : campagnes personnalisées via le TMS
Avec Matomo Tag Manager (MTM), vous pouvez définir vos propres noms de paramètres de campagne à reconnaître :
_paq.push(['setCampaignNameKey', 'my_campaign']);
_paq.push(['setCampaignKeywordKey', 'kw']);
Cela vous permet :
- D’utiliser des noms de paramètres internes (ex :
?src=email_mars) - De suivre des campagnes internes ou non conventionnelles
- De combiner avec des déclencheurs plus avancés (cookie, referrer, clic…)
📣 Suivi des campagnes Google Ads avec Matomo
Par défaut, les clics Google Ads apparaîtront comme trafic organique non défini dans Matomo si vous ne les balisez pas.
✅ Pour un suivi correct :
- Utilisez le Campaign URL Builder de Matomo (dans
Acquisition > Campaign URL Builder) - Balisez vos URLs avec les paramètres
mtm_campaign,mtm_kwd,mtm_source,mtm_medium, etc. - Intégrez ces paramètres via les tracking templates de Google Ads :
{lpurl}?mtm_campaign={campaignid}&mtm_kwd={keyword}&mtm_source=google&mtm_medium=cpc
💡 Attention à ne pas utiliser les utm dans les campagnes Google Ads si vous souhaitez laisser activer l’option de marquage automatique de Google Ads & que vous utilisez Google Analytics en parallèle cela couperait la synchronisation entre GA4 & Google Ads.
Conversion Ads sans tag Google (via export Matomo)
Avec l’option Advertising Conversion Export, vous pouvez renvoyer les données de conversion à Google Ads sans utiliser de tag tiers (pas de cookie externe) :
-
Matomo capte le
gclid(Google Click ID) dans l’URL -
Lorsqu’un objectif est atteint, Matomo stocke et associe ce gclid à la conversion
-
L’export peut se faire :
- Par CSV manuel
- Ou via une URL sécurisée synchronisée avec Google Ads
📌 Attention, solution non conforme RGPD et ePrivacy, compatible aussi avec Microsoft Ads & Yandex.
2.5 Le rôle clé du plan de marquage
Un plan de tracking (ou plan de marquage) est un document stratégique indispensable qui liste toutes les actions à suivre, les noms de catégories/événements, les règles de déclenchement, et les objectifs business associés.
Exemple d’extrait de plan :
| Action suivie | Catégorie | Action | Libellé (Label) | Objectif lié ? |
|---|---|---|---|---|
| Clic sur CTA “Devis gratuit” | CTA | Clic | Devis – Accueil | Oui |
| Lecture vidéo tutoriel | Vidéo | Lecture | Tutoriel – Page X | Non |
| Envoi formulaire de contact | Formulaire | Soumission | Contact – Footer | Oui |
⚠️ Sans plan clair, le suivi devient rapidement incohérent et inutilisable.
2.6 Un mot sur les limites structurelles
Matomo ne repose pas sur une base analytique OLAP comme certains outils modernes. Son moteur de calcul est relativement lent, en particulier en auto-hébergement. Les requêtes croisées entre plusieurs dimensions deviennent rapidement gourmandes, ce qui explique :
- Des restrictions sur les rapports personnalisés (3 dimensions max)
- Des lenteurs sur des volumes > 10M hits/mois
- Des performances très dépendantes de la qualité de l’infrastructure
💡 En cas de forte volumétrie, il est conseillé d’exporter les données via l’API ou les webhooks, puis de les retraiter dans un DWH ou outil BI.
2.7 Cookies utilisés par Matomo : quels traceurs sont réellement actifs ?
Le code de suivi JavaScript de Matomo utilise des cookies internes (first-party), définis sur le domaine de votre site. Ces cookies permettent de suivre les utilisateurs entre les pages et au fil du temps. Voici les principaux :
Cookies standards de tracking
| Cookie | Usage principal | Durée de vie par défaut |
|---|---|---|
_pk_id |
ID unique visiteur (permet de suivre un utilisateur) | 13 mois |
_pk_ref |
Stocke l’origine initiale de la visite (source de trafic) | 6 mois |
_pk_ses / _pk_cvar |
Stockage temporaire d’informations de session | 30 minutes |
_pk_hsr |
Utilisé pour les heatmaps et session recordings | 30 minutes |
Cookies liés au consentement et à la vie privée
| Cookie | Usage principal | Durée par défaut |
|---|---|---|
mtm_consent |
Consentement donné (tracking activé) | 30 ans |
mtm_consent_removed |
Consentement retiré | 30 ans |
mtm_cookie_consent |
Consentement spécifique aux cookies | 30 ans |
matomo_ignore |
Opt-out de suivi (par cookie ou iframe opt-out) | 30 ans |
matomo_sessid |
CSRF token pour la sécurité de l’opt-out (ne contient aucune donnée personnelle) | 14 jours |
Autres
_pk_testcookie: utilisé pour tester la capacité du navigateur à stocker des cookies ; supprimé immédiatement._pk_uid(optionnel) : cookie tiers, désactivé par défaut, à n’utiliser qu’en cas de besoin spécifique (multi-domaine sans SSO par exemple).
Matomo & RGPD – collecter sans consentement
3.1 Contexte réglementaire
Depuis l’entrée en vigueur du RGPD (2018) et des directives de la CNIL (2020), toute collecte de données à des fins analytiques nécessite le consentement préalable des utilisateurs, sauf exceptions très strictes.
Mais bonne nouvelle : Matomo est l’un des rares outils validés par la CNIL pour une collecte sans consentement, sous conditions.
3.2 Matomo : une solution “cookieless” et conforme
Matomo peut fonctionner :
- Avec cookies + consentement : tracking complet, mais taux de données collectées dépendant du taux d’acceptation.
- Sans cookies + sans consentement : tracking limité mais 100 % légal.
- Semi-hybride (cookies activés après opt-in) : collecte partielle, nécessitant un système de gestion de consentement (CMP).
3.3 Checklist CNIL : les 9 critères à respecter
Pour être exempté de consentement, vous devez configurer Matomo exactement comme suit :
- ✅ Utiliser une version listée comme conforme par la CNIL (Matomo, AT Internet, Piwik Pro…).
- ✅ Fournir une information claire dans la politique de confidentialité.
- ✅ Offrir une option d’opt-out accessible et permanente (ex : iframe Matomo ou lien HTML).
- ✅ Ne pas recouper les données avec d’autres sources (ex : CRM, Google Ads).
- ✅ Limiter les cookies à des usages strictement statistiques anonymes.
- ✅ Ne pas suivre la navigation sur d’autres sites.
- ✅ Anonymiser l’adresse IP (masquage des 2 derniers octets).
- ✅ Ne pas conserver les IP et cookies plus de 13 mois.
- ✅ Ne pas conserver les données collectées au-delà de 25 mois.
📄 Configuration officielle Matomo validée par la CNIL (PDF)
3.4 Paramétrage technique pour respecter ces critères
Voici les paramètres à appliquer dans Matomo pour une collecte RGPD-compatible sans consentement :
_paq.push(['disableCookies']);
_paq.push(['HeatmapSessionRecording::disable']);
Et dans l’administration Matomo :
- Activer l’anonymisation IP →
Administration > Vie privée > Anonymiser les données - Masquer les 2 derniers octets de l’IP
- Ne pas activer le suivi temps réel sans consentement
- Ajouter un lien “Je refuse d’être suivi” avec l’iframe opt-out Matomo
3.5 Limitations d’une collecte sans consentement
Collecter sans consentement, c’est possible, mais cela a un coût fonctionnel :
| Fonctionnalité | Disponible sans consentement ? |
|---|---|
| Identification multi-visite | ❌ Non (pas de cookie visiteur) |
| Tunnels de conversion | ⚠️ Partiel (données fragmentées) |
| Temps réel | ❌ Désactivé (cookie nécessaire) |
| Données de géolocalisation | ✅ Oui, mais à l’échelle de la ville (IP anonymisée) |
| Segmentation utilisateurs | ⚠️ Limité aux données non personnelles |
3.6 Exemple de configuration “sans consentement”
<!-- Script Matomo cookieless sans consentement -->
<script type="text/javascript">
var _paq = window._paq = window._paq || [];
_paq.push(['disableCookies']);
_paq.push(['HeatmapSessionRecording::disable']);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//stats.votresite.fr/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '1']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
3.8 Procédures spécifiques à suivre pour activer l’exemption
Pour être reconnu comme “exempté de consentement”, vous devez désactiver ou vérifier plusieurs fonctions clés :
a) Désactiver les exports de données visiteur
- Dans Matomo :
Administration > Système > Paramètres généraux > Live - Désactivez les journaux de visites, profils visiteurs et cartes temps réel.
b) Offrir une option d’opt-out
Ajoutez un lien de refus de suivi Matomo sur la page de politique de confidentialité accessible via Paramètres > Vie privée > Désinscription des utilisateurs
<iframe frameborder="no" width="600px" height="200px" src="https://example.com/index.php?module=CoreAdminHome&action=optOut&language=en"></iframe>
3.9 Vérifications essentielles à faire dans Matomo
| Élément à vérifier | Pourquoi | Comment |
|---|---|---|
| 🔒 Anonymisation IP | Obligation RGPD | Vie privée > Anonymiser les données |
| 🍪 Pas de cookies tiers | Traçage interdit | Ne pas activer le tracking cross-domain |
| 👤 Pas de User ID | Donnée personnelle | Visiteurs > ID Utilisateur doit être vide |
| 🛒 Pas de tracking E-Commerce | Interdit sans consentement | Éléments mesurables > Gérer > Désactiver E-Commerce |
| 🔥 Pas de heatmaps/session recording | Requiert consentement | Ajouter dans JS : _paq.push(['HeatmapSessionRecording::disable']); |
3.10 Ne jamais collecter de données personnelles (même indirectement)
Quelques pièges fréquents à éviter :
- ❌ Dimensions personnalisées contenant nom, email, ID client…
- ❌ URLs ou titres de page contenant des informations identifiantes (paramètres GET, slug personnalisé…)
- ❌ Événements avec des labels sensibles (
trackEvent('Form', 'Soumission', 'Jean Dupont')→ à proscrire !)
Nettoyez les URLs, titres, et variables avec une logique de filtrage côté serveur ou client avant de les envoyer à Matomo.
💡 En cas de doute, si vous collectez une donnée identifiable, vous devez obtenir un consentement explicite.
Installer et configurer Matomo
4.1 Choisir le bon mode d’hébergement
Option 1 : Matomo Auto-hébergé (On-Premise)
-
Avantages :
- Contrôle total sur les données
- Possibilité d’être 100 % conforme RGPD (mode sans consentement)
- Extensible via plugins, crons, accès aux logs
-
Inconvénients :
- Nécessite un serveur dédié ou mutualisé performant
- Maintenance, sécurité, mises à jour à gérer soi-même
- Gestion complexe au-delà de 1M de hits/mois sans tuning
📌 Recommandé si vous avez une équipe tech dédiée ou un besoin de souveraineté forte.
Option 2 : Matomo Cloud (SaaS)
-
Avantages :
- Hébergement géré, aucun serveur à configurer
- SLA, backups, monitoring pris en charge
- Compatible RGPD via contrats DPA stricts
-
Inconvénients :
- Certaines fonctionnalités avancées sont payantes
- Accès limité au backend (pas d’accès base de données)
- Collecte sans consentement possible mais dépendante de la configuration côté client
📌 Recommandé pour les petites équipes marketing ou les projets pilotes.
4.2 Configuration initiale : les étapes essentielles
Après installation (ou souscription au cloud), voici les étapes clés de configuration :
- Créer un site (ou plusieurs, selon vos domaines) dans
Éléments mesurables > Gérer - Ajouter le script de suivi dans le
<head>ou via un TMS - Activer les modules essentiels (Objectifs, Segments, Rapports personnalisés…)
- Configurer les paramètres RGPD dans
Vie privée - Désactiver ce qui n’est pas utilisé (e-commerce, heatmaps, User ID…)
💡 Ne laissez aucun plugin activé par défaut inutilement : cela nuit aux performances et peut poser problème côté CNIL.
4.3 Conseils d’optimisation (auto-hébergement)
Pour les installations on-premise avec un trafic moyen à élevé (> 500 000 visites/mois), appliquez ces bonnes pratiques :
-
✅ Activer l’archivage par cron : bashCopierModifier
sudo crontab -e */30 * * * * /usr/bin/php /chemin/matomo/console core:archive --url=https://stats.votresite.fr > /var/log/matomo-archive.log -
✅ Optimiser la base de données :
- Index sur les colonnes
idvisit,visit_last_action_time,idaction - Nettoyage automatique :
Administration > Vie privée > Supprimer anciennes données
- Index sur les colonnes
-
✅ Surveiller l’usage CPU/RAM :
- Matomo peut consommer > 2 Go de RAM en traitement par défaut
- Un serveur dédié est recommandé pour plus de 1M de hits/mois
-
✅ Activer la compression GZIP et la mise en cache sur Apache/Nginx
4.4 Extensions et modules utiles
Voici les plugins recommandés selon votre usage :
| Plugin | Utilité principale | Version requise |
|---|---|---|
| Custom Reports | Rapports croisés (3 dimensions) | Premium (payant) |
| Tag Manager | TMS intégré à Matomo | Gratuit |
| Funnels | Tunnels de conversion | Premium (payant) |
| Media Analytics | Suivi des vidéos HTML5, YouTube, Vimeo | Premium (payant) |
| Heatmaps & Session Rec. | Analyse comportementale (à activer avec consentement) | Premium (payant) |
🔒 Évitez d’activer les plugins qui traitent des données personnelles sans cadre de consentement clair.
Matomo Tag Manager (MTM)
5.1 Qu’est-ce que MTM ?
Matomo Tag Manager est un système de gestion de balises (TMS) intégré à Matomo. Il permet de déployer, modifier et organiser des balises JavaScript (tags) sans avoir à toucher au code source du site.
Comparable à Google Tag Manager ou Commanders Act, MTM est une solution souveraine, hébergée sur vos propres serveurs si vous utilisez Matomo on-premise.
📌 Objectif : déléguer la logique de déclenchement et d’injection de balises à une interface visuelle, sans dépendre des développeurs pour chaque modification.
5.2 Architecture d’un container MTM
Un container MTM est une entité qui regroupe 3 éléments principaux :
| Élément | Description |
|---|---|
| 🏷️ Balises (Tags) | Code exécuté (Matomo, JS personnalisé, HTML, Facebook Pixel, etc.) |
| ⚡ Déclencheurs (Triggers) | Conditions d’activation des balises (page vue, clic, scroll, etc.) |
| 📦 Variables | Valeurs dynamiques injectables dans les balises (URL, classes CSS, referrer, cookie…) |
💡 Chaque site ou environnement (staging, production…) peut avoir son propre container.
5.3 Cas d’usage typiques
Suivi d’événements sans coder
Ajoutez un suivi de clic sur un bouton avec seulement 3 clics dans l’interface MTM :
- Déclencheur : clic sur élément
#btn-inscription - Balise :
trackEventMatomo - Variables : libellé dynamique via
element text
Gestion multi-site
Avec un container global, vous pouvez propager des balises partagées à plusieurs domaines (via des versions séparées du container).
5.4 Avantages et limites de MTM
| Avantages | Limites |
|---|---|
| ✅ Interface simple à prendre en main | ⚠️ Moins d’options avancées que GTM |
| ✅ Compatible RGPD / cookieless | ⚠️ Pas de debug mode visuel intégré |
| ✅ Déploiement rapide des scripts | ⚠️ Documentation technique limitée |
| ✅ Intégration native avec Matomo | ⚠️ Pas d’A/B testing intégré |
5.5 Exemple de configuration MTM complète
Objectif : suivre un clic sur le bouton “Télécharger la brochure”
-
Variable personnalisée :
- Nom :
elementText - Type :
Text of clicked element
- Nom :
-
Déclencheur :
- Type :
Click - Sélecteur CSS :
#download-brochure - Conditions :
elementText contains "Télécharger"
- Type :
-
Balise :
- Type :
Matomo Event - Catégorie :
CTA - Action :
Clic - Nom :
{{elementText}}
- Type :
-
Publication du container :
- Créer une nouvelle version
- Publier sur l’environnement de production
5.6 Intégration d’un CMP (Consent Management Platform) avec Matomo Tag Manager
Pour assurer une collecte conforme au RGPD, vous devez synchroniser votre gestionnaire de consentement (CMP) avec Matomo Tag Manager afin que les balises de tracking ne soient déclenchées que si le visiteur a donné son accord.
Cette intégration permet de :
- Ne pas charger Matomo ou ses cookies sans consentement
- Gérer dynamiquement l’activation/désactivation du tracking
- Centraliser la logique de gestion dans le TMS, sans modifier le site
Étapes génériques d’intégration avec une CMP
Pré-requis
- Vous disposez d’un compte actif chez un fournisseur de CMP (ex : Axeptio, Cookiebot, Didomi…)
- Le code de container Matomo Tag Manager est déjà intégré sur votre site
- Votre bannière de consentement est opérationnelle (testée sur le site)
1. Supprimer l’inclusion directe du script CMP
La plupart des CMP proposent un script <script src=...> à inclure dans le <head>. Pour une intégration propre via MTM, ce script doit être supprimé du code source et injecté via Matomo Tag Manager.
2. Créer une balise dédiée CMP dans Matomo Tag Manager
- Type de balise : Tag spécifique CMP ou HTML personnalisé
- Nom :
Consentement CMP - Contenu : utilisez le script du SDK client fourni par le prestataire
- Déclencheur :
Pageview – All pages
3. Créer une balise HTML personnalisée pour gérer le consentement
<script>
window._cmpcb = window._cmpcb || []; // adapt this prefix for your CMP (e.g. _axcb for Axeptio, _didomiCallback, etc.)
window._mtm = window._mtm || [];
window._cmpcb.push(function(sdk) {
sdk.on("cookies:complete", function(choices) {
let matomoAllowed = false;
for (let vendor in choices) {
if (vendor.toLowerCase() === "matomo" && choices[vendor] === true) {
matomoAllowed = true;
}
}
if (matomoAllowed) {
enableMatomo();
} else {
disableMatomo();
}
});
});
function enableMatomo() {
_paq.push(['rememberCookieConsentGiven']);
_paq.push(['setConsentGiven']);
}
function disableMatomo() {
_paq.push(['forgetCookieConsentGiven']);
_paq.push(['deleteCookies']);
}
</script>
- Position de la balise :
Head Start - Déclencheur :
DOM Ready
4. Activer l’option “Require Consent” dans Matomo Tag Manager
Dans la configuration de la variable Matomo Configuration :
- Activez l’option “Require Cookie Consent”
- Activez (si nécessaire) l’option “Require Tracking Consent”
Cela empêche tout tracking si le consentement n’a pas été explicitement donné.
5. Déclencher le tracking Matomo en fonction du consentement
Vos balises de tracking (Page View, Events…) doivent :
- Être conditionnées par une variable ou un événement de type “Consentement donné”
- Ne pas se déclencher par défaut
6. Tester le comportement
Avant mise en production :
- Vérifiez le fonctionnement de la bannière (acceptation, refus, retrait)
- Testez les cookies : doivent apparaître uniquement après acceptation
- Observez la console JS pour les événements
_mtm(debug tracking)
Remarques importantes
- La logique présentée ici fonctionne avec toutes les CMPs disposant d’un SDK JS et d’un système d’événement.
- En cas d’erreur de configuration, vous risquez de collecter illégalement des données personnelles sans base légale.
- Si votre CMP ne permet pas d’activer finement Matomo, préférez une intégration via un wrapper serveur ou un proxy de tracking.
Suivi des événements et objectifs dans Matomo
6.1 Pourquoi instrumenter des événements ?
Dans Matomo, les pages vues seules ne suffisent pas pour comprendre les intentions et actions des utilisateurs. C’est pourquoi le suivi des événements personnalisés est essentiel :
- Identifier des clics stratégiques (CTA, téléchargements, vidéos)
- Suivre des interactions complexes (formulaires, carrousels, navigation interne)
- Définir des objectifs métiers concrets (inscription, ajout au panier, lead généré…)
Les événements enrichissent la donnée comportementale brute et permettent de construire une analyse centrée sur les objectifs business.
6.2 Structure d’un événement dans Matomo
Chaque événement Matomo repose sur 3 composantes principales (une 4e est optionnelle) :
_paq.push(['trackEvent', 'Catégorie', 'Action', 'Libellé', 'Valeur']);
| Élément | Description | Exemple |
|---|---|---|
| Catégorie | Regroupement logique | CTA, Vidéo, Formulaire |
| Action | Type d’interaction | Clic, Lecture, Soumission |
| Libellé | Contexte ou cible de l’action | Header - Contact, Brochure.pdf |
| Valeur (facultatif) | Valeur numérique associée | 1 ou prix, durée en secondes |
💡 Il est recommandé de définir une taxonomie d’événements cohérente dès le départ pour éviter les doublons et confusions dans les rapports.
6.3 Exemples d’événements stratégiques
| Cas métier | Exemple de tracking |
|---|---|
| Téléchargement de document | trackEvent('Téléchargement', 'Clic', 'fiche-produit.pdf') |
| Soumission formulaire | trackEvent('Formulaire', 'Soumission', 'Contact footer') |
| Lecture de vidéo | trackEvent('Vidéo', 'Lecture', 'Page produit') |
| Clic sur bouton newsletter | trackEvent('CTA', 'Clic', 'Inscription NL header') |
| Passage étape panier | trackEvent('Tunnel', 'Étape 2', 'Adresse livraison') |
6.4 Créer des objectifs dans Matomo
Les objectifs permettent de mesurer automatiquement l’accomplissement d’une action clé, comme un achat ou une soumission de formulaire. Ils se basent sur des règles.
Types d’objectifs :
- URL de destination atteinte (
/merci,/confirmation) - Événement personnalisé déclenché (
trackEvent(...)) - Temps passé sur le site
- Nombre de pages vues dans une session
Exemple :
Création d’un objectif “Formulaire contact envoyé”
- Type : Événement
- Catégorie =
Formulaire - Action =
Soumission - Libellé =
Contact footer
📌 Les objectifs apparaissent ensuite dans tous les rapports comme métriques : taux de conversion, taux par canal, etc.
6.5 Bonnes pratiques pour le suivi avancé
- ✅ Centraliser les noms d’événements dans un plan de marquage partagé avec les équipes
- ✅ Utiliser des variables dynamiques via Matomo Tag Manager pour personnaliser les valeurs
- ✅ Tester tous les déclenchements via les outils debug (
?mtmPreviewMode=1) - ✅ Compléter avec des objectifs secondaires pour suivre des micro-conversions (ex : scroll à 75 %)
- ❌ Éviter les noms d’événements trop génériques (
Clic,OK,Submit…)
Analyser ses données dans Matomo
7.1 Vue d’ensemble des rapports
Matomo propose une interface modulaire, organisée en rapports standards regroupés en grandes familles :
| Catégorie | Rapports clés |
|---|---|
| 🧭 Acquisition | Canaux, Mots-clés, Référents, Campagnes UTM |
| 👥 Visiteurs | Navigateur, Appareil, Géolocalisation, Recurrence |
| 📄 Contenu | Pages vues, Entrées, Sorties, Pages suivies |
| 🎯 Objectifs | Conversions, Valeur, Tunnel (si plugin actif) |
| 🛍️ E-commerce | Produits, Commandes, Revenus (si activé) |
| ⚙️ Personnalisation | Événements, Variables personnalisées |
📌 Chaque rapport est segmentable, filtrable par recherche contenant, et peut afficher des comparaisons entre périodes.
7.2 Filtres, segments et comparateurs
Segments
Les segments permettent d’analyser un sous-ensemble d’utilisateurs (visiteurs mobiles, nouveaux visiteurs, trafic Google Ads, etc.)
Exemples utiles :
Canal = Référent / Campagne UTM = newsletterType d'appareil = smartphoneA atteint l’objectif : "Lead généré"
Les segments sont persistants et réutilisables dans tous les rapports.
Comparaison de périodes
Matomo permet de comparer deux plages de dates :
- Affichage côte à côte ou variation en %
- Supporte les segments pour chaque période
⚠️ Limitation : pas de vues multi-sites ou multi-objectifs dans une seule interface.
7.3 Rapports personnalisés (Custom Reports)
Avec le plugin premium Rapports Personnalisés, il est possible de :
- Combiner jusqu’à 3 dimensions dans un rapport
- Choisir les métriques à afficher (conversions, taux, événements…)
- Générer des tableaux croisés ou des listes déroulantes dynamiques
Exemple : croiser Page, Type d'appareil, Campagne avec Taux de conversion.
⚠️ Cette fonctionnalité est soumise à la version Matomo utilisée (premium uniquement).
7.5 Limites à connaître
| Limite technique | Contournement recommandé |
|---|---|
| Max 3 dimensions dans les rapports | Export via API > traitement dans BI |
| Aucune visualisation de tunnel native (sans plugin) | Activer le plugin Funnels |
| Pas d’analyse de cohorte avancée | Export + visualisation externe |
| Segments parfois instables sur grands volumes | Pré-calculer via l’API / cron d’archivage |
💡 Pour des analyses multi-canal ou multi-sources, connecter Matomo à Looker Studio, Tableau, Power BI ou BigQuery est fortement conseillé.
Implémenter Matomo via Google Tag Manager (GTM)
8.1 Pourquoi utiliser GTM avec Matomo ?
Même si Matomo dispose de son propre Tag Manager intégré (MTM), je vous recommande de continuer à centraliser la gestion des balises via Google Tag Manager pour des raisons :
- de standardisation d’équipe ou d’agence,
- de dépendance à d’autres outils Google (Ads, Optimize…),
- de meilleure documentation/ergonomie GTM.
Bonne nouvelle : Matomo est totalement compatible avec GTM, à condition de suivre une configuration rigoureuse.
8.2 Ajouter le tag de base Matomo dans GTM
Étapes :
- Créer une balise HTML personnalisée dans GTM : (script à adapter en fonction de votre configuration de consentement cf sections précédentes)
<!-- Matomo Tag (HTML personnalisé) -->
<script type="text/javascript">
var _paq = window._paq = window._paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//stats.votresite.fr/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '1']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
- Déclencheur : Initialization (toutes les pages du site)
📌 Ceci installe le code Matomo sur toutes les pages et permet de remonter les indicateurs de base.
8.3 Suivi du e-commerce
Pour déclencher un suivi e-commerce côté Matomo, vous devez envoyer une commande JS via _paq.push().
💡 Vous devez injecter dynamiquement les données depuis la couche de données GTM (dataLayer).
Vue produit
var _paq = _paq || [];
var productsDetails = {{Ecommerce Items}};
productsDetails.forEach(function(product){
_paq.push(["setEcommerceView", product.item_id.toString(), product.item_name,
product.item_category, parseFloat(product.price||0)])
});
_paq.push(['trackPageView']);
Ajout panier (via un cookie stockant les produits ajoutés précédemment)
var products = {{checkoutproduits}};
products.forEach(function(product){
_paq.push(["addEcommerceItem",product.item_id.toString(),
product.item_name,
product.item_category, parseFloat(product.price||0), parseFloat(product.quantity||0)])
});
// Envoyer le total au format numérique
_paq.push(["trackEcommerceCartUpdate", parseFloat(total_price)]);
Achat (purchase)
var _paq = _paq || [];
var orderDetails = {{Ecommerce (dataLayer)}};
var products = orderDetails.purchase.products;
var order_id = orderDetails.purchase.actionField.id;
var grand_total = parseFloat(orderDetails.purchase.actionField.revenue||0);
var sub_total = grand_total - parseFloat(orderDetails.purchase.actionField.shipping||0);
var tax = parseFloat(orderDetails.purchase.actionField.tax||0);
var shipping = parseFloat(orderDetails.purchase.actionField.shipping||0);
products.forEach(function(product){
_paq.push(["addEcommerceItem",product.id.toString(), product.name, product.category, parseFloat(product.price||0), parseFloat(product.quantity||1)])
});
_paq.push(["trackEcommerceOrder",order_id.toString(), grand_total, tax, shipping]);
8.4 Suivi des événements personnalisés avec GTM
Matomo accepte les événements classiques via :
_paq.push(['trackEvent', 'Catégorie', 'Action', 'Label', 'Valeur']);
Exemple (clic bouton PDF) :
_paq.push(['trackEvent', 'Téléchargement', 'Clic', 'Guide Tarif 2025']);
- Créez une balise HTML dans GTM
- Déclencheur :
Clicksur un lien contenant.pdf
8.7 Recommandations techniques
- Utilisez un DataLayer structurée (
ecommerce,event,userId…) pour injecter dynamiquement les valeurs - Evitez les balises Matomo en
document.write()(incompatible GTM) - Activez l’option Require Consent si le tracking dépend d’un CMP
- Testez toujours avec les outils de debug de GTM ET avec l’extension Matomo Debugger
Audit & astuces
9.1 Audit de configuration Matomo (checklist technique)
Pour tout projet utilisant Matomo, commencez par un audit technique structuré pour vérifier l’efficacité et la conformité de l’implémentation.
✅ Checklist d’audit rapide d’un compte Matomo :
- Le script Matomo est présent sur toutes les pages
- Les données RGPD sont bien anonymisées
- Le suivi des événements est structuré (taxonomie cohérente)
- Un plan de marquage existe et est à jour
- Les objectifs sont correctement configurés et testés
- L’archivage automatique (
cron) est actif si on-premise - Les rapports affichent des taux de rebond cohérents
- Aucune donnée personnelle (email, ID client brut, etc.) n’est visible
🔍 Utilisez l’outil Matomo Debugger ou le navigateur avec console JS pour inspecter les hits en temps réel.
9.2 Debugging & erreurs fréquentes
Avant de remettre un projet entre les mains du client ou de l’équipe marketing, un debug rigoureux est indispensable.
Problèmes courants & solutions
| Symptôme | Cause probable | Solution recommandée |
|---|---|---|
| Aucun hit Matomo dans le réseau | Script absent ou mal intégré | Vérifie le DOM, le GTM, la console JS |
| Page vues doublées | Script injecté 2x (GTM + MTM) | Supprimer les doublons, centraliser le tag |
| Objectifs jamais atteints | Mauvais déclencheur ou condition incorrecte | Simule manuellement chaque interaction |
| Segments toujours vides | Syntaxe mal respectée / casses incohérentes | Standardiser les noms dans le plan de tag |
| Tunnel de conversion vide | Objectifs mal ordonnés ou funnel mal activé | Reparamétrer les étapes dans le plugin |
| Événements non catégorisés | Libellés manquants ou dynamiques mal injectés | Tester dans Matomo Debugger / console _paq |
| Suivi ecommerce non activé | Module désactivé ou site non marqué comme tel | Éléments mesurables > Gérer > E-commerce |
| Hits filtrés ou absents en cookieless | RGPD mal paramétré ou _paq incomplet |
Revoir la configuration cookieless (voir 3.6) |
📌 Le plugin navigateur Matomo Debugger (Chrome) permet de visualiser les hits en direct, segments actifs, événements envoyés et erreurs JS.
9.6 Aller plus loin avec Matomo : API, BI et modules experts
Une fois Matomo bien configuré, les équipes techniques et data peuvent aller beaucoup plus loin en exploitant :
1. L’API REST Matomo
- Export JSON, XML ou CSV de n’importe quel rapport
- Création de dashboards automatisés
- Intégration dans des outils externes (Looker, Power BI, Notion, Zapier…)
Exemple :
https://stats.monsite.fr/index.php
?module=API&method=VisitsSummary.get
&idSite=1&period=week&date=today
&format=JSON&token_auth=XXXX
2. Connexion avec des outils BI
- Export des logs en base (si auto-hébergé) → PostgreSQL / BigQuery
- Agrégation dans Looker Studio (ex-Datastudio)
- Visualisation enrichie dans Tableau / Power BI
💡 Pour gros volumes, pense à extraire les tables log_visit, log_link_visit_action via cron ou script Python.
3. Modules Premium recommandés
| Module | Fonction avancée |
|---|---|
| Funnels | Visualisation des tunnels de conversion |
| Custom Reports | Rapports avec + de 3 dimensions |
| Media Analytics | Tracking vidéo avancé |
| Roll-Up Reporting | Agrégation multi-sites |
| Form Analytics | Analyse détaillée des formulaires |
⚠️ Ces modules sont payants (abonnement cloud ou licence on-premise), mais indispensables pour des besoins entreprise.
4. Intégrations utiles
- CRM (via webhook ou API) : push leads Matomo dans Hubspot, Pipedrive, Salesforce…
- CMP (consent manager) : pilotage dynamique du tracking (voir 5.6)
- Google Ads / Bing Ads : suivi des conversions avec paramètres UTM et reports croisés