2009-06-22 4 views
29

Ich bin bereit, Google Analytics zu verwenden, um Statistiken zur Verwendung meiner Client/Server-Anwendung zu verfolgen (kein Browser auf dem Benutzercomputer!).Generieren Sie Google Analytics-Ereignisse (__utm.gif-Anfragen) serverside

Also ich denke, wenn jemand jemals versucht, Anfragen zu __utm.gif aus serverseitigem Code zu erstellen.

Ich habe einige Informationen über die Anfrage und relevante Cookies bei google website gefunden, aber es gibt keine Details über die Cookies Werte in der "utmcc" Variable übergeben.

Ich verstehe, dass ich einige der Informationen, die der Analytics-Server von der Anfrage selbst ableitet (eine für alle: die Quell-IP-Adresse!), Nicht erstellen kann. Ich kann keine Anfragen vom Client-Computer generieren.

Hat jemand Erfahrung mit diesem Szenario? Irgendwelche detaillierten Informationen oder Ressourcen? Irgendein funktionierender Codeausschnitt (irgendeine Sprache tut! :)?

+1

Verhält sich Ihre App wie eine Website? Das meiste, was Google Analytics zur Verfügung stellt, hat viel mit der Verfolgung von Websites zu tun. Sie würden eine Menge Mühe haben, einen Hammer zu benutzen, um eine Schraube zu drehen. – Hardwareguy

+0

Sie haben Recht! Es tut nicht! Ich habe diese Überlegung selbst gemacht, aber festgestellt, dass ich für meine Anforderungen das Paradigma "Besucher/Besuch" zu meiner Anwendung zuordnen kann und es wird gut funktionieren (Besucher ist der Login, Besuch ist jedes Mal, wenn die Software gestartet wird). Darüber hinaus verfügt Google Analytics über erweiterte "Event Tracking" -Funktionalitäten, die sich einfach auf Client-Anwendungsaktionen abbilden lassen. Immerhin: Web-Anwendungen verhalten sich heutzutage sehr ähnlich wie Desktop-Anwendungen! :) – Pokot0

Antwort

30

fragte ich eine ähnliche Frage vor kurzem und jemand hat mir einen Link, und ich fand eine andere aus dem gleichen Ort:

http://www.vdgraaf.info/wp-content/uploads/image-url-explained.txt
http://www.vdgraaf.info/wp-content/uploads/urchin-image.txt (hier enthalten)

Analytics-Code des Google in der Form zur Verfügung gestellt wird einer JS-Bibliothek ga.js.

 
http://www.google-analytics.com/__utm.gif //from http pages 
https://ssl.google-analytics.com/__utm.gif //from https pages 

Die folgenden sind Parameter, die in der Anforderung verwendet werden können, GA zur Verfügung zu stellen: Wenn eine Tracking-Funktion aus dieser Bibliothek aufgerufen wird, wird eine Anforderung an eine der folgenden URLs in eine GIF-Datei auf den GA-Servern hergestellt mit ausführlichen Informationen:

?utmwv=1 //Urchin/Analytics version 
&utmn=634440486 
&utmcs=UTF-8 //document encoding 
&utmsr=1440x900 //screen resolution 
&utmsc=32-bit //color depth 
&utmul=nl //user language 
&utmje=1 //java enabled 
&utmfl=9.0%20%20r28 //flash 
&utmcr=1 //carriage return 
&utmdt=Linklove » The optimum keyword density //document title 
&utmhn=www.vdgraaf.info //document hostname 
&utmr=http://www.google.nl/search?q=seo+optimal+keyword+density&sourceid=navclient-ff&ie=UTF-8&rlz=1B3GGGL_nlNL210NL211 //referer URL 
&utmp=/the-optimum-keyword-density.html //document page URL 
&utmac=UA-320536-6 //Google Analytics account 
&utmcc= //cookie settings 
    __utma= 
        21661308. //cookie number 
        1850772708. //number under 2147483647 
        1169320752. //time (20-01-2007) cookie first set 
        1172328503. //time (24-02-2007) cookie previous set 
        1172935717. //time (03-03-2007) today 
        3;+ 
    __utmb= 
        21661308;+ //cookie number 
    __utmc= 
        21661308;+ //cookie number 
    __utmz= 
        21661308. //cookie number 
        1172936273. //time (03-03-2007) today 
        3. 
        2. 
     utmccn=(organic)| //utm_campaign 
     utmcsr=google| //utm_source 
     utmctr=seo+optimal+keyword+density| //utm_term 
     utmcmd=organic;+ //utm_medium 

Denken Sie daran, dass die &utmcc Werte URL-kodiert sein müssen.


Die Links in dieser Antwort bewiesen haben, ein wenig unzuverlässig, so sind hier einige andere Ressourcen, die nützlich sein könnten:

+0

interessante Sachen! Ich werde einige Tests machen und Sie wissen lassen, was ich gefunden habe. Vielen Dank! – Pokot0

+1

es funktionierte wie ein Charme. Ich habe gerade die Grundfunktionen getestet, aber es scheint definitiv vielversprechend! Vielen Dank! BTW: Hier ist der Link zum Originalartikel für jeden, der interessiert sein könnte: http://www.vdgraaf.info/google-analytics-without-javascript.html – Pokot0

+1

die Links sind leider tot. –

0

Interessante Anforderung ...

Ihre beste Wette wäre wahrscheinlich die Google Analytics, um zu versuchen sein Reverse Engineering Javascript ein wenig ...

mit Firefox und Firebug, auf eine Website gehen, die verwendet google analytics, öffnen Sie dann firebug und schauen Sie sich das GET an, das an Google Analytics übermittelt wurde. Wenn Sie dann ein HttpRequest mit denselben Parametern und Kopfzeilen erstellen können, sollten Sie in der Lage sein, Google Analytics zu glauben, dass Sie von einer Webseite kommen.

+0

Ja! Das ist der harte Weg! :) Ich hatte gehofft, dass jemand diesen Weg schon gegangen ist! Wie auch immer, ich werde hier jeden Befund melden, wenn ich mit Reverse Engineering gehen muss. Vielen Dank! – Pokot0

1

Aus meiner Cookies in Firefox für eine Website Inspektion, die eine bekannte Nutzer von Google Analytics ist Ich sehe es speichert 3 Werte (alle 3 Start mit 2 Unterstrichen):

  • __utmc - 9-stellige ganze Zahl (wahrscheinlich)
  • __utma - sehr lange ganze Zahl mit geworfenen Perioden in (mit 9 Ziffern beginnt oben)
  • __utmz - lange Zeichenfolge Zeit getrennt (beginnt mit 9 Ziffern von UTMC)

Meine Vermutung ist, UTMC ist Ihre Tracking-Sitzungs-ID.

0

Betten Sie das Skript in eine HTML-Seite mit variablen Platzhaltern für den Seitentitel und so ein, dann laden Sie die Seite in einen eingebetteten IE in Stand Server Seite. Mit dem GA-Skript können Sie Seitenereignisse verfolgen, indem Sie Parameter für die Hauptverfolgungsfunktion angeben. Sie müssen lediglich die HTML-Seite der Vorlage im Speicher behalten, die Platzhalter ersetzen und die Seite in die eingebettete IE-Instanz laden. Die IE-Instanz würde das Javascript analysieren und ausführen, als wäre es eine normale Seite und Bingo, Sie haben Ihr Tracking.

Dies ist natürlich, und nicht getestet.

+0

Danke Chris, Dies ist ein interessanter Ansatz. Ich habe etwas nachgedacht und denke, dass es etwas komplexer sein muss als das, was du erklärst. Um Besuche/Besucher korrekt zu verfolgen (und wahrscheinlich für viele andere Funktionalitäten), müssen Sie Cookies für verschiedene Benutzer aufbewahren. Daher müsste ich die Cookies serverseitig speichern und immer dann den gleichen Cookie-Satz verwenden, wenn derselbe Benutzer ein Ereignis auslöst. Ich werde etwas mehr denken und vielleicht einige Tests mit http://lobobrowser.org (Ich habe Java-Server) oder Selen mit verschiedenen Profilen. – Pokot0

5

möchten Sie http://code.google.com/p/serversidegoogleanalytics/ einen Versuch geben. es funktioniert für mich (in Kombination mit zend Framework für die http-Anfrage).

+0

Sehr schönes Projekt. Genau das, was ich gesucht habe (ich frage mich, ob es schon verfügbar war, als ich diese Frage zum ersten Mal gestellt habe!). Wie auch immer, es scheint in seinen frühen Stadien zu sein und nur eine begrenzte Anzahl von Attributen des Seitenaufrufs kann eingestellt werden (kein OS, keine Flash-Version, usw.). Danke für den Link!!! – Pokot0

1

Als Alternative können Sie in AWS benutzerdefinierte Metriken in CloudWatch verwenden, die sehr einfach zu verwenden sind, aber Sie müssen sich um alles kümmern, je nachdem, was Sie mit serverseitigen Metriken erreichen möchten es kann genau sein, was Sie brauchen.

3

Jahre nachdem diese Frage gestellt wurde, tauchte eine neue Methode auf.

Google Analytics verfügt jetzt über ein Messprotokoll. Sie sollten dies bevorzugen, da es im Gegensatz zu den anderen Lösungen, die versuchen, ein Protokoll zu emulieren, das nicht vollständig unterstützt wird, unterstützt und dokumentiert wird.

Um es zu verwenden, müssen Sie eine neue Web-Property erstellen, für die Universal Analytics aktiviert ist.

Vollständige Details über die Measurement Protocol in the developer docs.