2012-02-23 59 views
0

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

的代码中的相关位是:

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

Google Analytics(分析)所追踪的语言属性不是来自标题。

相反,它直接通过URL请求传递给__utm.gif作为utmul属性。

所以,我的电脑设置utmul=en-us,使用navigator.language或navigator.browserLanguage属性(这好像它使小写)

在你的情况,这意味着你只需要加入这一行您的__utm.gif结构:

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

迷人!谷歌提供的示例代码不使用该属性。它使用标题。我已按照您的建议添加了该标志,现在我们将等待24小时,看看它是否有帮助! – 2012-02-24 14:17:23

+0

了不起的消息。事实上,这确实将语言数据传递给GA。 – 2012-02-25 14:22:14

相关问题