2012-02-23 3 views
0

Я портировал код на стороне сервера аналитики Google в мое приложение GAE для Python. Все отлично работает, кроме отслеживания языков. Мне интересно, если кто-то, кто использовал аналитику google на стороне сервера, имел языки отслеживания успехов.Отслеживание языков с помощью серверной 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

Увлекательный! Пример кода google обеспечивает не использует этот атрибут. Он использует заголовки. Я добавил этот флаг, как вы предлагали, и теперь мы подождем 24 часа, чтобы узнать, помогает ли это! –

+0

Отличные новости. Фактически, это позволило получить данные языка до GA. –

Смежные вопросы