SEO Berichte mit der Google Analytics-API und Google Docs erstellen

geschrieben am in der Kategorie SEO von

Mit den mittlerweile nicht mehr allzu neuen Google Spreadsheets lassen sich die tollsten Sachen anstellen. Man kann zusammen daran arbeiten, sie problemlos mit jedem teilen, multimediale Inhalte einfügen, sich leicht zu anderen Google Diensten verbinden und sie liegen in der Cloud, d. h. man kann also von überall auf der Welt darauf zugreifen.

Als SEO ist man natürlich immer gewillt, seine Prozesse zu optimieren und seine wichtigsten Kennzahlen auf einen Blick zu haben, ohne vorher alle Tools durchwühlen zu müssen um die Daten zu erhalten. Google Docs kann für diese Aufgaben zum besten Freund des SEOs werden, denn über projektinterne APIs lassen sich Tools wie Sistrix, SearchMetrics, Linkbird, Google Analytics und Co. einfach anzapfen und man kann die Potenziale der Tools verbinden und somit ein großes individuelles Tool schaffen. Trotz der vielen Möglichkeiten möchte ich mich in diesem Artikel zunächst auf das Thema Google Analytics und Google Spreadsheets beziehen.

Installation der Funktionen

Bevor man sich mit der API von Google Analytics verbinden kann, sollte man zunächst die entsprechenden Funktionen im Sheet installieren. Dazu empfehle ich die „Google Analytics Data Fetch Functions“ von Mikael Thunberg. Bisher konnte ich damit nur positive Erfahrungen machen und stets die Anfragen stellen, die mir lieferten, was ich brauchte.

Um benanntes Skript zu installieren, wählt Ihr im Sheet das Menü „Tools“ >> „Skriptgalerie“. Dann bekommt man verschiedene Skripte angeboten. Weil wir genau wissen, was wir wollen, suchen wir nach dem Begriff „Google Analytics Data Fetch Functions”. Das richtige Set erkennt man daran, dass unter der Beschreibung die E-Mail Adresse von Herrn Thunberg zu finden ist. Dann ein Klick auf „Installieren“, kurz warten, das Skript autorisieren und im Pop-Up Fenster „schließen“ drücken und schon kann es los gehen.

GA

Anwendung der Funktionen

Das Skript besteht aus lediglich frei Funktionen: getGAauthenticationToken, getGAdata und getGAaccountData. Ich will hier nur die beiden ersten Funktionen beleuchten.

Die Funktion getGAauthenticationToken wird dazu benötigt, sich für das Profil zu authorisieren. Als Argumente werden die Analytics Login E-Mail und das Account-Passwort benötigt. Durch Aufruf der Funktion wird ein Token erstellt, welcher aus gefühlten 500 alphanumerischen Zeichen besteht. Mithilfe des Tokens kann man nun die Daten abrufen.

Die Daten zieht man sich nun mittels der Funktion getGAdata. Im Folgenden möchte ich kurz die Argumente der Funktion nennen und erklären:

  • authToken – Der Token, der mittels getGAauthentificationToken eingeholt wurde
  • profileNumber – Die Profilnummer des Analytics Projekts. Wichtig: Dies ist nicht die Nummer, die in der Übersicht im Format „UA-[Nummer]“ angezeigt wird. Man findet die Nummer, wenn man in der Übersicht des Analytics-Projektes die URL durchsucht. Dort ist es die 8-stellige Nummer hinter dem „p“. Bsp.: https://www.google.com/analytics/web/?pli=1#report/visitors-overview/a[…]w[…]p[profileNumber]/%3F_u.date00%3D20130101%26_u.date01%3D20130131/
  • metrics – Die Metriken, die ausgegeben werden sollen (siehe dazu die Dimensions & Metrics Reference).
  • startDate & endDate – Start- und Endzeitpunkt des Berichtzeitraums.
  • filters – Etwaige Filter die gesetzt werden können, z.B. zum Ausschließen einzelner Keywords.
  • dimensions – Die Dimensionen, die ausgegeben werden sollen.
  • segment – Falls im Projekt Segmente definiert wurden, so kann man mit diesem Argument einzelne davon auswählen.
  • sort – Hier wird festgelegt, ob die Ausgabe sortiert werden soll.
  • includeHeaders – Wenn TRUE, dann wird Tabellenkopf mit ausgegeben.
  • maxRows – die Anzahl der Zeilen, die ausgegeben werden sollen.
  • startFromRow – Die Zeile, bei der mit der Ausgabe begonnen werden soll.

In meinem Beispiel-Sheet wollen wir nun zunächst die zehn traffic-stärksten Keywords finden und dazu die Anzahl der Besuche, Seiten pro Besuch, Anteil neuer Besucher und die Absprungrate des Keywords ausgeben. Dazu werden im „Formular“ (Zellen A1 bis C10) die Webseite, die Projekt-ID, der Analytics-Login, der Berichtszeitraum und ein auszuschließendes Keyword angegeben. Das auszuschließende Keyword ist fakultativ und kann z.B. dazu dienen, um beim organischen Traffic jenen Traffic rauszufiltern, welcher über Brandanfragen generiert wurde.

Die Daten aus dem Formular holt sich die Funktion über Zellbezüge. Die Spalten und die Gruppierung habe ich in diesem Beispiel über direkte Anweisungen in der Formel gelöst. Wenn wir uns nun also die Formel genauer anschauen: =getGAData($C$5;$C$2;“visits&pageviewsPerVisit&percentNewVisits&visitBounceRate“;$C$7;$C$8;$D$10;“ga:keyword“;;TRUE;;10;1)

Die ersten beiden Argumente sind Authentifizierungstoken und Projekt-ID. Danach folgen die Metriken, also jene Größen, die wir in den Spalten ausgegeben haben wollen. Dazu auch hier noch mal der Verweis auf den Dimensions & Metrics Guide. Die einzelnen Metriken werden via „&“ verbunden bzw. aufgezählt. Die nächsten beiden Argumente sind Start- und Enddatum des Berichtszeitraumes, anschließend folgt der Filter. Als Filter ist fix, dass nur der organische Traffic ausgegeben wird, deshalb der Teil „ga:medium==organic“. Soll noch ein Keyword ausgeschlossen werden, so erweitert sich der Filter zu „ga:keyword!@projecter;ga:medium==organic“. Hier lassen sich beliebig viele Filter setzen. Wichtig ist, dass man darauf achtet, alle „Einzelfilter“ per „;“ zu verbinden und um das gesamte Gebilde Anführungszeichen setzt, da sonst die Funktion durcheinander kommt. Nun wird noch die Dimension angegeben, hier soll sie das Keyword sein. Das bedeutet, dass die Daten nach Keyword aggregiert werden und nicht etwa nach URL oder Sonstigem.

Ein bestimmtes Segment soll hier nicht betrachtet werden, das soll dann jeder für sich entscheiden und die von ihm festgelegten Segmente sinnvoll zur Datenanalyse verwenden. Das Argument Filter kann lediglich den Wert FALSE oder TRUE haben, standartmäßig ist der Filter nicht gesetzt. Wird er auf TRUE gestellt, so wird absteigend nach allen Metriken sortiert. Die Priorität verteilt sich dabei von links nach rechts, in unserem Beispiel wird also zuerst nach visits sortiert, dann nach pageviewsPerVisit usw. Den Tabellenkopf wollen wir hier auch nicht mit ausgeben, da er nicht sonderlich schön formatiert ist. Deshalb bleibt der Parameter includeHeaders frei.

Ganz zum Schluss wird noch festgelegt, dass die ersten zehn Tabellenzeilen ausgegeben werden sollen, da wir ja die Top 10 haben wollen und dass die Ausgabe bei Zeile 1 beginnen soll. Wer jetzt z.B. „(not provided)“ nicht in seinen Analysen sehen möchte, der beginnt mit der Ausgabe erst in Zeile 2. Dieser Aussage ist natürlich vorrausgesetzt, dass über (not provided) der meiste Traffic kommt. Ich bin mir ziemlich sicher, dass das bei fast allen Webseiten mittlerweile so ist.

Durch Abschicken der Funktion erhalten wir nun die gewünschten Daten. Die Formel lässt sich beliebig anpassen, so dass wir an alle Daten herankommen, die wir auch im User Interface finden können. So kann man sich Standardberichte erstellen, die eine Menge Zeit sparen können.

SEO_Banner_2012

Erweiterungsmöglichkeiten

Natürlich kann man die Funktion auch für Daten des E-Commerce verwenden. Dazu findet sich auch eine Tabelle im Beispiel-Sheet. Die dazugehörige Formel liegt in der Zelle A32. Außerdem habe ich ganz unten noch zwei Formeln eingebaut, welche den Gesamttraffic über die organische Suche und den Gesamttraffic über Links von anderen Webseiten ausgeben.

Weitere tolle Varianten sind das Kombinieren mit Daten aus Sistrix oder SearchMetrics. So kann man sich z.B. die Top-Rankings der Webseite ziehen und dann direkt den Traffic darüber auswerten. Damit lassen sich relativ einfach Potenziale und Risiken erkennen.

Der Kreativität sind also fast keine Grenzen gesetzt. Hier und da muss man ein wenig rumprobieren, aber das Ergebnis sollte am Ende den Aufwand rechtfertigen. Das angesprochene Google Spreadsheet darf gern kopiert werden und als Grundlage für weitere Analysen dienen.

Stefan ist seit November 2011 Teil des Projecter-Teams. Mit seinem Interesse an der „Maschine“ Internet ist er dort auch gut aufgehoben. Stefan ist ursprünglich als Werkstudent auf der Suche nach Praxiserfahrung zu Projecter gekommen und hat im Oktober 2011 sein Bachelor-Studium der Angewandten Mathematik abgeschlossen. Nach Traineeship und vier Jahren als Account Manager leitet Stefan seit Februar 2016 den Affiliate Kanal und das Analytics Team.

Einen Kommentar schreiben

* Pflichtfelder

  1. Danke für die geilen Tipps – bin dabei mich intensiver mit Analytics zu befassen. War bisher nur bei Piwik, aber Analytics kann einfach mehr und ist leistungsfähiger.

  2. Super Anleitung. Setz mich nachher gleich mal hin und versuch es selbst.

  3. Man ist immer auf der Suche seine Arbeiten besser und effizienter zu gestalten. Solche Tipps sind dann immer Gold wert wenn man nicht viel Geld für teure Tools ausgeben möchte.

  4. Hi,

    Ich hab alles so gemacht wie du erklärt hast, allerdings steht beim Token: Authentication failed. Ich hab allerdings alles richtig eingegeben. Woran kann es liegen?

    Viele Grüße,
    Zarah

    • Hi Zarah,

      vielen Dank für deine Nachricht. Das ist natürlich auf die schnelle schwer zu sagen. Normalerweise bekommt man neben der Meldung „Authentication failed“ noch einen Fehlercode ausgeliefert, der näheren Aufschluss gibt. Vielleicht könntest du mir den noch mitteilen. Mit den Infos, die ich bis jetzt habe, kann ich dir leider nur raten, noch einmal zu prüfen, ob die Zellbezüge richtig sind, alles richtig geschrieben wurde und ob du die Argumente in der richtigen Reihenfolge übergeben hast: =getGAauthenticationToken(+++email+++;+++passwort+++)

      Hast du das von mir bereit gestellte Google Sheet genutzt?

      Beste Grüße

  5. Hallo nochmal, ich nehm alles zurück, ich hatte noch nicht gesehen gehabt das ich den Zugriff im Analytics Konto bestätigen muss. Jetzt funktioniert alles wunderbar, vielen Dank!!!

  6. hallo ich habe schon einige beispiele für google analytics gefunden.
    dein tutorial funktioniert auch.
    aber wie ist es, wenn ich daten aus der google places.
    sprich wie würde die abfrage für =getGAData …. bei google places aussehen.

  7. Hallo,

    erstmal vielen lieben Dank für den Beitrag! Ich war gleich begeistert und wollte es umsetzen. Leider funktioniert getGAdata bei mir nicht. Habe Google API bereits aktiviert und kann es mir grad nicht erklären – muss aber zugeben, dass ich auch ein Laie in dem Gebiet bin. Zu der Fehlermeldung „Fetching data failed (Cannot read property „length“ from undefined)“ hab ich leider auch nichts gefunden.

    Vielleicht kannst Du mir ja helfen 🙂

    Viele Grüße

    Saddu

  8. Hi Saddu,

    schade, dass es nicht geklappt hat. Kannst Du noch beschreiben, an welcher Stelle Dein Fehler aufgetreten ist?

    Hast Du das von mir bereitgestellte Sheet kopiert? In welcher Zelle taucht dann der Fehler auf? Vermutlich fehlen irgendwo Daten, die ausgelesen werden müssen.

    Beste Grüße

    Stefan