Google analytics 谷歌分析实时沙盒环境
我正在寻找一种方法来建立一个谷歌分析沙箱环境,将允许我 几乎实时地测试我的自定义js代码 我的应用程序将使用自定义变量进行高级细分,我想快速测试多个场景,而不是设置一个虚拟GA帐户并等待一整天来确认测试 谢谢好问题 对于GA,服务器更新每四小时进行一次,在每六次这样的更新之后,整个集合都会重新计算,这意味着从代码更改到可靠反馈有24小时的延迟。此延迟也适用于GA浏览器的大多数自定义设置(例如,“自定义过滤器”) 因此,如果您打算使用GA作为您的web度量系统,并且您希望实际依赖这些数据,那么测试平台是必不可少的 对我来说,使用两个准则对客户端分析的测试系统进行分组是很有用的:(i)完整的、自包含的(闭环)系统;或者(ii)从生产系统中提取更简单的自动化数据(这里的“生产系统”是指GA的系统,而不是GA代码跟踪其页面的站点) 对于后者,只需将这一行添加到包含GA跟踪代码的站点的每个页面上,就在“\uu trackPageview()”下面: 该行将导致每个事务行的一个副本记录到服务器的活动日志中——因此本质上,您可以实时获取GA捕获的数据,这就是捕获数据所需的全部工作;要解析它,您可以使用,例如,任何优秀的开源web日志分析器,如,或者使用您自己的 这是简单可靠的——但它所能做的只是告诉您(实时)“我刚才在我的生产服务器提供的页面上实现的分析代码真的有效吗?” 通常情况下,这还不够好——您更希望在代码进入生产服务器之前就知道它是否可以工作。为此,您需要模拟生产环境,并找到一种方法来实时访问GA收集的数据 这种试验台有点复杂,但仍然不难 总之,它需要以下步骤:Google analytics 谷歌分析实时沙盒环境,google-analytics,Google Analytics,我正在寻找一种方法来建立一个谷歌分析沙箱环境,将允许我 几乎实时地测试我的自定义js代码 我的应用程序将使用自定义变量进行高级细分,我想快速测试多个场景,而不是设置一个虚拟GA帐户并等待一整天来确认测试 谢谢好问题 对于GA,服务器更新每四小时进行一次,在每六次这样的更新之后,整个集合都会重新计算,这意味着从代码更改到可靠反馈有24小时的延迟。此延迟也适用于GA浏览器的大多数自定义设置(例如,“自定义过滤器”) 因此,如果您打算使用GA作为您的web度量系统,并且您希望实际依赖这些数据,那么测试
II.创建\uuu utm.gif文件 这只是一个透明的1x1像素gif图像,您将把它放在站点目录中(不管在哪里,它只需要与页面中叙述的位置相匹配)
III.记录\uuu utm.gif请求 对于您是客户端活动来源的测试协议(例如,您希望验证添加到站点页面的某些事件跟踪代码的跨浏览器保真度,因此您可以自动在刚连接的按钮上单击5000次,从为此目的设置的开发服务器为页面提供服务)只记录请求头可能是最简单的,因为GA脚本正是在这些头中指示客户端从DOM、位置栏(url)和以前的http头收集各种数据,并将它们附加到GA服务器上的资源请求中(u_utm.gif,它只是一个1x1透明像素) 对于这种类型的协议,我使用Firefox插件。您可以像其他Firefox插件一样安装它,只需单击几下鼠标。接下来,打开它,然后单击“生成器”选项卡。在此窗口中,您可以实时查看实际请求。窗口底部有一个“保存”按钮来存储日志。我发现将LiveHTTPHeaders配置为只记录_utm.gif请求更容易;要做到这一点,只需单击“编辑”选项卡并创建一个siimple筛选器,以排除除这些特定gif图像之外的所有内容(使用右侧的复选框和右侧的大文本框) 其他类型的测试协议要求您从服务器活动日志开始工作;在这种情况下,只需将这一行添加到站点的每个页面,就在_trackPageview()下面:
IV.解析那些记录的请求,以便您可以实际读取它们 因此,现在您的日志将包含单独的转换行,其中每一行都是附加到GA跟踪像素HTTP请求的字符串。该字符串只是键-值对的串联,每个键都以字母“utm”开头(可能是“顽童跟踪器”)。这些参数中的每一个都对应于您在GA仪表板中看到的一个变量(以下是它们的名称和说明)。这是构建解析器所需要知道的全部内容。更详细的信息: 首先,这里是一个经过清理的uu utm.gif请求(LiveHTTPHeaders日志中的条目): 这是我的解析器(Python): 结果如下所示:
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
为了避免这一过程变得更长,我省略了cookies的值。它们显然需要一个单独的解析步骤,尽管它实际上与我刚才展示的步骤相同。同样,每个请求都代表一个事务,因此您可以根据需要存储它们。Doug,感谢您提供如此详细的帖子!我一定会尝试并通知您下周你会看到我的进展。也许你想创建一个谷歌项目,我可以帮助开发一个其他人可以使用的套件?好主意,萨尔曼。我使用GibHub,所以我会在下周把它放在那里,让你知道我什么时候做,在哪里找到它。
#!/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;
pageTracker._setLocalRemoteServerMode();
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
# 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