Swetrix-Analyse statt Google

Micha | 10.12.2022

Einführung

Google-Analytics

Gegen die Verwendung von Google-Analytics spricht einiges, allen voran aber, dass das Ganze nicht konform zur DSGVO eingebaut und benutzt werden kann. Google sammelt einfach zuviele Informationen und es ist nicht steuerbar, welche das sein sollen. Insbesondere eine gewissenhafte Anonymisierung, darum geht es ja hier, ist scheinbar nicht machbar. Abhilfe können Cookie-Banner schaffen, mit Hilfe derer man sich alle möglichen Erlaubnisse einholt, jedoch will man das nicht wirklich. Mich nerven diese Banner und so will ich sie nicht auch noch selbst auf meiner Seite haben.

Swetrix

Die Google-Suche nach Alternativen zu Google-Analytics listet sehr viele Ergebnisse und selbst die Filterung auf europäische Angebote sowie DSGVO-Konformität führt immer noch zu etlichen Angeboten. Meine Kriterien waren und sind:

  • Ich möchte die Statistik nicht selbst hosten und warten.
  • Der Service soll in Deutschland gehostet sein.
  • Die Analysen sollen keine personenbezogenen Daten speichern.
  • Es soll transparent sein, welche Daten erhoben werden.
  • Ich möchte keine Cookie-Banner und ähnliches.
  • Die Performance soll nicht massiv leiden.
  • Es muss leicht in das Hugo-Vorgehen der statischen html-Seitenerstellung integrierbar sein.
  • Es soll für meine geringen Zugriffzahlen umsonst sein.

Näher angesehen habe ich mir: Trackboxx, Friendly, Piwik, 66analytics, Splitbee, Counter sowie Swetrix, was letztlich meinen kleinen Vergleichswettbewerb gewonnen hat.

Verwendung mit Hugo

Die Benutzung unter Hugo ist wirklich sehr einfach.

  1. Erstellen eines Accounts bei Swetrix.
  2. Anlegen eines Projektes (in meinem Fall ‘Homepage’), für das man eine ID und ein paar Zeilen Script-Code für die eigenen html-Seite bekommt.
  3. Einbau des Codes und Veröffentlichung.
  4. Test und Nachverfolgung im Statisik-Dashboard bei Swetrix.

Implementierung

Für eine saubere, praktische Implementierung bin ich wie folgt vorgegangen. Zunächst habe ich im Layout-Bereich der Seite (Theme) in den sections eine neue kleine html-Datei mit Namen swetrix_analytics erstellt, die den eigentliche Code enthält. Den Code habe ich noch etwas eingepackt, um ihn einfacher ein- oder auszuschalten zu können.

    {{- with .Site.Params.swetrixAnalytics -}}
    <script src="https://swetrix.org/swetrix.js" defer></script>
    <script>
      document.addEventListener('DOMContentLoaded', function() {
        swetrix.init('{{ . }}')
        swetrix.trackViews()
      })
    </script>
    <noscript>
      <img
        src="https://api.swetrix.com/log/noscript?pid={{ . }}"
        alt=""
        referrerpolicy="no-referrer-when-downgrade"
      />
    </noscript>
    {{- end -}}

Die äußere with-Klammer hat zwei Vorteile. Der Codeblock wird nur dann erzeugt bzw. verwendet, wenn der Parameter swetrixAnalytics definiert und gefüllt ist. Weiterhin kann an allen Stellen, wo die ID benötigt wird, der Platzhalter {{ . }} verwendet werden.

Der Parameter wird im globalen config.yaml neben allen anderen Parametern vereinbart. Dort ist er an einer einzigen Stelle mit der ID bestückt und kann zentral kommentiert werden, was die ganze Analyse ausschaltet.

   :
params:
  swetrixAnalytics: "<dieSwetrixID>"  
   :

Nun muss die obige html-Datei nur noch im oder in den Hugoo-Templates aufgerufen werden. Dazu an der richtigen Stelle ("Put this at the end of the tag") folgendes einfügen, in meinem Fall ist das die Vorlage baseof.html. Achtung: Ich verwende für die About-Seite eine andere Vorlage, dort muss der Aufruf natürlich ebenso plaziert werden.

   :
        {{- partial "sections/swetrix_analytics.html" . -}}
    </body>
   :

Fertig :-)