Matte-schwarze Server-Edge-Box im Rack-Vordergrund mit sage-grünen Patch-Kabeln — Metapher für präzise Analytics ohne Überwachung.
AI-generated · gpt-image 2.0

fa4t3 — Fathom Analytics direkt im TYPO3-Backend.

Datenschutzkonforme Webanalyse für TYPO3 14 — ohne Third-Party-Cookies, ohne DSGVO-Einwilligung fürs Tracking. fa4t3 bindet Fathom Analytics ins Backend ein: Dashboard-Modul, seitenspezifische Metriken im Seitenbaum und optionaler Tracking-Script-Inject per Middleware.

  • Composer-Paket:moselwal/fa4t3
  • TYPO3: 14.x · PHP: 8.5+ · GPL-2.0-or-later

Analytics ohne Cookie-Banner — oder gar keine.

Mit fa4t3

  • Fathom Analytics: kein Cookie, kein Consent-Banner, DSGVO-konform by design
  • Backend-Dashboard direkt in TYPO3 — keine externen Logins für Redakteure
  • Seitenspezifische Metriken im Seitenbaum sichtbar
  • Tracking-Script-Inject per Middleware — kein TypoScript nötig

Bisher

  • Google Analytics mit Cookie-Consent-Banner — Nutzer lehnen ab, Daten fehlen
  • Externe Dashboards: Redakteure müssen zwischen TYPO3 und Analytics-Tool wechseln
  • DSGVO-Compliance erfordert Datenschutzbeauftragten, AVV, Cookie-Opt-In
  • Tracking-Script manuell per TypoScript einbinden und aktuell halten

Was fa4t3 mitbringt

Dashboard-Widgets

Integration in typo3/cms-dashboard: Seitenaufrufe, Top-Seiten, Referrer und Browser/Geräte als konfigurierbare Widgets.

Tracking-Inject

Optionaler Inject des Fathom-Tracking-Scripts per Middleware — keine manuelle TypoScript-Konfiguration nötig.

Seiten-Metriken

Pro-Seite-Metriken im TYPO3-Seitenmodul — jeder Redakteur sieht die Performance seiner Seite ohne externen Login.

Backend-Dashboard

Eigenes Backend-Modul mit Fathom-Analytics-Daten — Seitenaufrufe, Besucher, Verweildauer und Top-Seiten direkt in TYPO3.

Dashboard-Widgets

Wenn typo3/cms-dashboard installiert ist, stellt fa4t3 konfigurierbare Widgets für das TYPO3-Dashboard bereit:

WidgetInhalt
SeitenaufrufePageviews über Zeit als Verlaufsgrafik
Top-SeitenMeistbesuchte Seiten mit Aufrufzahlen
Referrer-QuellenWoher kommen die Besucher (direkt, Google, Social, …)
Browser/GeräteAufschlüsselung nach Browser und Gerätetyp

Jedes Widget ist eigenständig und lässt sich unabhängig zum TYPO3-Dashboard-Layout hinzufügen. Ohne typo3/cms-dashboard ist das Backend-Modul weiterhin vollständig verfügbar.

Installation und Konfiguration

Installation

 

composer require moselwal/fa4t3

 

Voraussetzungen: PHP 8.5+ · TYPO3 14.x · Fathom-Analytics-Account mit API-Key

Konfiguration

  1. API-Key im Fathom-Dashboard generieren
  2. Extension Configuration im TYPO3-Backend setzen
  3. Site-ID für Frontend-Tracking in der Site-Config hinterlegen (optional)

Site-Config-Integration

 

# config/sites/main/config.yaml
fa4t3ApiKey: '%secret(FA4T3_API_KEY)%'
fa4t3Password: '%secret(FA4T3_PASSWORD)%'

 

Der %secret()%-Platzhalter wird von moselwal/secret-resolver zur Laufzeit aufgelöst — empfohlen für Produktivumgebungen mit Docker Secrets oder Vault.

Optionale Abhängigkeiten

PaketTypZweck
typo3/cms-dashboardOptionalDashboard-Widget-Support
moselwal/secret-resolverOptionalSichere API-Key-Auflösung

Architektur

fa4t3 folgt TYPO3s Standard-Extension-Struktur mit klar getrennten Schichten:

 

Classes/
├── Controller/      # Backend-Modul-Controller
├── Domain/          # Models und Repositories
├── Exception/       # Domain-spezifische Exceptions
├── Middleware/      # Frontend-Tracking-Script-Inject
├── Service/         # Fathom-API-Client und Datendienste
└── Widgets/         # TYPO3-Dashboard-Widgets

 

Der Service-Layer kapselt die Fathom-API-Kommunikation und nutzt TYPO3s Caching Framework — API-Antworten werden gecacht, sodass wiederholte Backend-Aufrufe keine zusätzlichen API-Requests auslösen. Nach einer Änderung im Fathom-Dashboard genügt vendor/bin/typo3 cache:flush.

Die Middleware injiziert den Fathom-Tracking-Script in alle Frontend-Responses — ohne TypoScript, ohne PAGE-Objekt-Anpassung. Die Site-ID kommt aus der TYPO3-Site-Config.

Secrets sicher verwalten

Für Produktivumgebungen empfehlen wir moselwal/secret-resolver statt Plain-Text-API-Keys in der Site-Config:

 

# config/sites/main/config.yaml
fa4t3ApiKey: '%secret(FA4T3_API_KEY)%'
fa4t3Password: '%secret(FA4T3_PASSWORD)%'

 

secret-resolver löst den Platzhalter zur Laufzeit auf — cascading aus FA4T3_API_KEY_FILE-Env (Dateipfad), dann /run/secrets/fa4t3_api_key-Mount. Für HashiCorp Vault oder AWS Secrets Manager als erweiterte Provider: %secret(vault:kv-v2/fa4t3.apiKey)%.

Warum das besser ist als plain Env-Variablen: Env-Vars sind im Prozess sichtbar, landen in phpinfo()-Ausgaben und CI/CD-Logs. secret-resolver liest Werte on-demand aus verschlüsselten Quellen — nie global im Prozessumfeld.

Packagist

composer require moselwal/fa4t3

Paket auf Packagist →
Packagist

GitHub

Quellcode, Issues und Changelogs. GPL-2.0-or-later.

Auf GitHub ansehen →
GitHub

Analytics datenschutzkonform einrichten?

fa4t3 ist Open Source und kompakt. Für Fathom-Onboarding, API-Key-Management mit secret-resolver oder eine vollständige TYPO3-Analytics-Strategie helfen wir gerne.

Setzen wir ein bei …

Wir setzen fa4t3 auf unseren eigenen Seiten ein – und bei Kunden, die ebenfalls Fathom Analytics nutzen. So entfällt das Cookie-Banner vollständig, und wir sehen dennoch, welche Inhalte wirklich ankommen.