Aller au contenu
Loïc Chossière Consultant IA & Automatisation

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.

  • 25 min de lecture
  • 9 chapitres
  • Aucun email demandé
  • 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_id contenant 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 :

  1. Utilisez le Campaign URL Builder de Matomo (dans Acquisition > Campaign URL Builder)
  2. Balisez vos URLs avec les paramètres mtm_campaign, mtm_kwd, mtm_source, mtm_medium, etc.
  3. 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 :

  1. ✅ Utiliser une version listée comme conforme par la CNIL (Matomo, AT Internet, Piwik Pro…).
  2. ✅ Fournir une information claire dans la politique de confidentialité.
  3. ✅ Offrir une option d’opt-out accessible et permanente (ex : iframe Matomo ou lien HTML).
  4. ✅ Ne pas recouper les données avec d’autres sources (ex : CRM, Google Ads).
  5. ✅ Limiter les cookies à des usages strictement statistiques anonymes.
  6. ✅ Ne pas suivre la navigation sur d’autres sites.
  7. ✅ Anonymiser l’adresse IP (masquage des 2 derniers octets).
  8. ✅ Ne pas conserver les IP et cookies plus de 13 mois.
  9. ✅ 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 :

  1. Créer un site (ou plusieurs, selon vos domaines) dans Éléments mesurables > Gérer
  2. Ajouter le script de suivi dans le <head> ou via un TMS
  3. Activer les modules essentiels (Objectifs, Segments, Rapports personnalisés…)
  4. Configurer les paramètres RGPD dans Vie privée
  5. 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 : bashCopierModifiersudo 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
  • ✅ 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 : trackEvent Matomo
  • 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”

  1. Variable personnalisée :

    • Nom : elementText
    • Type : Text of clicked element
  2. Déclencheur :

    • Type : Click
    • Sélecteur CSS : #download-brochure
    • Conditions : elementText contains "Télécharger"
  3. Balise :

    • Type : Matomo Event
    • Catégorie : CTA
    • Action : Clic
    • Nom : {{elementText}}
  4. Publication du container :

    • Créer une nouvelle version
    • Publier sur l’environnement de production

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 = newsletter
  • Type d'appareil = smartphone
  • A 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 :

  1. 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>
  1. 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 : Click sur 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