使用服务器端Google Analytics进行语言跟踪

时间:2012-02-23 19:58:59

标签: google-app-engine google-analytics

我已将谷歌分析服务器端代码移植到我的Python GAE应用程序中。除了语言跟踪,一切都很好。我想知道在服务器端使用谷歌分析的人是否有成功的跟踪语言。

代码的相关位是:

  utm_url = utm_gif_location + "?" + \
        "utmwv=" + GA_VERSION + \
        "&utmn=" + str(randint(0, 0x7fffffff)) + \
        "&utmhn=" + urllib.quote(domain) + \
        "&utmsr=" + '-' + \
        "&utme=" + '-' + \
        "&utmr=" + urllib.quote(document_referer) + \
        "&utmp=" + path + \
        "&utmac=" + GA_ACCOUNT + \
        "&utmcc=__utma%3D999.999.999.999.999.1%3B" + \
        "&utmvid=" + visitor_id + \
        "&utmip=" + ip

  headers = {
    'User-Agent': req.get('ua'),
    'Accept-Language': req.get('lang')
    }
  httpresp = urlfetch.fetch(
    url      = utm_url,
    method   = urlfetch.GET,
    headers =  headers
    )

  if httpresp.status_code == 200:
    logging.info("GA success: %s(%s)\n%s" % (utm_url, headers, httpresp.headers) )
  else:
    logging.warning("GA fail: %s %d" % (utm_url, httpresp.status_code) ) 

这是一个小调试输出,显示我正在发送Accept-Language标题:

GA success: http://www.google-analytics.com/__utm.gif?utmwv=4.4sh&utmn=1306014991&utmhn=XXXXXXXXXXXXX.com&utmsr=-&utme=-&utmr=-&utmp=XXXXXXXXXXXXXXXXXXXXXXXXXX&utmac=MO-XXXXX-XX&utmcc=__utma%3D999.999.999.999.999.1%3B&utmvid=XXXXXXXXXXXXXXXXXX&utmip=XXX.XXX.XX.XX({'Accept-Language': u'en-us', 'User-Agent': u'Mozilla/5.0 (iPhone; CPU iPhone OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9A405'})
{'content-length': '35', 'x-google-cache-control': 'remote-fetch', 'x-content-type-options': 'nosniff', 'age': '93451', 'expires': 'Wed, 19 Apr 2000 11:43:00 GMT', 'server': 'GFE/2.0', 'last-modified': 'Wed, 21 Jan 2004 19:51:30 GMT', 'via': 'HTTP/1.1 GWA', 'pragma': 'no-cache', 'cache-control': 'private, no-cache, no-cache=Set-Cookie, proxy-revalidate', 'date': 'Wed, 22 Feb 2012 16:25:04 GMT', 'content-type': 'image/gif'}

(我有XXXX的东西来保护无辜者)。

正如我所说,一切都很好(位置,点击数,用户代理),语言除外。它们都被视为“未设定”。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

Google Analytics跟踪的语言属性不是来自标题。

相反,它会直接作为__utm.gif属性传递给utmul的网址请求。

所以,我的计算机使用navigator.language或navigator.browserLanguage属性设置utmul=en-us(看起来好像是小写的。)

在您的情况下,这意味着您只需要将此行添加到__utm.gif结构中:

"&utmul=" +  req.get('lang')