Fathom Analytics unter Joomla: wohin die eine Zeile gehört
Fathom Analytics liefert ein Skript-Tag. Das ist die komplette Integration.
Kein Tag Manager, keine Datenströme, keine Property einzurichten, keine Ereignisse zu definieren. Eine Zeile, und das Dashboard füllt sich.
Was die Lage bei Joomla fast komisch macht. Fathom hat keine Joomla-Erweiterung. Es hat ein WordPress-Plugin, eine Anleitung für Squarespace, eine für Webflow, eine für Ghost und eine Shopify-App. Joomla bekommt einen Absatz, der dir sagt, du sollst das Skript in dein Template einfügen.
Dieser Absatz ist der Anfang des Problems, denn „füg es in dein Template ein" ist bei Joomla ein Rat mit einer Falltür darunter.
Keine Zeit zum Lesen?
Registriere dich, füge zwei Zeilen Code ein und sieh deinen echten Traffic ohne Cookie-Banner. Keine Kreditkarte, in Minuten live.
Kostenloses Konto anlegenDie Falltür
Joomla-Templates sind Software, die aktualisiert wird.
Cassiopeia kommt mit dem Joomla-Kern, also wird es aktualisiert, wenn Joomla aktualisiert wird. Kommerzielle Templates der großen Anbieter bekommen mehrmals im Jahr Updates. Was auch immer du im Template-Verzeichnis bearbeitet hast, wird durch das ersetzt, was der Anbieter ausgeliefert hat.
Dein Skript geht mit.
Nichts warnt dich. Joomlas Update-Vorgang vergleicht deine Template-Dateien nicht und fragt nicht, ob du diese Zeile behalten wolltest. Er schreibt die neue Version über die alte und meldet Erfolg.
Der Ablauf sieht also so aus. Du fügst das Skript im März ein. Es funktioniert. Du aktualisierst Joomla im Juni an einem Dienstagabend, weil es ein Sicherheitsupdate gibt. Das Skript ist am Dienstagabend weg. Du öffnest Fathom Ende Juli, siehst die Kurve abstürzen und verbringst eine Stunde mit der Annahme, dein Traffic sei eingebrochen.
Man nimmt das hin, weil der Gewinn echt ist. Messung, die kein Cookie-Banner braucht.
Warum die übliche Lösung hier nicht greift
Joomla hat Template-Overrides, also genau den Mechanismus, der für dieses Problem gebaut wurde. Du kopierst ein Layout in das html-Verzeichnis deines Templates, Joomla benutzt deine Kopie statt des Originals, und Updates fassen sie nicht an.
Overrides decken Layouts von Komponenten und Modulen ab. Sie decken nicht die index.php des Templates selbst ab, und genau dort steht dein schließendes Body-Tag.
Du kannst das ganze Template in ein Child-Template abspalten, was Updates tatsächlich übersteht. Dann pflegst du einen Template-Fork, dessen einzige Änderung eine Zeile JavaScript ist, und darfst ihn jedes Mal neu zusammenführen, wenn sich das Eltern-Template ändert.
Das ist eine Menge Maschinerie für ein Skript-Tag.
„Vollkommenheit scheint nicht dann erreicht zu sein, wenn es nichts mehr hinzuzufügen gibt, sondern wenn man nichts mehr weglassen kann."
Antoine de Saint-Exupéry, in Terre des Hommes (1939)
Fathom hat das ernst genommen und ein Analytics-Werkzeug gebaut, in dem fast nichts drin ist. Und dann zwingt Joomla dich, einen Template-Fork zu pflegen, um es unterzubringen. Irgendwo dazwischen ist die Einfachheit verloren gegangen.
Der Weg über ein eigenes Modul, und der Filter, der es frisst
Der andere übliche Vorschlag ist ein eigenes HTML-Modul. Anlegen, Skript einfügen, an einer Position veröffentlichen, allen Menüeinträgen zuweisen.
Es funktioniert, bis es das nicht mehr tut, aus zwei Gründen.
Die Position muss überall ausgegeben werden. Die meisten Template-Positionen werden das nicht. Debug-Positionen kommen nah heran, Footer-Positionen erscheinen meist auf jeder Seite, aber nicht immer, und eine Fehlerseite oder eine reine Komponentenansicht gibt oft gar keine Module aus. Jede Seite, die die Position überspringt, ist eine Seite, die du nicht misst, und die Lücke kannst du aus deiner eigenen Statistik heraus nicht sehen.
Joomlas Textfilter entfernt Skript-Tags. Die globale Konfiguration setzt einen Filter pro Benutzergruppe. Super User stehen standardmäßig auf Keine Filterung, also klappt dein Einfügen. Alle anderen bekommen eine Sperrliste, die <script> beim Speichern entfernt.
Der zweite Punkt ist wirklich fies, weil er verzögert und lautlos zuschlägt. Du fügst es als Super User ein, es läuft monatelang, dann öffnet jemand mit Administrator-Konto das Modul, um einen Tippfehler zu korrigieren, drückt Speichern, und Joomla löscht das Skript stillschweigend. Keine Warnung, kein Fehler, kein Eintrag in einem Protokoll, in das du schaust.
Was du am Ende auch einfügst, es geht um die fünf Minuten pro Woche, die du mit Lesen verbringst.
Was tatsächlich funktioniert
Ein System-Plugin.
Nicht weil Plugins gerade modern sind, sondern wegen der Stelle, an der sie laufen. Ein System-Plugin kann die fertige Seite bearbeiten, nachdem das Template seine Arbeit getan hat. Es steckt also nicht im Template, hängt nicht von einer Position ab, läuft nicht durch den Textfilter und interessiert sich nicht dafür, wie dein Template aussieht.
Template-Updates können es nicht anfassen. Änderungen an Positionen können es nicht kaputt machen. Es läuft auf jeder Frontend-Seite, auch auf denen, die überhaupt keine Module ausgeben.
Wenn du unbedingt Fathom willst, ist das die Form, nach der du im Verzeichnis suchst: eine gepflegte Erweiterung, die allgemein Code einfügt. Prüfe vor der Installation das Datum der letzten Aktualisierung und die unterstützten Joomla-Versionen, denn in der Analytics-Kategorie stehen viele Erweiterungen, die 2019 stehen geblieben sind.
Was Fathom kostet
Fathom startet bei etwa 15 US-Dollar im Monat für 100.000 Seitenaufrufe. Es gibt eine Testphase und keinen dauerhaft kostenlosen Tarif.
Es ist gute Software und die Leute dahinter meinen es ernst mit dem Datenschutz. Es ist auch ein Abo für etwas, wofür eine kleine Website vernünftigerweise nichts zahlen möchte, und das ist der häufigste Grund, warum Leute bei GA4 bleiben, obwohl sie jede Minute davon unangenehm finden.
Wo StatJolt hineinpasst
Dieselbe Philosophie der einen Zeile, nur mit dem Joomla-Teil tatsächlich gebaut.
Das Joomla-Plugin ist genau das oben beschriebene System-Plugin. Du fügst deinen Code in ein einziges Feld in den Plugin-Einstellungen ein. Es schreibt den Code in die fertige Seite, vor das schließende Body-Tag, auf jeder Frontend-Seite, unabhängig von Template, Position oder Benutzergruppe. Aktualisiere Joomla, so oft du willst. Nichts von dem, was du eingerichtet hast, steckt im Template.
Es arbeitet ohne Cookies, also ohne Banner, und sammelt keine personenbezogenen Daten. In deine Joomla-Datenbank schreibt es nichts außer seinen eigenen Einstellungen.
Bis 2027 kostet es 0 Euro bei jedem Trafficvolumen, danach bleibt es für Seiten mit wenig Traffic kostenlos. Der Preis ist ein kleines Badge auf deiner Seite, und du entscheidest, wo es sitzt oder ob du es ausblendest.
Core Web Vitals, Funnels, Nutzerpfade und die Meldung von JavaScript-Fehlern sind enthalten. Minimal muss nicht dünn bedeuten.
Das Wichtigste in drei Sätzen
Fathoms Skript ist eine Zeile und es zu Joomla hinzuzufügen ist wirklich einfach. Setz es nur nicht in dein Template, denn dein Template ist Software, die ersetzt wird.
Setz es auch nicht in ein eigenes HTML-Modul, es sei denn, du bist sicher, dass die Position auf jeder Seite ausgegeben wird, und du nimmst in Kauf, dass der nächste Nicht-Super-User beim Speichern dieses Moduls das Skript löscht.
Nimm ein System-Plugin. Das ist die einzige Methode bei Joomla, bei der das, was du im März eingerichtet hast, im Dezember noch da ist.
Ersetze GA4 in 2 Minuten
Du fügst nur den Code ein und siehst, wie viel klarer es wird. Keine Cookies, kein Banner, kein Consent-Tool. 0 EUR bis 2027, bei beliebigem Traffic.
Oder es bleibt beim anderen Weg: ein Consent-Tool pflegen, mit modellierten Daten arbeiten und jeden Monat eine halbe Stunde in Berichten suchen.
Kostenloses Konto anlegen