25. Mar 2011 06:03
Keine Kommentare

Google Analytics API für Amazon-ähnliche Vorschläge

Amazon Alternativvorschläge
Amazon Alternativvorschläge
Jedermann kennt die Vorschläge von Amazon Kunden, die sich für dieses Produkt interessierten, interessierten sich auch für“. Für viele Menschen scheint es sich dabei um ein Hexenwerk zu handeln und Shop-Betreiber werden aus Angst vor hohen Kosten zurückschrenken. Ich möchte mit diesem Beitrag erläutern, wie man eine solche Funktion mit PHP und der Google Analytics API kostenfrei implementiert. Einige Shop-Betreiber werden sagen: “Das brauche ich nicht, mein Shop hat das schon“, aber hier muss man noch dazu sagen, dass die Möglichkeiten mit der Google Analytics API viel weitreichender sind, als je ein CMS, Shop oder Blog bereit wäre zu leisten.

Nehmen wir mal ein paar beispielhafte Möglichkeiten, wie man mithilfe der Google Analytics API am Frontend einige nahezu unglaubliche Features umsetzen kann.

  • Benutzer die diese Seite angesehen haben, haben sich auch folgende Seiten angesehen
  • Kunden, die dieses Produkt bewertet haben, haben auch folgende Produkte bewertet
  • Besucher, die über diesen Suchbegriff auf unsere Website gekommen sind, haben diese Produkte gekauft
  • Besucher aus Ihrer Region interessieren sich hauptsächlich für diese Produkte oder Seiten
  • Kunden in Ihrem Alter haben sich folgende Produkte angesehen
  • X % der Kunden, die diesen Artikel angesehen haben, haben Ihn auch gekauft
  • Dieses Produkt wird häufig zusammen mit dem Produkt XYZ gekauft

Und das schöne dabei: der Aufwand mit der Google Analytics API ist wirklich viel geringer als bei einer klassischen Implementierung mithilfe einer MySQL Datenbank und PHP. Selbstverständlich geht das ganze auch mit anderen Programmiersprachen wie z.B. Java, C#, Python und Dergleichen.

Wie funktioniert das mit der Google Analytics API?

Beliebteste Seiten in Google Analytics
Beliebteste Seiten in Google Analytics
Widmen wir uns nun der Frage, wie das ganze eigentlich funktionieren soll. Dazu werfen wir zunächst einmal einen Blick in Google Analytics unddie Art und Weise, wie wir die Daten sammeln und zusammenführen.

Grundsätzlich sammelt Google Analytics nach dem Einbau des sog. Tracking-Codes anonymisiert diverse Daten der Besucher, welche man dann über eine komfortable Oberfläche auswerten kann – Web Analytics eben. Wer sich damit noch nicht auskennt, dem kann ich das Google Analytics-Installationshandbuch empfehlen. Man kann mit den “Custom Variables” (zu Deutsch “Benutzerdefinierte Variablen“) von Google Analytics x-beliebige Daten erfassen und verarbeiten. Das kann bei etwas ausgefalleneren Wünschen durchaus notwendig werden und ist im Allgemeinen vor allem für E-Commerce Webseiten ohne klassische Shop-Software (wie z.B. Fluggesellschaften, Reiseportale oder Streaming-Video-Anbieter) sehr wichtig. Deswegen kann ich die Google Analytics – Custom Variables-Dokumentation bei Google-Code nur sehr empfehlen.

Im Bild oben rechts sieht man den “Beliebteste Seiten“-Bericht von Google Analytics, welcher generell die beliebtesten Seiten der Besucher anzeigt. Das ist soweit jetzt schonmal ganz nett und man könnte es für einfache Darstellungen wie z.B. “Beliebteste Webseiten auf unserer Seite” oder Ähnliches verwenden, was jedoch kein wirklich atemberaubendes Google-Analytics-Feature ist. Zusätzlich gibt es jetzt rechts oben im Bericht noch die Möglichkeit der Segmentierung und da wird es nun spannend. Standardmäßig steht dort rechts oben über Ihrem Google-Analytics Bericht: “Erweiterte Segmente: Alle Besuche“.

Nutzersegmentierung in Google Analytics
Nutzersegmentierung in Google Analytics
Mit einem Klick auf “Alle Besuche” öffnet sich die Ansicht für Erweiterte Segmente in Google Analytics. Ein paar Standard-Segmente haben wir schon vorliegen und auch schon ein paar eigene, wenn wir diese vorher angelegt haben. Mit einem Klick auf “Erweitertes Segment erstellen” bekommt man den “Editor” für Erweiterte Segmente. Hier können wir Dimensionen und Kennzahlen für das Segment in Google Analytics festlegen. Nachdem wir nun Links das Element unter “Dimensionen > Content > Seite” nach rechts gezogen haben, wählen wir mal aus der Dropdown-Liste eine Seite aus. Anschließend benennen wir das Segment und speichern es.

Das Segment, welches wir nun erstellt haben, definiert nun “Alle Benutzer, die auf der Seite XY gewesen sind“. Wobei Seite XY natürlich die vorher ausgewälte Seite ist. Nehmen wir nun mit diesem Segment den Google Analytics Bericht Beliebteste Webseiten“, dann sehen wir die oben ausgewählte Seite und alle anderen Seiten, auf denen Besucher gewesen sind, die auf der ausgewählten Seite XY waren. Genauer genommen haben wir also nun den Bericht “Beliebteste Seiten der Nutzer, die auf der Seite XY waren“. Tada! Da haben wir unseren Bericht für die Daten, die wir nun z.B. auf unserem Blog verwenden wollen. Selbiges geht natürlich mit x-beliebigen Google Analytics Berichten und Segmenten.

Wer selbiges nun mit seinem Online-Shop und den Produkten machen möchte, der kann entsprechende Segmente für den E-Commerce anlegen wie z.B. “E-Commerce > Produkt” entspricht “Grüne Badehose“. Der Produkt-Bericht wird dann alle Produkte anzeigen, die Kunden angesehen haben, die das Produkt “Grüne Badehose” angesehen haben. Wer stattdessen wissen möchte, welche Produkte in Kombination gekauft wurden, der fügt dem Segment entsprechend noch die Kennzahl-Bedingung “Eindeutige Käufe größer oder gleich 1” hinzu.

Jetzt haben wir schonmal einen Eindruck davon, wie die Daten gesammelt werden, welche Google-Analytics Daten wir zusammenführen und wie wir diese grundsätzlich verwenden. Jetzt haben wir aber noch folgende Anforderungen zu erfüllen.

  • Die Segmente müssen automatisch erstellt werden
    (Man stelle sich den händischen Aufwand bei 1.000 Seiten oder Produkten vor!) 

  • Es darf nicht der Segmentspeicher von Google Analytics vollgemüllt werden
    (Wie sollten wir in Zukunft jemals sinnvoll Reporting machen, wenn hunderte automatische Segment dort rumhängen?) 

  • Die Vorschläge im Shop oder auf der Website müssen aktuell sein
    (Das schließt dann bei ~10.000 Produkten und täglicher Aktualität sämtliche Handarbeit aus)

Wäre die Erfüllung dieser Anforderungen unmöglich, hätte ich diesen Beitrag nicht geschrieben und das Feature nicht hier in meinen Blog eingebaut. Jetzt kommt die Google Analytics Data Export API zum Zuge, mit welcher wir all diese Funktionen mit wenigen Zeilen Programmierung wundervoll umsetzen.

Vorschläge mit der Google Analytics Data Export API programmieren

Die Google Analytics API teilt sich in 3 Bereiche auf. Zum Einen der Google Analytics Tracking Code, zum Erfassung der Daten und zum anderen die Google Analytics Management API für das Verwalten des Kontos sowie der Google Analytics Data Export API, welche für den Export von Berichtsdaten entwickelt wurde. Letztere, die Data Export API, werden wir nun auch für unser Vorhaben nutzen.

Bevor wir anfangen können Berichtsdaten auszulesen, müssen wir die übliche API Authentifizierung durchführen, sprich den Login. Hier gibt es verschiedene Wege über OAuth, AuthSub und ClientLogin. OAuth und AuthSub sind für Web-Anwendungen, d.h. der sich anmeldende Benutzer kommt zu Google, meldet sich an und Google bestätigt .Nach erfolgreicher Authentifizierung erhalten wir einen Google Analytics API Token von Google. Der anzumeldende Nutzer sind jedoch wir bzw. der Benutzer von Google Analytics für den Shop, verwenden soll die Daten aber der Webserver bei Anfrage des Nutzers. Es hilft also nur Google ClientLogin, wobei wir Benutzername und Passwort mitgeben müssen. Dieses muss dann auch im Quellcode stehen, man sollte sich also gut überlegen, welches Google-Konto man hierfür benutzt. Vielleicht nur ein solches, dass nur Zugriff auf Google Analytics hat. Die Authentifizierung funktioniert dann recht einfach mit folgender PHP Funktion – ich nehme hier wie gesagt mal PHP als Beispiel, weil mein WordPress Blog darin geschrieben ist. Die Programmiersprache tut aber eigentlich nichts zur Sache.

Als Bibliothek habe ich cURL verwendet, weil ich es sehr mag. Wget finde ich fast noch besser, das gibt es aber nicht als PHP BibliothekcURL war hier einfacher. Die Funktion “get_ga_auth_token” ruft den Google ClientLogin auf und übergibt Benutzername, Passwort und Service-Typ. Source ist für die Applikationsquelle – hier entsprechend mein Webserver. Den Text kann man sich aber aussuchen.

Drumherum habe ich noch die Funktion “get_ga_feedprogrammiert, welche eine einfache Funktion zum abholen eines Feeds ist und im Prinzip dann vorher Token-Authentifizierung durchführt und den Token mitschleppt. Das macht es in der Applikation einfacher, da man einfach nur die Funktion aufruft und diese dann das Feed-Ergebnis als XML-String zurückgibt. Das ist soweit auch recht einfach, jetzt kommt aber die eigentliche Feed-Abfrage, welche alle Seiten zurückliefern soll, die ein Benutzer angesehen hat, der eine gegebene Seite aufgerufen hat. Ein Beispiel wäre also der Parameter toller-beitrag.html” und die folgende Funktion wird alle Seiten ausgeben, die benutzt angesehen haben, die auf “toller-beitrag.html” waren.

Hier muss ich jetzt etwas mehr erläutern. Meine Quelltextdoku erläutert aber auch schon ein wenig. Was passiert hier also? Es werden für die letzten 3 Tage bis einschließlich gestern alle Seiten und deren PageViews (zu Deutsch “Seitenaufrufe) von Benutzern, die die als Parameter übergebene Seite (Variable $page) aufgerufen haben. Anschließend wird die Feed Url zusammengebaut und mit der Funktion “get_ga_feed“, die Funktion die wir oben gesehen haben, abgerufen. Ich gehe jetz mal im Einzelnen auf die Parameter des Feeds ein, die Dokumentation der Google Analytics API hat jedoch noch eine stärkere Detailtiefe: Google Analytics Export API Data Feed Reference.

Zum Parameter Version und Id brauche ich nicht viel sagen. Der Parameter “metrics” definiert die Metriken, welche wir von der Google Analytics API abfragen wollen. In unserem Fall sind das die PageViews und deshalb steht dort auch der Wert “ga:pageviews“. Durch den Parameter “sort” teilen wir mit, dass wir die PageViews absteigend sortieren wollen und maximal 30 Ergebnisse werden mit “max-results” festgelegt. “dimensions” also Dimensionen ist schon etwas schwieriger, aber auch schnell zu verstehen: Wir wollen die Seiten Url also “ga:pagePath” als Dimension haben. Start- und Enddatum des Berichts habe ich eben schon erläutert und die Werte werden hier einfach übergeben. Wer andere Metriken und Dimensionen abfragen möchte, schaut einfach in die Dokumentation Google Analytics API Dimensions & Metrics.

Die Kür beginnt jetzt mit dem Parameter “Segment“. Natürlich kann man alle per Hand angelegten Segmente einbeziehen, aber wer kann und will schon 100te Segmente anlegen? Glücklicherweise haben die Entwickler der Google Analytics API uns hier die Möglichkeit gegeben dynamische Segmentierung durchzuführen, sodass wir die Eigenschaften des Segments direkt mitübergeben können. Ich könnte jetzt krampfhaft versuchen euch die dynamische Segmentierung im Detail zu erläutern, aber das können die Jungs von Google Analytics viel besser und habe dazu ein kleines Video vorbereitet (siehe rechts).

Was macht mein Skript also: Es definiert ein Segment eines Besuchers, der die Eigenschaft bzw. Dimension “ga:pagePath” (also die aufgerufene Seite) mit dem Wert der aktuellen Seite hat. Möchte man hier also beispielsweise lieber die oben genannten “Käufer grüner Badehosen” als Segment verwenden, so würde man für den Parameter “ga:segment” folgenden Wert festlegen: “dynamic::ga:productName%3D%3DGr%C3%BCne%20Badehose;ga:transactions%3E%3D1“. Der Begriff “dynamic::” definiert, dass es sich um ein dynamisches Segment handelt. Dahinter steht, dass ga:productName gleich “Grüne Badehose” sein muss und “Anzahl Transaktionen” also “ga:transactions” größer oder gleich “1″ sein muss. Die Beschreibung der Operatoren findet man in der Dokumentation des Parameters “filters”, da diese dem Parameter “segment” entsprechen. Es wird als UND-Operator das “;” (Semikolon) und als ODER-Operator das “,” (Komma) verwendet.

Jetzt muss ich der Vollständigkeit halber natürlich hier noch die Einbindung in WordPress erwähnen. Der Teil, den ich in meinem WordPress Theme eingebaut habe, läuft im Loop von WordPress und fügt jedem Beitrag entsprechend die aus Google Analytics geladenen Empfehlungen zu.

Es gibt noch dazu einen kleinen Nachteil bei der Angelegenheit, den wir noch lösen müssen. Die Abfrage der Daten von der Google Analytics API dauert 3 Sekunden oder länger. Das ist natürlich aus Gründen der Ladezeit und damit auch aus SEO-Gründen nicht gerade hilfreich sondern sehr kontraproduktiv. Mit diesen Nachteilen hätte ich es natürlich auch nicht in meinen Blog eingebaut! Deshalb hier kurz und präzise das Skript, welches die Daten von der Google Analytics API abfragt, auf der Platte cacht und aus den 3 Sekunden wenige Millisekunden macht.

Ansonsten gibt es dazu nicht mehr viel zu sagen außer: “Fertig!“. Das Ergebnis kann man hier in meinem Blog in diversen Beiträgen begutachten. Das ganze ist wirklich nur der Anfang der Emanzipation des Web Analytics zur Platform für Optimierung und autonome Webseiten. Ich finde das Thema nicht nur spannend sondern denke, dass es auch ein absolutes Zukunftsthema ist.

Die Zukunft der Analytics APIs

Viele Unternehmen, Shop-Betreiber und Blogger setzten mittlerweile Web Analytics ein und vor allem Google hat mit Google Analytics Maßstäbe gesetzt an denen sich kommerzielle Anbieter wie Adobe (mit deren SiteCatalyst und Discover APIs das oben beschriebene natürlich auch funktioniert) messen lassen müssen. Noch dazu ist es kostenfrei. Web Analytics-Software wie Google Analytics steht eine große Zukunft bevor: Es wird vom reinen Reporting und Analyse-System zum anwendungsintegrierten Optimierungssystem. A/B-Test und Targeting sind nur ein kleiner Anfang dessen – die Möglichkeiten der Analytics-Daten sind so weitreichend, dass in Zukunft mehr Software-Lösungen wie Shops, CMS oder Blogs die Schnittstellen adaptieren werden. Wir werden Websites sehen, die nicht nur individuell auf uns eingehen sondern ohne unser direktes Zutun durch unser Verhalten erkennen, wie sie sich zu Präsentieren und zu Verhalten haben. Es wird das Internet langsam und schleichend verändern aber auch – wie ich meine – bedeutend optimieren.

Dies wird nicht mein letzter Beitrag über Google Analytics sein. Es lohnt sich als immer mal wieder hier in meinem Blog vorbei zu schauen – nicht nur zum Thema Google Analytics API.

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.
39,90 €
Jetzt bestellen »
Google Analytics: Das umfassende Handbuch. Inkl. Search Console und Google Tag Manager
Markus Vollmert, Rheinwerk Computing
35,90 €
Jetzt bestellen »
Google Analytics: Das umfassende Handbuch. Inkl. Search Console und Google Tag Manager
Markus Vollmert, Rheinwerk Computing
35,90 €
Jetzt bestellen »
Google Analytics: Das umfassende Handbuch. Inkl. Search Console und Google Tag Manager
Markus Vollmert, Rheinwerk Computing
28,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.
2 Besucher haben auch das gelesen

Kommentare zum Thema „Google Analytics API für Amazon-ähnliche Vorschläge“

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