Sprache auswählen

Dieser Artikel schildert eine Möglichkeit, wie man Google Analytics User Explorer Daten automatisiert für die Weiterverarbeitung abrufen kann. Leider bietet Google keine direkte API Schnittstelle für den Abruf der in der Analytics User Explorer Ansicht gezeigten Daten. Mit diesen quasi Rohdaten der einzelnen Nutzer und den zugehörigen Sessions könnte man interessante Analysen durchführen.

Um dennoch auch ohne entsprechende API an die Daten zu gelangen, habe ich untersucht, welche HTTP Anfragen im Hintergrund des Google Anlaytics Web-Interfaces genutzt werden. Hierbei habe ich eine Möglichkeit gefunden, die User Explorer Daten für eine gegebene Analytics Client-ID im JSON Format abzufragen. Im Folgenden wird anhand eines Beispiels gezeigt, wie man die Daten abrufen kann.

  1. Zusammenstellen der GA Client-Ids
    In meinem Fall wollte ich alle Nutzer auswerten, die eine Transaktion generiert hatten. Dementsprechend habe ich im ersten Schritt ein Segment für diese Nutzer angelegt und dieses auf die Listen-Ansicht des GA User-Explorers angewendet. Somit erhalte ich alle betreffenden GA Client-Ids.

    user explorer screenshot
  1. Abrufen eines User-Explorer Beispiel-Requests
    Hierzu ruft man zunächst die User-Explorer Übersichtsseite im Chrome Browser auf und startet die Developer Tools mit F12. Dort wechselt man in die Netzwerk-Ansicht, um alle von der Seite stammenden HTTP Requests zu sehen. Sobald man nun in der User-Explorer Übersichtsseite eine Nutzer-ID anklickt, sodass die Details für den Nutzer im Browser dargestellt werden, kann man in der Developer Tools Netzwerk Ansicht einen XHR Request zur URL https://analytics.google.com/analytics/web/getPage sehen. Dieser Request liefert alle gewünschten Detail-Daten im JSON Format zurück (seltsamerweise mit einem unnützen Präfix). Zudem kann man sehen, dass in der URL die GA Client-ID des betreffenden Nutzers im Parameter _r.userId enthalten ist. Insofern muss man also nur entsprechende Requests mit allen gewünschten GA Client-IDs simulieren, um alle gewünschten Daten zu erhalten.

    user explorer request screenshot
  1. Ausführen von eigenen Requests mit Hilfe von JavaScript
    Um die entsprechenden Requests automatisch direkt im Browser über die Developer-Tools auszuführen, genügt der entsprechende JavaScript Code. Glücklicherweise hilft Google noch dabei, derartigen Code zu generieren. Hierzu genügt ein Rechts-Klick auf den Request-Eintrag in den Developer Tools und die Auswahl des Menüpunktes "Copy as Fetch". Damit erhält man den fetch() JavaScript Code, um den entsprechenden Request auszuführen - man muss also nur noch den Rahmen hinzufügen, um alle gewünschten Client-IDs abzufragen und das Resultat in einer String Variable zu speichern. Dies kann mit folgendem Code umgesetzt werden (der fetch() Aufruf muss entspreched mit dem aus den Developer Tools kopierten Request ersetzt werden, in den die Client-ID eingesetzt wurde):

    client_ids=[
    '123456789.123456789',
    '987654321.987654321'
    ]
    
    overall_result = "["
    
    for(var i=0; i < client_ids.length; i++){
      x = await fetch("https://analytics.google.com/analytics/web/getPage?[...]&_r.userId=" + client_ids[i] + ","method":"POST","mode":"cors"}).then(output => output.text());
      overall_result += x.substr(5) + ",";
    }
    
    overall_result += "]"