WordPress Training
Ressources

Matomo-Daten automatisch in Google Sheets exportieren

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