Logo

Google Universal Analytics Bericht Backup

Google Analytics Universal Daten sichern - Umstieg auf GA4

Mit meinem Docker Container ga-report-downloader kannst du Berichte aus deinem Google Universal Analytics Konto herunterladen und für die spätere Verwendung speichern. Ab dem 1. Juli 2024 wirst du laut Google keinen Zugriff mehr auf deine Berichte haben.

Wenn dich genauer interessiert, warum du jetzt ein Backup erstellen solltest, empfehle ich dir meinen Artikel “Umstieg auf Google Analytics 4: Warum und wie Du Deine Google Universal Analytics Daten sicherst”.

Betrieb

Ich rate dir davon ab, den Docker Container auf einem öffentlich zugänglichen Server zu betreiben. Er verfügt über kein System für ein Login oder ähnliches. Wer auf Netzwerkebene Zugriff auf dein System hat, kann auch das Webinterface aufrufen. Zur Speicherung der Daten wird eine MySQL Datenbank benötigt.

Ich selbst verwende es auf meinem Linux Laptop, auf dem ich auch arbeite.

Docker Compose

Am einfachsten ist der Start des Containers über docker compose. Am besten legst du dir einen neuen Ordner an, in dem du die folgende docker-compose.yaml anlegst:

Wie dir vermutlich auffällt, werden drei Verzeichnisse als Volume in die Container eingehängt.

  1. ./db => Dort wird die Datenbank abgelegt

  2. ./data => Ablageort der Berichte

  3. ./oauth => Daten für die Authentifizierung gegenüber der Google API

OAuth Verbindung mit Google einrichten

Um Daten von der Google API abrufen zu können, muss eine Verbindung über OAuth hergestellt werden. Dazu musst du die folgenden Schritte befolgen:

APIs aktivieren

Unter folgendem Link rufst du die Google Cloud Console auf. Achte zunächst darauf, dass oben ein Projekt ausgewählt ist oder erstelle ggf. ein neues.

https://console.cloud.google.com/apis/dashboard?hl=de

Über den Button “APIS und Dienste aktivieren” gelangst du zu einer Suchmaske, über die du die folgenden APIs suchst und aktivierst:

OAuth-Zustimmungsbildschirm

Der Zustimmungsbildschirm ist die Seite, die angezeigt wird, wenn jemand sich über deinen späteren Client mit seinem Google Konto anmelden möchte.

Prüfe zunächst, ob unter der URL https://console.cloud.google.com/apis/credentials/consent bereits ein Zustimmungsbildschirm angelegt ist. Sollte das nicht der Fall sein, kannst du dort direkt einen neuen erstellen. Wähle je nach Anwendungsfall als Typ intern oder extern. Solltest du extern verwenden, reicht es für unsere Fälle, wenn du im Testmodus bleibst. Eine Veröffentlichung ist nicht notwendig. In diesem Fall musst du lediglich die E-Mail Adresse, die später für den Login verwendet werden soll, als Tester hinterlegen.

Anmeldedaten erstellen

Unter https://console.cloud.google.com/apis/credentials werden wir nun Anmeldedaten erstellen. Folge dazu den folgenden Schritten:

  1. Klicke auf “+ ANMELDEDATEN ERSTELLEN” und wähle “OAuth-Client-ID”

  2. Wähle als Anwendungstyp Webanwendung

  3. Vergib einen Namen für deine Anmeldedaten (kannst du frei wählen)

  4. Unter “Autorisierte Weiterleitungs-URIs” fügst du folgende URL hinzu:

    1. http://localhost:3000/google-oauth/callback

  5. Klicke auf “ERSTELLEN”

  6. In dem sich öffnenden Modal klickst du auf "JSON HERUNTERLADEN"

  7. Die Json Datei legst du jetzt in deinem Projektverzeichnis in den Ordner ./oauth und benenne  sie nach "oauth2.keys.json" um.

Starten des Containers

Bevor du deine Container startest, müssen wir noch die Datenbank initialisieren. Führe dazu das folgende Kommando aus:

docker compose run ga-report-downloader yarn prisma db push

Im Anschluss startest du beide Container mit

docker compose up -d

Anmeldung

Rufst du jetzt deinen Browser unter http://localhost:3000 auf, solltest du eine Weiterleitung zu Google erhalten. Hier meldest du dich mit einem Google Konto an, das Zugriff auf die gewünschten Daten in Google Universal Analytics hat. Nach erfolgreicher Anmeldung landest du wieder auf deiner Weboberfläche und kannst dort bBeginnen Regionen und Berichte zu pflegen und dein Backup starten.

Solltest du das Google Konto wechseln wollen, kannst du die Datei token.json im Order oauth löschen und anschließend die Container neu starten. Es erfolgt erneut eine Weiterleitung. Beachte aber, dass nur ein Konto zur Zeit möglich ist. Solltest du aus mehreren Konten gleichzeitig laden wollen, benötigst du mehrere Instanzen.