Question

I am willing to use Google Analytics to track stats about usage of my Client/Server application (no Browser on the user computer!).

So I guess if anyone ever tried to craft requests to __utm.gif from serverside code.

I have found some information on the request and relevant cookies at google website but there are no details on the cookies values passed in the "utmcc" variable.

I understand that I will not be able to "craft" some of the information which Analytics server derives from the request itself (one for all: the source IP address!). I can't generate requests from the Client computer.

Does anyone have experience with this scenario? Any detailed information or resource? Any working code snippet (any language will do! :)?

Was it helpful?

Solution

I asked a similar question recently and somebody gave me a link, and I found another from the same site:

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

Google's Analytics code is provided in the form of a JS library, ga.js. When a tracking function is called from this library, a request is made to a gif file on the GA servers at either of the following URLs:

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

The following are parameters that may be used in the request to provide GA with detailed information:

?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

Remember that the &utmcc values need to be URL encoded.


The links in this answer have proven to be a little unreliable, so here are some other resources that might be useful:

OTHER TIPS

you might want to give http://code.google.com/p/serversidegoogleanalytics/ a try. its working for me (in combination with zend framework for the http request).

Years after this question was posted a new method emerged.

Google Analytics now has a measurement protocol. You should favor this because it's supported and documented, unlike the other solutions that try to emulate a protocol that is not fully supported.

In order to use it you need to create a new Web Property that is Universal Analytics enabled.

Full details about the Measurement Protocol in the developer docs.

From inspecting my cookies in firefox for a site that is a known user of google analytics I see it stores 3 values (all 3 start with 2 underscores):

  • __utmc - 9 digit integer (probably)
  • __utma - very long integer with periods thrown in (starts with 9 digits above)
  • __utmz - long string period seperated (starts with 9 digits from utmc)

My guess is utmc is your tracking session id.

As an alternative, if you are on AWS, you can use custom metrics in CloudWatch, very easy to use but you need to take care of every thing, depending on what you want to achieve with "server-side" metrics it may be exactly what you need.

Interesting requirement...

Your best bet would probably be to attempt to reverse engineer the google analytics javascript a little...

With firefox, and firebug, go to a web site that uses google analytics then open firebug and look at the GET that is submitted to google analytics. If you can then create an HttpRequest with those same parameters and headers you should be able to fool google analytics into thinking you're coming from a web page.

Embed the script in an HTML page with variable placeholders for page title and such, then load the page in an embedded IE instance server side. The GA script allows you to track page events by specifying parameters to the main tracking function, so all you'd have to do is keep the template HTML page in memory, replace the placeholders, and load the page in the embedded IE instance. The IE instance would parse and execute the javascript like it were a normal page and bingo, you've got your tracking.

This is theoretical, of course, and not tested.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top