Google Analytics API – Aktuelle Besucherzahlen auf dem Raspberry PI

Heute hat mich Jörg von meintechblog.de gefragt, wie er denn am besten einige Daten über die Google Analytics API abrufen könnte. Gewünscht sind

  • aktuelle Besucherzahl (live)
  • Seitenzugriffe des aktuellen und des letzten Monats

Dem nehme ich mich doch gerne an und mache direkt einmal einen Blog-Post daraus.

Grundlage für den Zugriff auf eine GA-Property per API ist ein sogenannter Service-Account. Dieser bekommt dann Zugriff auf die einzelnen Properties und kann von dort dann auch Daten über die API abrufen. Klingt erstmal einfach, oder?

Service-Account anlegen

Dazu geht man als erstes in die Developer-Console und legt ein neues Projekt an: console.developers.google.com – Mit einem Klick auf „Zu den Anmeldedaten“ geht es weiter. Danach muss ein neuer „Dienstkontoschlüssel“ erstellt werden, da wir von einem Sever auf einen anderen Server zugreifen möchten. OAuth kommt hier nicht in Frage, da diese Methode eher für eigene Web-Applikationen gedacht ist, welche mehrere Benutzer verwaltet und man die Properties noch nicht kennt, welche verwaltet werden soll.

GoogleAPI-Dienstkontoschluessel

Natürlich muss ein neues Dienstkonto erstellt werden (im Dropdown). Dann wird ein Name vergeben und als Schlüsseltyp wird „P12“ gewählt.

Nach einem Klick auf „Erstellen“ wird der Schlüssel automatisch heruntergeladen und ein Passwort eingeblendet. Dieses Passwort muss nun unbedingt notiert werden, da man später nicht mehr an das Passwort dran kommen kann. So richtig glaube ich das aber nicht, immerhin ist mein Passwort gerade „notasecret“. Also wenig kreativ.

Nach dem Schließen des PopUps landet man auf der Übersicht der Dienstkonten. Nun klickt man einfach oben rechts auf „Dienstkonten verwalten“ um die Mailadresse des neuen Kontos zu erfahren.

GoogleAPI-Dienstkontenverwaltung

Analytics konfigurieren

Weiter geht es in Google Analytics.

Unter „Verwalten“ wählt man die Seite, welche man über die API auswerten möchte. Dann geht man unter „Nutzerverwaltung“ und fügt die Email-Adresse des Dienstkontos ein. Als Berechtigung reicht „Lesen und Analysieren“ in diesem Fall völlig aus.

Als nächstes brauchen wir noch die ID einer Datensicht, welche wir auswerten möchten. Dazu gehen wir auch unter „Verwalten“, wählen die Datensicht ganz rechts im Dropdown aus und klicken auf „Einstellungen der Datenansicht“.

GoogleAPI-Analytics-Datenansicht

Diese ID wird kopiert!

Das wars auch schon mit diesem Teil – denkbar einfach! Jetzt wird programmiert.

Daten mit PHP auslesen

Jetzt geht es auf dem Raspberry Pi weiter!

Um das entsprechende Google-GitHub-Repo zu klonen, muss „git“ installiert sein. Wie das für Euer System geht, kann man fix über Google erfahren.

Nun legen wir im neuen Verzeichnis „google-api-php-client“ eine neue Datei namens „raspberry.php“ an. Außerdem wird die zuvor heruntergeladene p12-Datei in das gleiche Verzeichnis kopiert. Folgender Inhalt wird dann in die raspberry.php kopiert:

Nun müssen noch die ersten drei Parameter im Script durch die gesammelten Informationen im Blog-Beitrag ersetzt werden. Was genau wie gefiltert werden kann, findet man im „Dimensions & Metrics Explorer“ von Google.

Für die Echtzeitdaten sind andere Informationen abrufbar.

Fertig! Was man nun mit diesen Daten anstellt, ist komplett Euch überlassen. Beispielsweise auf ein Raspberry-Pi Display schreiben.

Daten auf ein LCD-Display schreiben

Als erstes habe ich auf dem Raspberry wiringPi installiert und ein 16×2 LCD-Display wie hier dokumentiert angeschlossen (im 4-Bit-Modus).

Um die Daten nun auf ein Display zu schreiben, habe ich mir ein sehr einfaches C-Programm geschrieben:

Der erste Parameter wird in Zeile 1 geschrieben, und der zweite in Zeile 2. Ziemlich einfach also! Mein Display hat 16 Zeichen auf 2 Zeilen Platz. Kann Euer Display mehr, muss das Programm etwas angepasst werden.

Kompiliert wird mit:

Nun passe ich noch die letzten paar Zeilen meiner raspberry.php-Datei an, damit mein C-Programm gestartet wird:

Fertig! Natürlich müssen wir nun das PHP-Script mit sudo starten, da das C-Programm sonst nicht auf die GPIO-Pins zugreifen darf.

Nun könnte man zum Testen per watch alle 10 Sekunden das Script ausführen:

Fertig! Viel Spaß beim Nachbauen!

GoogleAPI-RaspberryPi

Über

Jahrgang 87, gelernter Softwareentwickler und fast ein Jahrzehnt Erfahrung im Bereich Web-Entwicklung mit PHP und Web-Design. Diese Eigenschaften machen mich zu einem geeigneten und geschätzten Ansprechpartner für die Umsetzung Ihres Projektes. Weiterhin bin ich seit Ende 2013 Magento Certified Developer.

2 Kommentare


  • Hahaha, du bist zu geil! 🙂
    Vielen lieben Dank für das geniale Howto, muss ich heute gleich mal nachbauen!

    Grüße
    Jörg

    • Gerne – viel Erfolg! Ist eigentlich alles echt einfach wenn man mit der API warm geworden ist. Nur das ganze Service-User-Thema könnte man doch noch etwas einfacher gestalten finde ich. Alles etwas verteilt.

Kommentar verfassen