Google Developers

Google Analytics: Datenausgabe im Frontend

Von am 08.12.2015

Motivation

Im Rahmen des Initialprojekts für Mobile Anwendungen habe ich mit “QR Live Stats” eine kleine Webapplikation erstellt, die Daten aus der Google Anylatics API im Frontend ausgibt. Ansich ist das keine Hexerei und mit relativ wenig Code umsetzbar – jedoch gibt es eine Menge Stolpersteine, die es zu überwinden gilt, bevor man zu dem gewünschten Ergebnis kommt. Da ich diese Erfahrung bereits gemacht habe, möchte ich mit diesem Blogeintrag meine Erfahrungen teilen, und hoffe dem einen oder anderen damit etwas Zeit zu ersparen.

Aller Anfang ist schwer

Wie so oft in der Welt der Webentwicklung, startete auch dieses Projekt mit einer Google Suche. Wenige Mausklicks später landetete ich in der sehr, und ich meine wirklich sehr umfangreichen Google Analytics API. Google Analytics API Startseite Der Umfang der API hat zur Folge, dass sich in dieser Informationen zu beinahe jedem Anwendungsfall finden – was gleichzeit sowohl ein Vor- als auch ein Nachteil ist. Wenn man genau weiß wonach man sucht, ist dies auf jedenfall ein Vorteil. Es gibt viele Codebeispiele, sogar in verschiedenen Programmiersprachen und jede Menge Referenzen allermöglicher Attribute, Werte, Einstellungen und was man sonst noch brauchen könnte. Wenn man jedoch keine Ahnung hat, was genau man sucht, und probiert über Stichwörter wie “frontendausgabe, php, javascript” zu einem Ergebnis zu kommen, ist man möglicherweise schon auf der Übersichtsseite der Google Analytics API verwirrt und muss mit einigen Stunden an Recherchearbeit rechnen. Da die vielen Themen auf die man dabei stoßen kann, bis man findet was man eigentlich braucht, nicht besonders spannend sind, lasse ich diesen Teil aus und komme weiter zu dem Punkt, in dem ich erkläre, was nun wirklich zu tun ist.

Vorraussetzungen

Zu allererst braucht man natürlich eine Website, von der die Daten kommen sollen und dafür natürlich auch den entsprechenden Analytics Code. Da dieser sich nicht vom “normalen” Code unterscheidet, den man sonst braucht, wenn man eine Seite tracken möchte, gehe ich hier nicht weiter darauf ein.
Zudem braucht man außerdem einen sogenannten Service Account um die Authentifizierung die normalerweise notwendig ist um ins Dashboard von Google Analytics zu gelangen, und sich die Daten anzeigen zu lassen, zu umgehen bzw. direkt am Server zu erledigen. Hierbei sind folgende Schritte notwendig:

  1. Eine Client ID in der Google Developers Console anlegen und die Emailadresse des neuen Service Accounts zum Google Analytics Account hinzufügen.
  2. Die PHP Client Library die für den Zugriff auf die API benötigt wird auf den Server kopieren.
  3. Das “key.p12” File, dass beim Erzeugen der Client ID generiert wurde, auf den Server kopieren.

Weitere Informationen dazu finden sich in der Google Anlytics API.

Umsetzung

Nun braucht man noch ein PHP File, in dem die Einbindung aller Ressourcen stattfindet. Ein Beispielfile dafür stellt Google ebenfalls in der API (hier) bereit. Wenn man nun noch die Pfade für die PHP API und das Keyfile richtig setzt, und zudem die Mailadresse des Serviceaccounts einträgt, sollte an dieser Stelle die Grundfunktionalität gegeben sein.
Wer jetzt diesen Error bekommt “A client error occurred: Could not create storage directory” der ist nicht der Erste. Bei Stackoverflow habe ich auch hierfür eine Lösung gefunden:

$config = new Google_Config();
$config->setClassConfig('Google_Cache_File', array('directory' => '../tmp/cache'));
// Here I set a relative folder to avoid pb on permissions to a folder like /tmp that is not permitted on my mutualised host
$client = new Google_Client($config);
// And then,  you pass the config for your GoogleClient

Mit diesem Snippet sollte nun alles funktionieren.

Feintuning

Wenn man den Beispielcode aus der API verwendet, werden alle Sessions der letzten 7 Tage angezeigt. Wenn man andere Daten auslesen beziehungsweise anzeigen möchte, kann man die Parameter in der getResults Function entsprechend anpassen. Im Dimensions & Metrics Explorer gibt es dazu eine ebenfalls sehr umfangreiche Dokumentation der möglichen Werte. Zudem können auch diverser Filter verwendet werden. Ebenfalls sehr hilfreich ist hierbei der Query Explorer, mit Hilfe dessen man die Querys testen kann, bevor ma sie auf den eigenen Code anwendet.

The comments are closed.