08. Jun 2015 04:06
Keine Kommentare

Google Analytics API V3 mit PHP und Dienstkonto

Empfehlungssystem mit Google Analytics API und PHP
Empfehlungssystem mit Google Analytics API und PHP
Google hat sich überlegt kurzerhand seine alte API von Google Analytics samt Client Login einzustampfen. Das hat kurzerhand dazu geführt, dass mein einfaches Empfehlungssystem nach dem Motto "Nutzer, die diesen Artikel gelesen haben, haben auch diese gelesen" nicht mehr funktionierte. Schauen wir uns aber erst einmal an, was genau passiert ist. In meinem Artikel "Google Analytics API für Amazon-ähnliche Vorschläge" habe ich beschrieben, wie man ein einfaches Empfehlungssystem (engl. recommender system) mittels PHP und der Google Analytics API umsetzt. Zum Zeitpunkt des Verfassens damals verwendete ich eine ältere Google Analytics API mit Client Login. Client Login bedeutet, dass für das Anmelden an der Google Analytics API die eigenen Benutzerdaten - Google Passwort und Benutzername - verwendet wurden. Google hat die Anmeldung an der API mittels Client Login aus Sicherheitsgründen mittlerweile jedoch eingestellt und auch die API befindet sich nun in Version 3. In diesem Artikel beschreibe ich, wie man mit der Google Analytics API V3, PHP und einem Google API Servicekonto (engl. Service Account) Daten, auch dynamisch segmentiert, abfragen kann.

Einrichten des Google Analytics API Zugriffs

Damit man überhaupt erst auf die Google Analytics API zugreifen kann, sind ein paar Griffe in verschiedene System notwendig. Diese drei Schritten müssen grundlegend ausgeführt werden bevor man die ersten Zeilen Code ausführen kann.

  • Herunterladen der Google PHP Client Library mittels git client und dem Befehl "git clone https://github.com/google/google-api-php-client/tree/master/src/Google" und PHP Quelldateien in den eigenen Projektordner befördern

  • Projekt in der Google API Konsole anlegen und die Google Analytics API aktiviere sowie ein Dienstkonto für OAuth anlegen - links im Menü unter "APIs und Authentifizierung" und dann "Zugangsdaten"

Dienstkonto in der Google API Konsole

  • P12-Schlüssel generieren, herunterladen und ebenfalls ins Projekt legen. Bitte geschützt, falls es sich um eine Webanwendung handelt. Dieser wird später für den Zugriff benötigt.

  • Die E-Mail Adresse des Dienstkontos aus der API Konsole kopieren und innerhalb von Google Analytics in der Nutzerverwaltung als Benutzer anlegen (Login in Analytics, danach auf Verwalten und Nutzerverwaltung)

Eintragen der E-Mail Adresse des Dienstkontos in Google Analytics

Wer die API der ersten Version kennt, merkt schnell dass es sich hier eher um ein aufwendiges Verfahren für die einfache Einrichtung handelt. Damit sind wir nun aber fertig und können endlich mit dem Code beginnen.

Google Analytics API Klasse laden und initialisieren

Das Laden der Google API Klassen geht über ein Autoload-Skript relativ einfach, hat aber auch den Nachteil dass man absolut alle Klassen auf einmal lädt. Jede einzeln zu laden geht auch, ist aber extrem zeitaufwendig und nicht empfohlen.

Damit hat man letztlich sämtliche Google API Klassen mit PHP geladen und kann auch sofort darauf zugreifen. In folgendem Beispiel findet die Initialisierung statt und auch die Anmeldung bzw. das Abfrufen des API Tokens.

Als Application Name definiert man den Namen, den das Projekt in der API Konsole auch hat. Die Credentials sind zum einen die E-Mail Adresse des Dienstkontos und die P12 Datei. Ebenfalls genauso wie aus der API Konsole. Die Client Id wird beim Aufruf unten gesetzt. Durch "refreshTokenWithAssertion" wird der Token erstmalig aufgerufen. Anschließend wird die Instanz der Google Analytics Klasse erzeugt. Die Google Analytics Klasse kann man nun zum Abfragen von Berichten verwenden. 

Einfachen Bericht über die Google Analytics API abrufen

Um einen einfachen Bericht abzurufen, können wir nun folgende Methode der Klasse aufrufen. Der Bericht fragt für die Verwendung auf der Homepage die meist aufgerufenen Artikel ab und sortiert diese absteigend. Also URLs absteigend sortiert nach PageViews bzw. zu Deutsch "Seitenaufrufen". Die Konstante PROFILE_ID definiert hier die Profil Id. Wie man die Profil Id findet, ist hier beschrieben: Google Analytics Profile Id finden. Alternativ kann man sie ebenfalls über die API abfragen.

Der erste Parameter der Get-Method ist also wie oben beschrieben die Profil Id der Website in Google Analytics. Parameter zwei und drei sind das Start- und End-Datum des abzufragenden Zeitraums. Anstelle von spezifischen Daten, wie hier angegeben, kann man auch Werte wie "today" oder "yesterday" angeben. Eine halbwegs passable, wenn auch lückenhafte Dokumentation von Google findet sich in "Hello Analytics API" in der Google Developer Dokumentation. Parameter vier gibt die Metrik an, die man abfragen möchte und in meinem Fall sind das PageViews. Die Google Dokumentation hat einen "Dimensions and Metrics Explorer" mit welchem man alle Metriken und Dimensionen durchforsten kann. Der Array mit dem Parametern gibt entsprechend auch die Dimensionen, die Sortierung sowie die maximale Anzahl der Ergebnisse an. Der Rückgabewert beinhaltet anschließend alle Berichtsdaten.

Bericht mit dynamischer Segmentierung generieren

Eine der Stärken von Google Analytics ist Segmentierung und die API enthält zudem die Funktionalität der dynamischen Segmentierung. Mit dieser Funktion kann man Berichte erstellen, die normalerweise aufgrund ihrer dynamik mehrere hundert Segmente erfordern würden. In nachfolgendem Bericht werden alle Seiten geladen, die von Nutzern aufgerufen wurden, die auch die angegebene Seite aufgerufen haben. Damit erzeuge ich mein Feature "Nutzer, die diese Seite angesehen haben, sahen auch folgende Seiten an". 

Man sieht im Beispiel den zusätzlichen Parameter "segment" und seine Definition. Hier wird einfach nur angegeben, dass das Segment die angegebene Seite besucht haben muss. Anschließend erhalten wir alle Seiten, die betreffende Nutzer aufgerufen haben. Man kann die Segmentierung für Targeting natürlich noch bedeutend weiter treiben.

Fazit zur Google Analytics API V3 mit PHP und Dienstkonto

Das Dienstkonto erhöht die Sicherheit des Google Kontos enorm, da man nicht mehr sein eigenes Passwort oder ein Pseudokonto verwenden muss. Zudem hat man flexiblere Handhabe bei der Nutzungsberechtigung des Dienstkontos. Gleichzeitig ist die Handhabung der API durch die Klassenbibliothek leichter und man muss sich nicht mehr mit dem XML Parsing befassen. Es lohnt sich durchaus auch auf die anderen APIs von Google Analytics sowie Google Dienste einen Blick zu werfen.

Bücher zum Thema „Google Analytics“

Die nachfolgenden Bücher behandeln das Thema "Google Analytics" und werden von Amazon empfohlen. Viele dieser Bücher habe ich selbst gelesen und teilweise auch zur Recherche für diesen Artikel genutzt.
32,00 €
Jetzt bestellen »
Google Analytics: Das umfassende Handbuch. Inkl. Search Console, AdWords, AdSense und Google Tag Manager
Markus Vollmert, Rheinwerk Computing
22,90 €
Jetzt bestellen »
Das Google Analytics-Buch
Cathrin Tusche, O'Reilly
28,41 €
Jetzt bestellen »
Google AdWords: Das umfassende Handbuch
Guido Pelzer, Rheinwerk Computing
24,90 €
Jetzt bestellen »
Google Analytics: Implementieren. Interpretieren. Profitieren.
Timo Aden, Carl Hanser Verlag GmbH & Co. KG

Diese Artikel könnten Dich auch interessieren

Besucher, die diesen Beitrag gelesen haben, haben sich auch die unten aufgeführten Beiträge angesehen. Schau' doch einfach mal in die Artikel rein.
1 Besucher haben auch das gelesen
1 Besucher haben auch das gelesen

Kommentare zum Thema „Google Analytics API V3 mit PHP und Dienstkonto“

Wenn Du möchtest, kannst Du hier Kommentare zum Thema hinterlassen und Dich mit anderen Nutzern austauschen. Damit Du kommentieren kannst, musst Du Dich nur anmelden und schon kann es losgehen.
Jetzt zum Kommentieren anmelden