WordPress Training
Ressources

Matomo-Daten automatisch in Google Sheets exportieren

Les articles détaillés et les billets de blog sont rédigés en allemand. Les formations personnelles, les appels et le support email sont uniquement disponibles en anglais ou en allemand — pas dans cette langue.

Matomo Analytics Dashboard

Matomo ist eine ausgezeichnete Analytics-Lösung — DSGVO-freundlich, eigentumsfreundlich, daten-souverän. Was Matomo aber nicht von Haus aus gut macht: Daten flexibel in Spreadsheets weiterverarbeiten. Wenn Sie wöchentlich einen Traffic-Report an die Geschäftsführung schicken, monatlich eine SEO-Audit-Tabelle pflegen oder einfach mit dem Filter-Mut von Google Sheets über Ihre Daten gehen wollen, müssen Sie Matomo und Sheets verheiraten. Drei Wege funktionieren in der Praxis, alle mit unterschiedlichem Setup-Aufwand. Für die Grundsatzfrage, ob Matomo oder Google Analytics 2026 die bessere Wahl ist, lesen Sie meinen Beitrag zu Google Analytics vs. Matomo — dieser hier setzt voraus, dass Sie Matomo bereits einsetzen.

Voraussetzungen: Eine laufende Matomo-Instanz (Cloud oder self-hosted), API-Zugriff (siehe unten), ein Google-Konto mit Sheets-Zugriff. Zeit für Setup: 30–90 Minuten je Methode.

Warum Sheets statt Matomo-UI?

Bevor ich technisch werde, kurz die Frage: Wofür ist das überhaupt sinnvoll?

  • Reporting an Stakeholder. Geschäftsführer:innen wollen Tabellen, keine Dashboards mit eingeloggter Maus-Aktion. Eine wöchentlich automatisch befüllte Sheet-Tabelle mit den fünf wichtigsten Kennzahlen ist Gold.
  • Cross-Tool-Vergleich. Wenn Sie Matomo-Daten neben Search-Console-Daten, Mailchimp-Stats und CRM-Conversions zeigen wollen, ist Sheets der Klebstoff.
  • Eigenes Bewertungssystem. Sie wollen aus Bounce-Rate, Sitzungsdauer und Conversion-Rate einen „Page-Quality-Score“ berechnen? Pivot-Tabellen, FORMELN, IF-Verschachtelungen — das ist Sheets-Heimat, nicht Matomo-Heimat.
  • Historisches Archiv. Manche Matomo-Cloud-Pläne haben Daten-Retention-Limits. Wer wichtige Kennzahlen in Sheets persistiert, hat sie noch in fünf Jahren.

Was Sheets nicht ersetzt: das Matomo-UI selbst. Funnel-Analysen, Session-Recordings, Heatmaps — das machen Sie weiterhin in Matomo. Sheets ist die Aggregations- und Verteilungsschicht.

Methode 1: Matomo Reporting API + Apps Script (Schritt für Schritt)

Die robusteste und flexibelste Methode. Setup-Zeit: 30–60 Minuten.

Schritt 1: Matomo Auth Token erstellen.

In Matomo → Personalverwaltung → Sicherheit → „Authentifizierungs-Tokens“ → „Neues Token erstellen“. Berechtigung: read-only auf die relevanten Sites. Notieren Sie das Token (Sie sehen es nur einmal).

Schritt 2: API-URL aufbauen.

Die Matomo Reporting API hat eine sehr konsistente Struktur:

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

Wichtige Parameter:

  • method — was Sie abfragen wollen (z. B. VisitsSummary.get, Actions.getPageUrls, Referrers.getKeywords)
  • idSite — die Site-ID (sehen Sie im Matomo-Backend)
  • periodday, week, month, year, range
  • date — z. B. last30, 2026-05-01,2026-05-31
  • format=JSON — bringt strukturierte Daten zurück, ideal für Apps Script

Schritt 3: Google Apps Script aufsetzen.

In Google Sheets → Erweiterungen → Apps Script. Folgendes Script (Grundgerüst):

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(['Datum', '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');
}

Schritt 4: Token sicher speichern. Apps Script → Projekteinstellungen → Skript-Properties → MATOMO_TOKEN als Key, Ihr Token als Value. So liegt das Token nicht im Code.

Schritt 5: Trigger einrichten. Apps Script → Trigger → „Neuen Trigger hinzufügen“ → fetchMatomoVisitsSummary → zeitgesteuert → täglich um 06:00 Uhr.

Fertig. Ab jetzt aktualisiert sich Ihr Sheet jeden Morgen automatisch mit den letzten 30 Tagen Visit-Daten.

Methode 2: Looker Studio als Brücke

Wenn Sie weniger scripten und mehr klicken wollen.

Setup:

  1. In Looker Studio (früher Google Data Studio) → „Datenquellen“ → „Matomo Connector“ (Community-Connector).
  2. Verbindung mit Matomo herstellen: URL + Auth-Token.
  3. Datenquelle anlegen (z. B. „VisitsSummary“).
  4. In Looker Studio einen Bericht erstellen oder direkt die Daten in eine Tabelle ziehen.
  5. In Looker Studio → „Datei“ → „In Google Sheets exportieren“ — entweder einmalig oder per Scheduled Email.

Vorteile:

  • Kein Code
  • Visualisierungen „for free“ in Looker Studio
  • Geplante E-Mail-Berichte aus Looker direkt heraus
  • Self-Service für nicht-technische Nutzer:innen

Nachteile:

  • Community-Connectors haben unterschiedliche Qualität — manche sind seit zwei Jahren nicht mehr aktualisiert
  • Looker-Studio-Berichte sind nicht so dynamisch wie native Sheets-Logik
  • Bei großen Datenmengen langsam

Für viele kleinere Setups (Solo-Selbstständige, kleine Agenturen) ist das die pragmatische Lösung — kein Apps-Script-Bauch.

Methode 3: Plugins und SaaS-Bridges

Es gibt zwei Sorten Plugins:

WordPress-Plugins (wenn Matomo via WordPress eingebunden ist):

  • „Matomo Analytics — Ethical Stats“ (offizielles Plugin von Matomo) zeigt zwar Daten in WordPress-Dashboard, aber Sheets-Export ist nicht eingebaut.
  • „Connect Polylang for Matomo“ und ähnliche Spezial-Plugins zielen auf andere Use Cases.

SaaS-Bridges:

  • Coupler.io — kostenpflichtig (ab 49 USD/Monat), klickbasierte Integration zwischen Matomo und Google Sheets. Lohnt sich, wenn Sie mehrere Datenquellen integrieren wollen.
  • Supermetrics — der große Player. Sehr teuer (ab 99 EUR/Monat), aber Konzern-tauglich.
  • Funnel.io — ähnlich Supermetrics, etwas günstiger.

Mein Rat für die meisten Leser:innen: Methode 1 (Apps Script) ist die beste Investition in 60 Minuten, die Sie ohne laufende Kosten dauerhaft selbst pflegen können. SaaS-Bridges sind dann sinnvoll, wenn Sie 5+ Datenquellen orchestrieren wollen und keine Skript-Lust haben.

Fehlerquellen: Auth-Token, CORS, Rate-Limits

In über zwanzig Setups habe ich folgende Fehler immer wieder gesehen:

1. Auth-Token mit zu vielen Rechten. Erstellen Sie für die Sheets-Integration ein eigenes Token mit ausschließlich read-Berechtigung für die spezifische Site. Niemals Admin-Tokens verwenden — wenn Sie irgendwann den Tab geöffnet weitergeben, ist das Risiko zu hoch.

2. URL-Encoding-Fehler. Wenn Sie Filter mit Sonderzeichen verwenden (z. B. segment=pageUrl=@/blog/), müssen die korrekt encoded sein. UrlFetchApp.fetch in Apps Script erwartet meist saubere URLs — encodeURIComponent() ist Ihr Freund.

3. CORS-Probleme (nicht in Apps Script, aber im Browser). Wenn Sie die Matomo API aus einer Browser-Webapp aufrufen wollen, brauchen Sie CORS-Header in Matomo. Apps Script ist davon nicht betroffen, weil der Aufruf serverseitig läuft.

4. Rate-Limits. Matomo Cloud hat (Stand 2026) keine offiziellen API-Rate-Limits, aber für self-hosted Setups auf schwacher Hardware können große Reports (z. B. Pageviews über 365 Tage mit Segmentierung) den Server überlasten. Lösung: smaller chunks, kürzere date-Ranges.

5. Zeitstempel-Inkonsistenzen. Matomo nutzt UTC. Wenn Sie in Sheets mit lokalen Zeiten arbeiten, kann es zu off-by-one-Day-Effekten kommen. In Apps Script vor dem Schreiben mit Utilities.formatDate(date, 'Europe/Vienna', 'yyyy-MM-dd') konvertieren.

Praxis-Beispiel: wöchentlicher Traffic-Report

Konkretes Setup, das ich für drei Kunden laufen habe:

Sheet-Aufbau:

  • Tab „Raw“: Apps-Script-Daten aus Matomo (täglich aktualisiert)
  • Tab „Weekly“: berechnete Wochensummen via QUERY()/SUMIFS()
  • Tab „Dashboard“: Charts und KPI-Boxen, die auf „Weekly“ verweisen
  • Tab „E-Mail“: vorbereiteter Wochen-Text mit & und TEXT()

Apps Script Trigger:

  • Täglich um 06:00: Raw-Tab aktualisieren
  • Jeden Montag um 09:00: zusätzlich sendWeeklyEmail() ausführen, das aus dem Sheet eine E-Mail an die Stakeholder schickt

Die wöchentliche E-Mail enthält dann automatisch: Top 5 Seiten der Woche, Vergleich zu Vorwoche und Vormonat, neue Referrer, technische Auffälligkeiten (z. B. plötzlich gestiegene Bounce-Rate auf einer Landingpage).

Wer in dieselbe Richtung geht — Daten besser nutzen, mehr aus Analytics rausholen — sollte sich auch meinen Beitrag zu kostenlosen SEO-Analysen für Anfänger anschauen. Und für das große Bild SEO + WordPress: WordPress SEO-Grundlagen.


Hilfe beim Setup gewünscht?

Wenn Sie das Apps-Script-Setup für Ihre Matomo-Instanz nicht selbst aufsetzen wollen, kann ich das in 2–3 Stunden für Sie einrichten — inklusive Übergabe-Schulung, damit Sie selbst neue Reports ergänzen können. Schreiben Sie mir kurz, was Sie tracken wollen.

Setup anfragen: Kontakt aufnehmen

Tags

AnalyticsAutomatisierungGoogle SheetsMatomoReporting