Google Analytics Daten in Google Docs per API importieren
Gepostet von Mario am Samstag, August 11, 2012 in Analytics Externe Tools | 4 KommentareIn Google Analytics laufen viele Daten auf, um dieser weiter zu verarbeiten oder auch mit anderen Daten in Verbindung zu bringen müssen sie in eine externe Anwendung importiert werden. Dieses kann z. B. Excel sein, viel eleganter und vor Allem mit dem Vorteil des einfachen Teilens von Dokumenten, lässt sich dieses aber mit Google Docs lösen. In diesem Artikel stelle ich euch eine Lösung und deren Benutzung vor, die ihr für den Datenimport der Google Analytics Daten in Google Docs verwenden könnt. Der Entwickler dieser Lösung ist Mikael Thuneberg von AutomateAnalytics, der übrigens auch ein sehr gutes, aber auch kostenpflichtiges Excel Plugin anbietet.
Wie funktioniert diese Lösung technisch?
Realisiert worden ist das “anzapfen” der API mit den “Skripts in Google Apps”, d. h. für den Datenimport wurden verschiedene Skripte geschrieben, die dann per Funktionsaufruf in Google Docs aufgerufen werden können. Diese Funktionen stellen eine Anfrage (Query) an die Google Analytics API und schreiben die Daten in das Google Doc. Falls ihr euch ein wenig mehr in das Thema “Skripts in Google Apps” einlesen möchtet, dann kann ich euch diese offizielle Einführung von Google zu diesem Thema empfehlen.
Google Analytics data to Google Docs von Mikael Thuneberg
Von dieser Lösung gibt es zwei verschiedene Varianten, die kostenlosen Google Apps Skripte zum Herunterladen und die kostenpflichtige Variante für 119$, die als “out of the box” Lösung daher kommt und mit weiteren Funktionen ausgestattet ist. In diesem Artikel werde ich die kostenlosen Skripte und die Nutzung innerhalb eines Google Spreadsheets näher beschreiben. Auf der Seite von Mikael Thuneberg findet ihr hier zudem auch eine Beispiel Datei, die die Funktionen innerhalb von Google Docs an praktischen Beispielen erläutert.
Installation der Skripte für die spätere Verwendung
in diesem ersten Schritt müsst ihr ein neues Google Spreadsheet öffnen, danach im oberen Menü über “Tools”–>”Skriptgalerie..” das Skript von Mikael Thuneberg mit dem Suchbegriff “Analytics” suchen und auf Installieren klicken.
Jetzt erscheint ein Dialogfeld, welches noch einmal auf die Gefahr bei der Verwendung von Skripten hinweist, dieses müsst ihr “Authorize” bestätigen und schon können die Funktionen für das “anzapfen” der API verwendet werden.
Die installierten Funktionen im Überblick
Nach der Installation stehen jetzt insgesamt 3 Funktionen für das “anzapfen” der Google Analytics API zur Verfügung:
- getGAauthenticationToken
- getGAaccountData
- getGAdata
Die einzelnen Funktionen und deren Verwendung stelle ich euch nun noch etwas detaillierter dar.
getGAauthenticationToken
Diese Funktion generiert ein Token für die Authentifizierung bei der Google Analytics API, welche dann von den Funktionen getGAaccountData und getGAdata verwendet wird. Das Token wird aus der E-Mail Adresse eures Analytics Accounts und dem zugehörigen Passwort generiert. Auf dem Screenshot seht ihr, wie das Token innerhalb des Google Docs generiert werden kann.
Die komplette Syntax von “getGAauthenticationToken”: getGAauthenticationToken(email;password)
getGAaccountData
Mit der Funktion getGAaccountData ruft ihr eine Liste eurer Google Analytics Accounts und Profilen (z. B. IP gefilterte Profile) oder wahlweise Segmenten ab. Bei dem Abruf der Accounts erscheint hinter dem jeweiligen Account bzw. dem Profil erscheint eine ID, die zum Abrufen der Daten von der Funktion getGAdata verwendet wird. Für die Funktion getGAcccountData stehen insgesamt 5 Parameter zur Verfügung, die der Reihe nach benutzt werden können bzw. müssen. Die Pflichtparameter habe ich euch in fett markiert, die nicht fett markierten Parameter sind optional.
- token: Token für die Authentifizierung an der Google Analytics API.
- data type: damit wird ausgewählt, ob Profile oder Segmente ausgegeben werden (Werte: profiles oder segments). Wird dieser Parameter nicht angegeben, so werden im Standard die Profildaten ausgegeben.
- include headers: Überschriften oberhalb der ausgegebenen Werte anzeigen (Werte: TRUE oder FALSE). Wird kein Wert ausgewählt, dann werden die Überschriften im Standard nicht ausgegeben.
- maxRows: Optional, falls es Probleme beim Abruf der Daten gibt, dann kann hier der Abruf der Zeilen begrenzt werden.
- startFromRow: In Verbindung mit maxRows können so zwei Abfragen generiert werden, um die Daten vollständig zu bekommen.
Für die nun folgenden Beispiele habe ich jeweils eine Zelle mit Parameter angelegt, damit diese dann einfach per Zellenverweis in die Abfrage integriert werden. Bei mir funktionierte übrigens auch nur die Methode per Zellenverweis, das direkte Eintragen der Werte in die Abfrage führte zwangsläufig zu einem Fehler.
Beispiel: Abruf der Google Analytics Profile mit Überschriften
Beispiel: Abruf der Segmente mit Überschriften
Die komplette Syntax von “getGAaccountData”: getGAaccountData(token,dataType,includeHeaders)
getGAdata
Nachdem die Basis mit getGAauthenticationToken und getGAaccountData geschaffen ist könnt ihr nun mit getGAdata die Daten aus der API von Google Analytics in das Google Doc schreiben. Da die Datenabfragen auch ein wenig komplexer aufgebaut werden können verfügt die Funktion über einige Parameter, die ich hier kurz vorstelle. Wie schon bei der vorherigen Funktion habe ich auch hier die Pflichtparameter fett markiert.
- token: wie gehabt das Token zur Authentifizierung für die Google Analytics API.
- profile ID: die bereits erwähnte ID, die mit getGAaccountdata hinter dem jeweiligen Profil ausgegeben wurde.
- metrics: hier können die Metriken eingegeben werden, die abgerufen werden sollen. Eine Liste der Metriken in Google Analytics und deren Schreibweise gibt es hier in der offiziellen Dimensionen und Metriken Referenz. In einer Query können bis zu 10 Metriken angefragt werden.
- start date: hier wird das Startdatum der angefragten Daten angegeben.
- end date: das Enddatum der abgefraten Daten.
- filters: hiermit können die Daten gefiltert ausgegeben werden, eingegeben werden muss diesen in folgender Form: „visitorType==New Visitor“. Die möglichen Kombinationen für die Eingabe könnt ihr in der offiziellen Google Analytics Metriken und Dimensionen Referenz nachlesen.
- dimension: bis zu 10 Dimensionen könnt ihr hiermit bei der API abfragen, wenn mehrere Dimensionen eingegeben werden müssen diese mit einem & verbunden werden. Beispiel: “country®ion”. Auch hier wieder der Verweis auf die Metriken und Dimensionen Referenz.
- segment: mit segment könnt ihr die eingerichteten Standard Segmente oder auch die Erweiterten Segmente abrufen, hier muss die Segment ID angegeben werden, die bei dem Aufruf von getGAaccountData erzeugt wurde.
- sort: hier könnt ihr entweder “TRUE” oder “FALSE” als Wert angeben, bei “TRUE” werden die Daten in absteigender Reihenfolge nach der ersten Metrik sortiert. Bei Angabe von “FALSE” werden die Daten alphabetisch nach den abgefragten Dimensionen sortiert.
- includeHeaders: bestimmt, ob die Überschriften mit ausgegeben werden oder nicht (Werte: “TRUE” oder “FALSE”).
- maxRows: Optional, falls es Probleme beim Abruf der Daten gibt, dann kann hier der Abruf der Zeilen begrenzt werden.
- startFromRow: In Verbindung mit maxRows können so zwei Abfragen generiert werden, um die Daten vollständig zu bekommen.
Nachfolgende stelle ich euch noch zwei Beispiele für eine solche Datenabfrage vor, einmal eine simple Abfrage und dann noch eine komplexere Abfrage, die alle verfügbaren Parameter verwendet.
Beispiel: Einfache Abfrage mit den Pflichtparametern
Beispiel: Komplexere Abfrage mit allen verfügbaren Parametern
Die komplette Syntax von “getGAdata”: getGAdata(token,profile ID,metrics,start date,end date,filters,dimensions,segment,sort,includeHeaders)
Was kann man nun damit anstellen?
Wenn die Daten erst einmal in Google Docs angelangt sind, dann könnt ihr diese sehr gut weiterverarbeiten bzw. mit anderen Daten anreichern oder dynamische Google Docs Chart damit erstellen. Auch ein Dashboard lässt sich mit dieser Methode erstellen, dazu solltet ihr einfach mehrere Abfragen erstellen und die Graphen in einem neuen Tabellenblatt erstellen. Für die Pflege der Graphen ist dann allerdings ein wenig Anpassung bei dem Datenbereich, der dargestellt werden soll nötig.
Um die Daten immer aktuell zu halten, könnt ihr übrigens mit einem ganz einfach Trick entweder die tagesaktuellen oder die Daten des gestrigen Tages automatisch in das Doc ziehen, hierzu müsst ihr einfach bei dem Feld für das Enddatum “=TODAY()” für den heutigen Tag und “=TODAY()-1” für die Daten bis zum vorherigen Tag eingeben. Dieses sind aber nur Anreize für die Verwendung, denn mit Google Docs kann man mittlerweile jede Menge bei der Verarbeitung von Daten anstellen.
Wichtiger Hinweis zum Schluss
Wenn ihr die Daten mit anderen teilen wollt, dann solltet ihr diesen Sicherheitshinweis unbedingt beachten! Teilt nicht das Doc, mit dem ihr die API anzapft, denn dort stehen eure Login Daten drin. Erstellt euch lieber ein ein zweites Doc, in dem ihr mit “importRange” die Daten aus dem Doc, welches die Google Analytics API “anzapft” referenziert. Die Syntax von “importRange” sieht wie folgt aus: =importRange(spreadsheet-key, range). Den Spreadsheet Key findet ihr bei der URL eines Google Docs hinter “?key=”. Bei der Range muss zum Einen das Datenblatt auf welches referenziert werden soll und zum Anderen der Datenbereich angegeben werden. Beispiel: “=importrange(„abcd123abcd123“, „Tabellenblatt1!A1:C10“).
Viel Spaß beim Anzapfen der Google Analytics API!
Quellen:
Blog Artikel von Mikael Thuneberg (AutomateAnalytics)
Google Analytics Dimensionen und Metriken Referenz
Geschrieben von Mario Hillmers
loading...
Hallo Mario,
vielen Dank für die tolle Anleitung. Sie ist sehr einfach umzusetzen. Ich bekomme in einigen Feldern von Google Anlaytics eine sehr lange Fehlermeldung: „Fetching Data failed…“. Da steht auch was von „…has too many concurrent connections…“ Weißt Du oder jemand anders, woher das kommt und wie man das beheben kann?
Vielen Dank und viele Grüße
Mohamed
Hey Mohamed,
vielen Dank für Deinen Kommentar und das Lob.
Den Fehler hatte ich bisher noch nicht, es gibt aber anscheinen ein paar Limits die hier beachtet werden müssen. Im Google Product Forum hat Nick, der Google Entwickler des Scripts, ein wenig dazu geschrieben: https://groups.google.com/forum/#!msg/google-analytics-data-export-api/w73P_kNDAvY/mExf-HBDypUJ#
Ich hoffe das hilft Dir schon einmal ein wenig weiter.
Viele Grüße
Mario
Hallo Mario,
vielen lieben Dank für den Beitrag. Leider scheitere ich auch am Feld getGAdata. „Fetching Data failed (Cannot read property „length“ of undefined). Leider hab ich dazu auch nirgends etwas gefunden, vielleicht kannst Du mir zufällig weitehrelfen.
Viele Grüße
Saddu
Hi Saddu,
sorry für die späte Antwort. Den Fehler habe ich bisher auch noch nicht gesehen, aber vielleicht musst Du Dich einfach Schritt für Schritt heran arbeite.
Hast Du Deine Query schon einmal mit den Analytics Query Explorer geprüft?
Sind alle Pflichtfelder ausgefüllt?
Den Query Explorer findest Du hier: http://ga-dev-tools.appspot.com/explorer/
Viele Grüße
Mario