WordPress Training
Ressources

Exporter automatiquement les données Matomo vers Google Sheets

Matomo Analytics Dashboard

Matomo est une excellente solution d'analytics — respectueuse du RGPD, respectueuse de la propriété, souveraine en matière de données. Ce que Matomo ne fait toutefois pas bien d'origine : retraiter les données de manière flexible dans des feuilles de calcul. Si vous envoyez chaque semaine un rapport de trafic à la direction, tenez chaque mois un tableau d'audit SEO ou souhaitez simplement parcourir vos données avec l'audace de filtrage de Google Sheets, vous devez marier Matomo et Sheets. Trois voies fonctionnent en pratique, toutes avec un effort de configuration différent. Pour la question de fond de savoir si Matomo ou Google Analytics est le meilleur choix en 2026, lisez mon article sur Google Analytics vs. Matomo — celui-ci suppose que vous utilisez déjà Matomo.

Prérequis : une instance Matomo en service (cloud ou auto-hébergée), un accès API (voir ci-dessous), un compte Google avec accès à Sheets. Temps de configuration : 30 à 90 minutes selon la méthode.

Pourquoi Sheets plutôt que l'interface de Matomo ?

Avant d'entrer dans la technique, une question rapide : à quoi cela sert-il au juste ?

  • Reporting aux parties prenantes. Les dirigeants veulent des tableaux, pas des tableaux de bord nécessitant une action de la souris une fois connecté. Un tableau Sheets rempli automatiquement chaque semaine avec les cinq indicateurs les plus importants, c'est de l'or.
  • Comparaison entre outils. Si vous voulez afficher les données Matomo à côté des données de la Search Console, des statistiques Mailchimp et des conversions du CRM, Sheets est la colle.
  • Votre propre système de notation. Vous voulez calculer un „page quality score“ à partir du taux de rebond, de la durée de session et du taux de conversion ? Tableaux croisés dynamiques, FORMULES, IF imbriqués — c'est le terrain de Sheets, pas celui de Matomo.
  • Archive historique. Certains forfaits Matomo Cloud ont des limites de rétention des données. Qui conserve les indicateurs importants dans Sheets les aura encore dans cinq ans.

Ce que Sheets ne remplace pas : l'interface de Matomo elle-même. Analyses d'entonnoir, enregistrements de session, cartes de chaleur — vous continuez à les faire dans Matomo. Sheets est la couche d'agrégation et de distribution.

Méthode 1 : Matomo Reporting API + Apps Script (étape par étape)

La méthode la plus robuste et la plus flexible. Temps de configuration : 30 à 60 minutes.

Étape 1 : créer un jeton d'authentification Matomo.

Dans Matomo → Gestion des utilisateurs → Sécurité → „Jetons d'authentification“ → „Créer un nouveau jeton“. Autorisation : lecture seule sur les sites concernés. Notez le jeton (vous ne le voyez qu'une seule fois).

Étape 2 : construire l'URL de l'API.

La Matomo Reporting API a une structure très cohérente :

https://IHR-MATOMO.example.com/index.php
  ?module=API
  &method=VisitsSummary.get
  &idSite=1
  &period=day
  &date=last30
  &format=JSON
  &token_auth=IHR_TOKEN

Paramètres importants :

  • method — ce que vous voulez interroger (par ex. VisitsSummary.get, Actions.getPageUrls, Referrers.getKeywords)
  • idSite — l'identifiant du site (visible dans le backend de Matomo)
  • periodday, week, month, year, range
  • date — par ex. last30, 2026-05-01,2026-05-31
  • format=JSON — renvoie des données structurées, idéal pour Apps Script

Étape 3 : mettre en place Google Apps Script.

Dans Google Sheets → Extensions → Apps Script. Le script suivant (structure de base) :

function fetchMatomoVisitsSummary() {
  const url = 'https://IHR-MATOMO.example.com/index.php'
    + '?module=API&method=VisitsSummary.get'
    + '&idSite=1&period=day&date=last30'
    + '&format=JSON&token_auth=' + getToken();

  const response = UrlFetchApp.fetch(url, { muteHttpExceptions: true });
  const data = JSON.parse(response.getContentText());

  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Matomo');
  sheet.clearContents();
  sheet.appendRow(['Date', 'Visits', 'Unique Visitors', 'Bounce Rate', 'Avg. Time']);

  Object.entries(data).forEach(([date, metrics]) => {
    sheet.appendRow([
      date,
      metrics.nb_visits || 0,
      metrics.nb_uniq_visitors || 0,
      metrics.bounce_rate || '0%',
      metrics.avg_time_on_site || 0
    ]);
  });
}

function getToken() {
  return PropertiesService.getScriptProperties().getProperty('MATOMO_TOKEN');
}

Étape 4 : stocker le jeton en toute sécurité. Apps Script → Paramètres du projet → Propriétés du script → MATOMO_TOKEN comme clé, votre jeton comme valeur. Ainsi, le jeton ne figure pas dans le code.

Étape 5 : configurer un déclencheur. Apps Script → Déclencheurs → „Ajouter un déclencheur“ → fetchMatomoVisitsSummary → en fonction du temps → tous les jours à 06h00.

Terminé. Désormais, votre feuille se met à jour automatiquement chaque matin avec les données de visite des 30 derniers jours.

Méthode 2 : Looker Studio comme passerelle

Si vous voulez moins coder et davantage cliquer.

Configuration :

  1. Dans Looker Studio (anciennement Google Data Studio) → „Sources de données“ → „Matomo Connector“ (connecteur communautaire).
  2. Établir une connexion avec Matomo : URL + jeton d'authentification.
  3. Créer une source de données (par ex. „VisitsSummary“).
  4. Dans Looker Studio, créer un rapport ou faire glisser directement les données dans un tableau.
  5. Dans Looker Studio → „Fichier“ → „Exporter vers Google Sheets“ — soit ponctuellement, soit par e-mail planifié.

Avantages :

  • Aucun code
  • Visualisations „for free“ dans Looker Studio
  • Rapports par e-mail planifiés directement depuis Looker
  • Libre-service pour les utilisateurs non techniques

Inconvénients :

  • La qualité des connecteurs communautaires est variable — certains n'ont pas été mis à jour depuis deux ans
  • Les rapports Looker Studio ne sont pas aussi dynamiques que la logique native de Sheets
  • Lent avec de grandes quantités de données

Pour de nombreuses configurations plus modestes (indépendants en solo, petites agences), c'est la solution pragmatique — sans la lourdeur d'Apps Script.

Méthode 3 : plugins et passerelles SaaS

Il existe deux types de plugins :

Plugins WordPress (lorsque Matomo est intégré via WordPress) :

  • „Matomo Analytics — Ethical Stats“ (le plugin officiel de Matomo) affiche certes des données dans le tableau de bord WordPress, mais l'export vers Sheets n'est pas intégré.
  • „Connect Polylang for Matomo“ et des plugins spécialisés similaires visent d'autres cas d'usage.

Passerelles SaaS :

  • Coupler.io — payant (à partir de 49 USD/mois), intégration par clics entre Matomo et Google Sheets. Cela vaut la peine si vous voulez intégrer plusieurs sources de données.
  • Supermetrics — le grand acteur. Très cher (à partir de 99 EUR/mois), mais de qualité entreprise.
  • Funnel.io — semblable à Supermetrics, un peu moins cher.

Mon conseil pour la plupart des lecteurs : la méthode 1 (Apps Script) est le meilleur investissement de 60 minutes que vous pouvez entretenir vous-même durablement et sans coûts récurrents. Les passerelles SaaS ont du sens lorsque vous voulez orchestrer 5 sources de données ou plus et que vous n'avez pas envie de scripter.

Sources d'erreur : jeton d'authentification, CORS, limites de débit

Au fil de plus de vingt configurations, j'ai vu revenir sans cesse les erreurs suivantes :

1. Jeton d'authentification avec trop de droits. Pour l'intégration avec Sheets, créez un jeton dédié avec uniquement l'autorisation de lecture pour le site spécifique. N'utilisez jamais de jetons d'administration — si un jour vous transmettez l'onglet ouvert, le risque est trop élevé.

2. Erreurs d'encodage d'URL. Si vous utilisez des filtres avec des caractères spéciaux (par ex. segment=pageUrl=@/blog/), ils doivent être correctement encodés. UrlFetchApp.fetch dans Apps Script attend généralement des URL propres — encodeURIComponent() est votre ami.

3. Problèmes de CORS (pas dans Apps Script, mais dans le navigateur). Si vous voulez appeler l'API Matomo depuis une application web dans le navigateur, vous avez besoin d'en-têtes CORS dans Matomo. Apps Script n'est pas concerné, car l'appel s'exécute côté serveur.

4. Limites de débit. Matomo Cloud n'a (en 2026) aucune limite de débit d'API officielle, mais pour les configurations auto-hébergées sur du matériel peu puissant, de gros rapports (par ex. les pages vues sur 365 jours avec segmentation) peuvent surcharger le serveur. Solution : des morceaux plus petits, des plages date plus courtes.

5. Incohérences d'horodatage. Matomo utilise l'UTC. Si vous travaillez avec des heures locales dans Sheets, des effets de décalage d'un jour peuvent se produire. Dans Apps Script, convertissez avant l'écriture avec Utilities.formatDate(date, 'Europe/Vienna', 'yyyy-MM-dd').

Exemple pratique : rapport de trafic hebdomadaire

Une configuration concrète que je fais tourner pour trois clients :

Structure de la feuille :

  • Onglet „Raw“ : données Apps Script issues de Matomo (mises à jour quotidiennement)
  • Onglet „Weekly“ : totaux hebdomadaires calculés via QUERY()/SUMIFS()
  • Onglet „Dashboard“ : graphiques et encadrés KPI qui renvoient à „Weekly“
  • Onglet „Email“ : texte hebdomadaire préparé avec & et TEXT()

Déclencheurs Apps Script :

  • Tous les jours à 06h00 : mettre à jour l'onglet Raw
  • Tous les lundis à 09h00 : exécuter en plus sendWeeklyEmail(), qui envoie un e-mail aux parties prenantes à partir de la feuille

L'e-mail hebdomadaire contient alors automatiquement : le top 5 des pages de la semaine, la comparaison avec la semaine précédente et le mois précédent, les nouveaux référents, les anomalies techniques (par ex. un taux de rebond soudainement en hausse sur une page d'atterrissage).

Quiconque va dans la même direction — mieux exploiter les données, tirer davantage de l'analytics — devrait aussi consulter mon article sur les analyses SEO gratuites pour débutants. Et pour la vue d'ensemble SEO + WordPress : les fondamentaux du SEO sur WordPress.


Besoin d'aide pour la configuration ?

Si vous ne voulez pas mettre en place vous-même la configuration Apps Script pour votre instance Matomo, je peux le faire pour vous en 2 à 3 heures — formation de transfert incluse, afin que vous puissiez ajouter vous-même de nouveaux rapports. Écrivez-moi brièvement ce que vous voulez suivre.

Demander la configuration : Prendre contact

Tags

AnalyticsAutomatisierungGoogle SheetsMatomoReporting