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参数,还是得用上面虚拟页面的方式来处理。
参考: