Artikel vom 16. März 2008
Statistiken aus Google Analytics Accounts gesammelt an einer Stelle anzeigen
Google Analytics kennt fast jeder, nutzt fast jeder: Der nicht ganz zeitgemäße Funktionsumfang ist mit Konkurrenz zwar nicht vergleichbar, reicht für einen Nichtgeschäftsmann absolut aus und kostet keinen müden Cent. Werden also Zugriffe auf Webseiten von Google protokolliert und für eine spätere Analyse gespeichert, so kommt man nicht drumherum, die Startseite von Google Analytics regelmäßig zu besuchen, um an die Auswertungen der Daten ranzukommen.
Sind es aber mehr als 10 beobachtete Profile, so muss sich der Webseitenbetreiber mühsam durch die von Google aufbereiteten Berichte durchklicken, nur um die aktuelle Zahl der Besucher bzw. Seitenaufrufe in Erfahrung zu bringen. Berichte per E-Mail sind aus diesem Grund wertvoll. Alternativ die unten beschriebene Möglichkeit selbstdefinierte Profile aus eigenen oder fremden (Freigabe und Login vorausgesetzt) Google Analytics Accounts auf eine (Übersichts)Seite zu holen. Es ist in erster Linie zeitsparend, bequem und auf einen Blick überschaubar. Ausprobieren!
Voraussetzungen für korrekte Funktionsweise
Bei der vorgestellten Lösung handelt es sich um eine PHP-Bibliothek, die auf jedem geeigneten Server gänzlich kostenlos und unverbindlich installiert werden kann. Bei der Konfiguration der Software können mehrere IDs der abzufragenden Google Analytics Accounts hinterlegt werden, die auf der künftigen Übersichtsseite jeweils mit einem Chart in Form einer Grafik (Besucher und Seitenaufrufe der letzten 30 Tage) abgebildet werden. Aber auch andere Einstellungen wie Farbwerte und Größe der Diagramme stehen als anpassbare Variablen zur Verfügung.
Damit die Software fehlerfrei in Betrieb genommen werden kann, sind aufgelistete Punkte notwendig:
- Server mit PHP5- und cURL-Unterstützung
- Zugangsdaten zum Google Analytics Account (gerne nur mit Leserechten)
- IDs der gewünschten Google Analytics Accounts (dazu unten mehr)
- Optional: Cronjob für tägliche Updates der Reporte
Download der Software
Tool eingestellt, da Google die “alte API” unzugänglich gemacht hat
- Format: ZIP
- Größe: 19 kB
- Version: 0.5
Screenshot und Demo
» Ausschnitt der generierten Übersichtsseite als Grafik
Bedauerlicherweise kann keine öffentliche Demo zugänglich gemacht werden, da die Zugriffswerte meiner Projekte nicht public gestellt werden dürfen. Ich bitte um Verständnis.
Versionsverlauf
Version 0.5 vom 18.03.2009
- Ausgabe des Datums in der X-Achse durch den Zeitraum ersetzt, da platzsparender und somit übersichtlicher
Version 0.4 vom 18.07.2008
- Start- und Endwert für den Zeitraum. Als GET-Parameter oder Einstellung in der Konfigurationsdatei
Version 0.3 vom 04.04.2008
- Anpassung der internen Bericht-Bezeichnungen
- Erweiterung der Abfrage-Parameter
Version 0.2 vom 22.03.2008
- Einführung der Versionierung
- ChartType auf platzsparende Sparklines umgestellt
English translation
» Automatic translation of the installation guide
Installation der Skripte
Damit die Inbetriebnahme der All-in-One-Anwendung für Statistiken aus Google Analytics auch bei jedem Neuling klappt, folgt eine bebilderte und leicht verständliche Installationsanweisung.
Schritt 1 von 5
Die im ZIP-Format komprimierte PHP-Bibliothek auf die lokale Festplatte herunter laden und mit geeignetem Archivierungstool entpacken.

Dekomprimierung beherrscht jedes moderne Betriebssystem
Schritt 2 von 5
Zuerst soll die Applikation an eigene Bedürfnisse angepasst werden. Das geschieht in der Konfigurationsdatei config.php, welche im Unterverzeichnis config/ vorzufinden ist und im Texteditor geöffnet wird.

Config: Bedeutender Ordner
Schritt 3 von 5
Bleiben wir bei config.php: Im Bereich User Settings werden nun Benutzereinstellungen vorgenommen. Die E-Mail-Adresse und das dazugehörige Passwort für den Google Analytics Account werden im login_data-Array gespeichert. Die kommaseparierten IDs der abzurufenden Accounts kommen in account_ids rein (Beispiel-IDs 123456789 und 987654321 müssen selbstverständlich entfernt werden). Weitere Optionen: Farben als HEX-Werte, Breite und Höhe der Grafiken in Pixeln.
Optional kann im Array chart_date auch das Start- und Enddatum der Statistik definiert werden. Das Format ist 20071231, also JahrMonatTag. Das Enddatum ist nicht zwingend notwendig und kann leer bleiben. Zusätzlich können diese Werte dynamisch beim Aufruf der update.php als Parameter übergeben werden. Mehr Infos darüber weiter unten.
Die wichtigste Frage an dieser Stelle: Wie ermittelt man die ID eines bestimmten Google Analytics Accounts? Der einzige, mir bekannte Weg ist in Google Analytics auf den Link “Berichte anzeigen” zu klicken und anschliessend die ID des aufgerufenen Accounts aus der Adresszeile des Browsers “herauszufischen”. Achtung: Es ist der Wert des id-Parameters, siehe Abbildung.

ID ist als Parameter an die URL angehängt
Schritt 4 von 5
Nach dem Abspeichern der config-Datei kann das gesamte Verzeichnis per FTP in die Hauptebene des Servers übertragen und mit Schreibrechten versehen werden. Das Skript ist soweit einsatzbereit.
update.php ist dafür da, um die Statistiken bei Google abzuholen und für eine Weiterverarbeitung auf dem Server zu sichern. Die Zwischenspeicherung der Rohdaten ist in diesem Fall sehr wichtig, da Google sich jeglichen Export der Reports notiert und sieht es überhaupt nicht gerne, wenn am Tag dutzende an Anfragen kommen und dadurch die Server des Riesen belasten.
Idealerweise wird ein Cronjob eingerichtet, welcher einmal morgens kurz nach 9 Uhr (denn genau um 9 Uhr aktualisiert Google seine Datenbanken mit gesammelten Zahlen) update.php aufruft und somit für die Generierung der XML-Dateien auf dem Server sorgt. Kommt ein Cronjob nicht in Frage, dann die Datei manuell im Browser starten und das Feedback des Skripts abwarten.
Wahlweise können zwei Parameter beim Aufruf der update.php mitgegeben werden, die den Zeitraum der Statistik manuell beeinflussen und somit steuern: http://www.domain.de/analytics/update.php?start_date=20080501&end_date=20080701. Der gewünschte Zeitraum kann ebenfalls in der Konfigurationsdatei eingestellt werden (siehe oben). Es ist zu beachten, dass die Zeitraumsteuerung per an die URL angehängte Parameter eine höhere Gewichtung hat und die Werte aus der config.php überschreibt.

Per FTP hochgeladene Elemente
Schritt 5 von 5
Wurden die Statistiken erfolgreich abgeholt und abgelegt, können diese nun visualisiert und nebeneinander dargestellt werden: http://www.domain.de/analytics/ ist die Übersichtseite mit eingelesenen Google Analytics Accounts und entsprechenden Berichten für Besucher und Seitenaufrufe aus dem letzten Monat. Die Diagramme sind wiederum mit Google Analytics verknüpft, so dass der Klick direkt ins Dashboard des jeweiligen Accounts springt.

Knapp und bündig: Statistikwerte auf einen Blick
Tipps am Rande
Es wird dringend empfohlen, das hochgeladene Verzeichnis mittels .htaccess gegen fremde Blicke zu schützen. Es macht ebenfalls Sinn, den Nutzer, dessen Zugangsdaten in der Konfigurationsdatei hinterlegt sind, nur mit Leserechten innerhalb von Google Analytics auszustatten. So kommt im schlimmsten Fall keiner an die Login-Daten eines Administrators.
Aktualisierung der Software
Auch diese Anwendung wird permanent weiterentwickelt. Erscheint eine frische Version des Codes, wird das Update im Versionsverlauf notiert und gleichzeitig als Kommentar bekanntgegeben.
[Der Autor] Sergej Müller ist enthusiastischer Software Engineer mit Schwerpunkten Webentwicklung und WordPress. Seit 2007 programmiert und vertreibt er wpSEO, das weltberühmte und patentierte SEO-Plugin für WordPress-Blogs.
Befreiphone oder Optimierung eines Artikels für das Keyword Befreiphone
The WordPress plugin wpSLEEP - Easy time control for parts of a post
50 Kommentare zum Artikel
Super Sache! Da hast Du Dir genau die Arbeit gemacht, vor der ich zurück geschreckt bin ;)
Interessant wäre noch eine Option die Google Chart Bilder in der update.php zu generieren und dann auch im data Ordner mit zu speichern.
So könnte man diese gezielter einbinden und nicht immer wieder neu laden.
Den Gedanken hatte ich auch am Anfang, dann aber zur Seite gelegt. Falls Nachfrage da ist, werde ich die Zwischenspeicherung für Bilder natürlich implementieren.
Das ist bestimmt eine tolle Sache. Hut ab vor solcher Entwicklungsarbeit und vielen Dank für das zur Verfügung stellen für die ganze SEO-Gemeinde.
Gerne, nicht die Rede Wert.
Hi, ist es auch möglich diese Funktion auch in WordPress einzubauen, also kannst du auch ein Plugin daraus machen??
Desweiteren ist dies auch für Google Adsense möglich?
Abend Paul.
Als WordPress-Plugin? Warum nicht, soll dann dort nur ein Diagramm für das laufende Blog (wenn ja, ich glaube dafür ein passendes Plugin gesehen zu haben) oder auch für weitere GA-Accounts abgebildet werden (also das, was auch die hier vorgestellte Anwendung tut: Daten aus mehreren Accounts sammeln)?
Genau, hab das Tool gerade betrachtet und wollte einen Artikel darüber schreiben, da kam mir einfach die Idee, warum nicht diese Werte bei WordPress im Adminbereich ausgeben für Analytics und Adsense.
Mfg
Heute habe ich winzige Aktualisierungen an der Software vorgenommen, nichts Weltbewegendes. Aber versprochen ist versprochen: Jeder Release wird in Form eines Kommentars begleitet, damit Gäste die Aktivität nachverfolgen und Beitrag-Abonnenten Up-To-Date bleiben können.
Mehr unter Versionsverlauf.
Merci,
das spart mir ne Menge arbeit. Sowas suchte ich schon seit langem. Setze mich doch gleich mal auf die Liste.
Mfg
Morgens um 9 ? Soweit ich weiß, sind Google-Analytics-Daten etwa drei Stunden alt und werden ständig aktualisiert …
Gruß
MaikD
Die vollständigen Auswertungen aus dem Tag davor stellt Google um 9 Uhr zur Verfügung. Das mit 3 Stunden Verspätung hast du sicherlich Recht, ich weiss jedoch nicht, ob es sich lohnt die Daten so oft am Tag abzurufen.
Okok. Ich habe verstanden :-) Einmal am Tag sollte ja auch reichen.
In letzten Tagen ist es mir aufgefallen, dass Google die Besucherdaten vom Vortag nicht gleich um 9 Uhr, sondern erst im Laufe des Tages zur Verfügung stellt. Das gilt nur für die Exports.
Seit heute gibt es in Google Analytics beachtliche Neuerungen, wie z.B. Zeitskala mit umschaltbaren Statistikwerten nach Tagen, Wochen und Monaten – das Update hat Google auch für interne Änderungen genutzt. So werden die Berichte anders angesprochen als zuvor und liefern ebenfalls andere Werte.
Das hat automatisch eine Auswirkung auf das obige Script, welches ich jetzt angepasst und auf Version 0.3 aufgefrischt habe. Ab sofort stimmen auch alle Werte in Diagrammen und stehen brav ab 9 Uhr morgens abholbereit.
Hallo. Danke erst einmal für dieser Tool. Hammer, genau das habe ich gesucht. Leider kommt bei mir folgende Fehlermeldung und ich weiß leider nicht wie ich das beheben kann:
Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity “…/analytics/data/1154581/PageviewsReport.xml” in …/analytics/inc/xml.class.php on line 20
Error by load file!
Einer einen Tipp? Danke im voraus.
Fisch
Hi Fisch.
Und kannst du bitte nachschauen, ob die Datei PageviewsReport.xml im Verzeichnis analytics/data/1154581/ auch angelegt wurde.
Hallo. Habe sie mal per Hand angelegt, jetzt kommt folgendes:
Warning: simplexml_load_file() [function.simplexml-load-file]: /var/www/…/html/…/analytics/data/…/PageviewsReport.xml:3: parser error : Start tag expected, ‘<’ not found in /var/www/…/html/…/analytics/inc/xml.class.php on line 20
Warning: simplexml_load_file() [function.simplexml-load-file]: in /var/www/…/html/…/analytics/inc/xml.class.php on line 20
Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in /var/www/…/html/…/analytics/inc/xml.class.php on line 20
Error by load file!
Nein, wenn sie nicht da war, dann hatte der Ordner keine Schreibrechte, um die Datei anzulegen.
die schreibrechte hatte ich auch schon im verdacht, habe aber mal alles testweise auf 777 gestellt und auch keine Änderung
Führst du auch das update.php-Script aus? Und als Erfolgsmeldung gibt es Reports for account id xxx saved.?
Wenn ich die update.php aufrufe komm leider auch ne Fehlermeldnug:
Fatal error: Call to undefined function curl_init() in /var/www/…/html/…/analytics/inc/curl.class.php on line 23
Aha, cURL auf dem Server nicht installiert. Schau mal oben unter Voraussetzungen für korrekte Funktionsweise
geile sache. super arbeit! hut ab!
haelst du es fuer moeglich die abfrage auch fuer definierte zeitraume zu machen. dem update script z.b. die info 01/02/2008 – 01/03/2008 mitzugeben fuer die erzeugung des xml’s?
Kann ich gerne beim nächsten Update berücksichtigen.
@rosp
Möchtest du den Zeitraum als Parameter an die für den Aufruf des Update-Scriptes zuständige URL anhängen oder lieber in der Config hinterlegen können?
mh. gute frage ….
als parameter fuer den url aufruf ist man flexibler. so ist es moeglich via zwei input feldern den von/bis zeitraum zu definieren. und dennoch zwei default parameter die aber durch die _post variablen ueberschrieben werden falls gesetzt.
default werte koennten sein: letzte woche, letzter monat die dynamisch beim update gesetzt werden.
haeltst du sowas fuer machbar?
Ja, kann ich machen. Hab jetzt grad aber mit wpSEO zu tun.
@rosp
Sorry, hat ein wenig gedauert bis ich die Zeit für die Anpassung gefunden habe. Nun ist es aber soweit, in der Version 0.4 kann der Zeitraum manuell gesteuert werden. Dafür werden Werte in der Config hinterlegt und/oder als Parameter übergeben.
Die Infos dazu sind oben in der Beschreibung an entsprechenden Stellen notiert.
Hallo! Ich habe ein Problem, bei mir wird folgender Fehler angezeigt beim aufruf der update.php:
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or ‘}’ in /www/htdocs/…/analytics/inc/curl.class.php on line 14
Curl ist enabled… Kann mir jemand helfen?
Mfg
DAs kann nicht sein, nutze die gleiche Datei aus dem Archiv. Hast du in die Datei auf dem Server reingeschaut, vielleicht ist da etwas bei der Übertragung kaputt gegangen?
Also die Dateien stimmen mit denen im Archiv überein… Ich habe die Zip-Datei heruntergeladen, entpackt, die config geändert und den ganzen ordner hochgeladen… wie muss der chmod denn genau sein?
Naja, an den Rechten kann es nicht liegen, da auf die Datei erfolgreich zugegriffen wird. Beim Parsen des Codes kommt es zum Fehler. Schreib mir doch eine E-Mail und hängt die Datei mit dem Fehler an – ich teste diese auf meiner Installation.
Danke für die sehr freundliche Hilfe von Sergej! Für alle die das selbe Problem haben wie ich: PHP5 ist nicht installiert bzw. aktiviert :-)
Hallo, hallo,
erst einmal ein großes Lob für die Mühe, die du dir da gemacht hast. Ich konnte zwar den Script so nicht nutzen, auf die Idee war ich aber überhaupt nicht gekommen. Sehr schön.
Ich hab jedoch eine Frage, die du vielleicht zu beantworten weißt. Wie sieht es aus mit der Lizenz oder dem Copyright. Keine Ahnung, was hier zieht. Ist es regel konform, die Daten aus Google Analytics in einem kommerziellen CMS für Kunden einzubinden?
Großen Dank jetzt schon mal für deine Hilfe.
Mit freundlichen Grüßen
Lennart Hildebrandt
@Lennart
Das war eben der 1.000 Kommentar hier im Bog – Gratulation ;)
Zu deiner Frage kann ich überhaupt nichts sagen, ich vermute aber, das soll eine Schwierigkeiten darstellen. Aber wirklich sicher bin ich mir da nicht.
Okay. Hatte geahnt, dass das nicht ganz einwandfrei funktionieren würde. Aber man hört ja nie auf zu hoffen. Habe inzwischen schon an ein Support-Team geschrieben, dass von Google empfohlen wird. Mal schauen, was die dazu sagen. Würde mir im jeden Fall sehr viel Arbeit ersparen.
Danke aber dennoch für deine Hilfe und für die Würdigung meines ungeahnten Timings … ;)
Super Sache, genau das hab ich für mich gesucht.
Mich nervt es, wenn ich mich immer extra einloggen muss :D
Danke
Update auf Version 0.5
Mit dem letzten Update des Analytics hat Google das Datumsformat der exportierten Daten verändert und den etwas längeren Wochentag dazu addiert. Dies hatte zufolge, dass die Datumsausgabe in den Statistikgrafiken durcheinander und absolut nicht mehr lesbar war.
Seit der Version 0.5 wird nun das Zeitfenster der Statistiken eingeblendet.
Auch von meiner Seite: eine Super Sache und danke schon mal! Werde es bald mal ausprobieren!
Für Leute mit mehreren bis vielen Projekten definitiv eine Erleichterung! :-)
hallo zusammen,
eine standard-lösung direkt über analytics gibt es nicht ?
der extra aufsatz ist recht aufwendig.
gruß
raimund
@Raimund Popp
Was ist an dem Script aufwendig? Einstellungen in die Conf-Datei eintragen schafft auch jedes Kind.
Eine klasse Sache, wenn ich es hinkriegen würde!
Wer kann mir dabei helfen?
Ich bekomme immer wieder diese Fehlermeldung und komme nicht weiter:
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or ‘}’ in /homepages/13/d71604278/htdocs/iraqpeoplecom/analytics/inc/chart.class.php on line 14
Danke schon mal!
Kami, hast du auch PHP5?
Hallo Sergej,
die Frage kann ich nicht direkt beantworten.
Mein Domain ist bei 1&1 und ich habe ein Paket mit FTP-Zugang, Mysquel, etc.
Auf deren Seite habe ich versucht herauszufinden, leider ohne Erfolg!
Gut zu wissen wäre:
normale Weise ist das Hauptverzeichnis das Hauptverzeichnis!
Wenn ich mich aber per FTP-Programm einlogge, sieht das Hauptverzeichnis so aus:
Jedes Domain, was ich bei 1&1 habe, hat einen Ordner, den ich selbst erstellt habe. Alles was ich benötige, landen immer in die jeweilige Ordner. Dieser Ordner verhalten sie sich wie ein Hauptverzeichnis? So könnte man es sich vorstellen:
Hauptverzeichnis
Domain 1
index.html
usw.
Domain 2
index.html
usw.
usw.
An der Domainstruktur liegt es nicht. Der Hinweis kommt an der Stelle, wo der Code von PHP5 ausgeführt werden müsste.
Und was schlägst Du als Lösung vor, Sergej?
Nach einer anderen Software Umschau halten, die ohne PHP5 auskommt.
Der sagt ständig das meine Logindaten falsch wären. Obwohl ich es x mal geprüft habe. Woran kann das liegen? Braucht man nen Ami Account?
Nee, du machst alles richtig. Google hat für einzelne Accounts den alten Zugang abgeschaltet. Es geht nur über die neue API rein. Das Script berücksichtigt aber nur den Zugang über die alte “Schnittstelle”.
7 Verlinkungen auf den Artikel
› Alle Google Analytics Profile auf einen Blick | Web Analytics &a [...]
› Felix Wunderwald Blog » Blog Archiv » Google Analyti [...]
› SYNAXON AG Blog » SYNAXON Blog Artikel » Google Anal [...]
› Google Analytics Export | Manfred Weber
› » Google Analytics auf dem iPhone » insidePDA News
› Analytics auf der Seite - Consultdomain.de - das Domainforum
› iS34.Net » Wordpress Google Analytics Export Plugin