Google Analytics Realtime Sandbox среда

Търся начин да настроя среда на google analytics sandbox, която ще ми позволи да тествам своя персонализиран js код почти в реално време.

Приложението ми ще използва персонализирани променливи за разширено сегментиране и бих искал бързо да тествам множество сценарии, вместо да настроя фиктивен акаунт в GA и да чакам цял ден, за да потвърдя теста.

Благодаря


person Salman Paracha    schedule 24.07.2010    source източник


Отговори (1)


Страхотен въпрос.

За GA сървърните актуализации се извършват на всеки четири часа и след всяка шеста такава актуализация целият набор се преизчислява, което означава 24-часово забавяне от промяната на кода до надеждна обратна връзка. Това забавяне важи и за повечето персонализации на браузъра на GA (напр. „персонализирани филтри“).

Така че, ако възнамерявате да използвате GA като ваша система за уеб показатели и очаквате действително да разчитате на тези данни, тогава тестовото оборудване е от съществено значение.

За мен е полезно да групирам тестови системи за анализи от страна на клиента, използвайки две рубрики: (i) пълни, самостоятелни (затворен цикъл) системи; или (ii) по-просто автоматизирано изтегляне на данни от производствената система (под „производствена система“ тук имам предвид системата на GA, а не сайта, чиито страници кодът на GA проследява).

За последното просто добавете този ред към всяка страница от вашия сайт, която съдържа кода за проследяване на GA, точно под „__trackPageview()“:

pageTracker._setLocalRemoteServerMode();

Този ред ще накара копие от всеки ред на транзакция да бъде регистрирано в регистрационния файл на активността на вашия сървър - така че по същество получавате данните, заснети от GA в реално време. Това е всичко, което трябва да направите, за да заснемете данните; за да го анализирате, можете да използвате например някой от отличните анализатори на уеб регистрационни файлове с отворен код като AWStats, или навийте своя собствена.

Това е просто и надеждно – но всичко, което може да направи, е да ви каже (в реално време) „действително ли работи кодът за анализ, който току-що внедрих на страници, обслужвани от моя производствен сървър?“

Обикновено това не е достатъчно – предпочитате да знаете дали вашият код ще работи преди да бъде на вашия производствен сървър. За да направите това, трябва да симулирате производствената среда и да намерите начин за достъп в реално време до данните, които GA събира.

Този вид тестово оборудване е малко по-ангажиращо, но все пак не е трудно.

Накратко, това изисква следните стъпки:

  1. хост/обслужване на ga.js и проследяващия пиксел локално;

  2. регистрирайте заявките __utm.gif (в потока от данни на GA всяка заявка съответства на една регистрирана транзакция); и

  3. анализирайте заглавките в някаква удобна за четене форма.


Ако искате повече подробности от това (т.е. внедряване стъпка по стъпка), ето го:

Аз. Хостинг/обслужване на скрипта на GA (и автоматизиране на актуализации

За да направите това, можете да създадете малък shell скрипт като този, за да получите най-новата версия ga.js във вашата локална директория (заменяйки съществуващата версия, която намира там).

#!/bin/sh
rm /My_Sites/sitename.com/analytics/ga.js
cd /My_Sites/sitename.com/analytics/
wget http://www.google-analytics.com/ga.js
chmod 644 /My_Sites/sitename.com/analytics/ga.js
cd ${OLDPWD}
exit 0;

(Благодарение на AskApache.com, който предостави оригиналната мотивация и подробности за конфигурацията, за да направите това в производствен контекст.)


II. Създайте файл __utm.gif

Това е просто прозрачно 1x1 пикселово gif изображение, което ще поставите в директорията на сайта (няма значение къде, просто трябва да съответства на местоположението, посочено във вашите страници)


III. Регистрирайте __utm.gif заявките

За протокол за тестване, в който вие сте източникът на дейността от страна на клиента (напр. искате да проверите верността на различни браузъри на някакъв код за проследяване на събития, който сте добавили към страница на вашия сайт, така че автоматизирате 5000 кликвания на бутона, който току-що сте свързали, обслужвайки страницата от вашия сървър за програмисти, настроен за тази цел) вероятно е най-лесно просто да запишете заглавките на заявките, защото в тези заглавки скриптът на GA насочва клиента за събиране на различни данни от DOM, от лентата за местоположение (url) и от предишни http заглавки, и да ги добавите към заявка за ресурс на GA сървъра (__utm.gif, който е просто 1x1 прозрачен пиксел).

За този тип протокол използвам добавката за Firefox, LiveHTTPHeaders. Инсталирате го като всяка друга добавка за Firefox, всичко е с няколко кликвания на мишката. След това го отворете и щракнете върху раздела „Генератор“. От този прозорец можете да видите действителните заявки в реално време. В долната част на прозореца има бутон „запазване“ за съхраняване на дневника. Намирам за по-лесно да конфигурирам LiveHTTPHeaders да регистрират само заявките __utm.gif; за да направите това, просто щракнете върху раздела „Редактиране“ и създайте лесен филтър, за да изключите всичко, освен тези конкретни gif изображения (като използвате квадратчетата за отметка вдясно и голямото текстово поле вдясно).

Други видове тестови протоколи изискват да работите от регистрационните файлове на активността на вашия сървър; в такъв случай просто добавете този ред към всяка страница от вашия сайт, точно под __trackPageview():

pageTracker._setLocalRemoteServerMode();

IV. Анализирайте тези регистрирани заявкиза да можете действително да ги прочетете

Така че сега вашият дневник ще съдържа отделни редове за транзакции, всеки един от които е низ, добавен към HTTP заявка за проследяващия пиксел на GA. Този низ е просто конкатенация на двойки ключ-стойност, всеки ключ започва с буквите "utm" (вероятно за "urchin tracker"). Всеки от тези параметри съответства на променлива, която виждате в таблото за управление на GA (ето пълен списък и описанието им). Това е всичко, което трябва да знаете, за да създадете анализатор. В повече детайли:

Първо, ето дезинфекцирана заявка за __utm.gif (записите във вашия дневник LiveHTTPHeaders):

http://www.google-analytics.com/__utm.gif?utmwv=1&utmn=1669045322&utmcs=UTF-8&utmsr=1280x800&utmsc=24-bit&utmul=en-us&utmje=1&utmfl=10.0%20r45&utmcn=1&utmdt=Position%20Listings%20%7C%20Linden%20Lab&utmhn=lindenlab.hrmdirect.com&utmr=http://lindenlab.com/employment&utmp=/employment/openings.php?sort=da&&utmac=UA-XXXXXX-X&utmcc=__utma%3D87045125.1669045322.1274256051.1274256051.1274256051.1%3B%2B__utmb%3D87045125%3B%2B__utmc%3D87045125%3B%2B__utmz%3D87045125.1274256051.1.1.utmccn%3D(referral)%7Cutmcsr%3Dlindenlab.com%7Cutmcct%3D%2Femployment%7Cutmcmd%3Dreferral%3B%2B

Това е моят анализатор (в Python):

# regular expression module imported
import re

pattern = r'\&{1,2}'
pat_obj = re.compile(pattern)

# splitting the gif request on the '&' character 
# (which GA originally used to concatenate each piece to build the request)
# (here, i've bound the __utm.gif to the variable by 'gfx')
gfx1 = pat_obj.split(gfx)

# create a look-up table to map a descriptive name to each gif request parameter
# (note, this isn't the entire list, which i've linked to above)
keys = "utmje utmsc utmsr utmac utmcc utmcn utmcr utmcs utmdt utme utmfl utmhn utmn utmp utmr utmul utmwv"
values = "java_enabled screen_color_depth screen_resolution account_string cookies campaign_session_new repeat_campaign_visit language_encoding page_title event_tracking_data flash_version host_name GIF_req_unique_id page_request referral_url browser_language gatc_version"
keys = keys.strip().split()

#create the look-up table
GIF_REQUEST_PARAMS = dict(zip(keys, values))

# parse each request parameter and map the parameter name to a descriptive name:
pattern = r'(utm\w{1,2})=(.*?)$'
pat_obj = re.compile(pattern)

for itm in gfx1 :
    m = pat_obj.search(itm)
    if m :
        fmt = '{0:25} {1:10}'
        print( fmt.format( GIF_REQUEST_PARAMS[m.group(1)], m.group(2) ) )

Резултатът изглежда така:

    gatc_version              1         
    GIF_req_unique_id         1669045322
    language_encoding         UTF-8     
    screen_resolution         1280x800  
    screen_color_depth        24-bit    
    browser_language          en-us     
    java_enabled              1         
    flash_version             10.0%20r45
    campaign_session_new      1         
    page_title                Position%20Listings%20%7C%20Linden%20Lab
    host_name                 lindenlab.hrmdirect.com
    referral_url              http://lindenlab.com/employment
    page_request              /employment/openings.php?sort=da
    account_string            UA-XXXXXX-X
    cookies

За да не удължавам това, пропуснах стойността на бисквитките. Те очевидно изискват отделна стъпка за анализ, въпреки че е почти идентична със стъпката, която току-що показах. Отново, всяка заявка представлява една транзакция, така че можете да ги съхранявате, както е необходимо.

person doug    schedule 24.07.2010
comment
Дъг, благодаря за толкова подробен пост! Със сигурност ще опитам това и ще ви уведомя за напредъка си следващата седмица. Може би искате да създадете проект в Google и аз да допринеса за разработването на пакет, който други могат да използват? - person Salman Paracha; 25.07.2010
comment
Добра идея, Салман. Използвам GibHub, така че ще го сложа там следващата седмица и ще ви уведомя кога го направя и къде да го намеря. - person doug; 27.07.2010