月度归档:2013 年五月

在Google Analytics中跟踪url hash参数信息

hash 参数提交

网站中的url地址除了主机名,页面,查询参数外,还会有hash锚参数:

http://jiyang.me/search.htm?k=wa#hot=true

  • 主机名(hostname):jiyang.me
  • 页面(pathname):/search.htm
  • 查询参数(search):?k=waconfig
  • 锚(hash):#hot=true

这儿的hash,一般用于页面内的导航跳转,如:打开文章时,跳到参考信息部分。

在Ajax为主的网站中,这儿的hash还可以用于特定的动作,如:商品收藏。

http://jiyang.me/product.htm?id=123#fav

ga在提交页面地址时,默认是不包括hash信息的,这时在GA后台会看到这样的页面列表:

/product.htm?id=123

而不知道有多少商品被收藏。

处理办法是有的,在提交页面地址时,通过虚拟页面的方式附加上hash参数即可。

var full_url = location.pathname + location.search + location.hash; 
_gaq.push(['_trackPageview', full_url]); 

代码中的:location.hash 用来读取hash参数。 参考:

通过hash参数标注广告渠道

在投放广告时,我们会通过utm_source这样的查询参数来标注广告渠道,例如:

http://jiyang.me/about.htm?utm_campaign=blog&utm_medium=ppc&utm_source=google

但有时候,因为服务器端限制或url重写的原因,直接传递这样的查询参数,会导致页面出错,这时可以通过hash的方式传递参数(因为hash参数是浏览器前端处理的,不会提交到后端程序):

http://jiyang.me/about.htm#utm_campaign=blog&utm_medium=ppc&utm_source=google

如果这样做,记得要:

_gaq.push(['_setAllowAnchor', true]);  

即告诉GA,读取hash做为url查询参数。注意这么做时,提交的页面地址仍然不包括hash信息,如果要包含hash参数,还是得用上面虚拟页面的方式来处理。

参考: