大家都知道,google analysis可以帮助我们分析网站的流量等信息。
但是问题是,google analysis的追踪代码是基于js的,有些浏览器,比如有些手机浏览器不支持js,而且不能统计到wap网站的流量。
尽管google考虑到了这一情况,并且提供了工具,比如在“Analytics(分析)设置 - 配置文件设置 - 检查状态 - 跟踪代码 - 高级”中选择“针对手机创建的网站”就可以获得一段代码来统计wap网站的流量信息,不过遗憾的是当前只支持:PHP Perl,JSP,ASPX。
而 博聆网
是用ruby on rails写的,所以研究了一下google analysis的追踪原理(原理请参考http://www.biaodianfu.com/google-analytics-architecture.html 这篇文章)
原理大概是这样:当我们访问带有Google
Analyitcs追踪代码的页面时,页面中的GA追踪代码被执行,然后会向Google服务器发送一个1像素的图片请求。
(http://www.google-analytics.com/__utm.gif
)并将所收集到的数据作为请求__utm.gif图片链接的变量一起发送回google服务器。然后经过google服务器的处理发布到我们的数据报告里。
并且通过在“Analytics(分析)设置 - 配置文件设置 - 检查状态 - 跟踪代码 -
高级”中选择“针对手机创建的网站”,中选择php语言,查看给出的php例子,发现确实是这样的。只要向http://www.google-analytics.com/__utm.gif 请求这个图片,在url里面加上参数,google analysis就可以分析了。
所以写了这个ruby版本的:
首先,定义helper
def img_for_google_analysis
params_for_analysis={}
params_for_analysis["utmn"] = rand(0x7fffffff)
params_for_analysis["utmr"] = request.headers['Referer']||'-'
params_for_analysis["utmhn"] = request.host
params_for_analysis["utmp"] = request.fullpath
params_for_analysis["utmac"] = 'MO-XXXXX-X' #这个是google analysis的帐号,要把里面的UA替换成MO,表示是手机网站。
params_for_analysis["utmwv"] = "4.4sh"
params_for_analysis["utmcc"] = '__utma=999.999.999.999.999.1;'
if request.remote_ip.blank?
params_for_analysis["utmip"] = ""
else
params_for_analysis["utmip"] = (request.remote_ip.split(".")[0,3]<< "0").join(".")
end
if cookies["__utmmobile"]
guid = cookies["__utmmobile"]
else
guid = request.headers['HTTP_X_DCMGUID'] || request.headers['HTTP_X_UP_SUBNO'] || request.headers['HTTP_X_JPHONE_UID'] || request.headers['HTTP_X_EM_UID']
end
if guid
message = guid + params_for_analysis["utmac"]
else
message = rand(0x7fffffff).to_s
end
cook = Digest::MD5.hexdigest(message)
cookies["__utmmobile"] = params_for_analysis["utmvid"] = "0x" +cook[0,16]
ppp=""
params_for_analysis.each_pair do |index , value |
ppp<<"#{index}=#{value}&"
end
return "http://www.google-analytics.com/__utm.gif?"+URI.encode(ppp)
end
注意,helper文件里要
require 'digest/md5'
因为使用到了
Digest::MD5.hexdigest()这个方法
然后在layout里面引入这个img图片就可以了
%img{:src=>img_for_google_analysis,:alt=>""}
ok!
分享到:
相关推荐
在过去的几年中,《Ruby on Rails Tutorial》这本书被视为介绍使用 Rails 进行 Web 开发的先驱者。 在这个全球互联的世界中,计算机编程和 Web 应用程序开发都在迅猛发展,我很期待能为中国的开发者提供 Ruby on ...
《Ruby on Rails 101》是一本介绍Ruby on Rails(简称RoR或ROR)的基础书籍,旨在为初学者提供一个全面而深入的学习框架。本书由Peter Marklund编写,包含了五天课程的演示文稿和相关资料,覆盖了从安装到实际应用...
标签中的“on rails最新版”和“ruby”进一步强调了这个压缩包与Ruby on Rails框架的最新版本有关。Ruby是一种面向对象的动态编程语言,它以其简洁、优雅的语法深受开发者喜爱,而Ruby on Rails则是Ruby在Web开发...
Ruby on Rails是一款基于Ruby语言的开源Web开发框架,它遵循MVC(模型-视图-控制器)架构模式,简化了Web应用的开发流程。在Linux环境下安装Ruby on Rails需要一系列的依赖包和步骤,本资源包提供了所需的所有组件,...
### Ruby on Rails Guides v2 - Ruby on Rails 4.2.5 #### 一、重要概念及基础假设 - **重要概念**:本指南旨在帮助读者深入理解Ruby on Rails(以下简称Rails)4.2.5版本的核心功能与最佳实践。 - **基础假设**:...
《Ruby on Rails 3 Tutorial》是一本专门为初学者设计的指南,旨在帮助读者快速掌握Ruby on Rails这一强大的Web开发框架。Ruby on Rails(简称Rails)是基于Ruby语言的一个开源框架,它采用MVC(Model-View-...
《Ruby on Rails for Dummies》是一本专门为初学者设计的Ruby on Rails教程,它旨在帮助新手快速理解并掌握这个强大的Web开发框架。Ruby on Rails(简称Rails)是基于Ruby编程语言构建的一个开源Web应用程序框架,它...
Ruby on Rails,简称Rails,是由David Heinemeier Hansson基于Ruby语言开发的一个开源Web应用程序框架。这个框架遵循“约定优于配置”(Convention over Configuration)的原则,致力于简化Web应用的开发流程,提高...
Ruby on Rails,简称Rails,是一款基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-Controller)架构模式,旨在提升开发效率和代码的可读性。Rails以其“约定优于配置”的设计理念,以及“DRY(Don't Repeat ...
通过学习和实践压缩包中的"Ruby on Rails入门经典代码",新手不仅可以了解Rails的基本概念,还能掌握实际项目中的应用技巧,逐步成长为一名熟练的Rails开发者。记得不断探索、实践和学习新的Rails知识,以适应不断...
在“ruby on rails社区网站开发源码”中,我们可以学习到如何利用Rails构建一个互动性强、功能丰富的社区网站。以下是一些关键知识点: 1. **安装与环境设置**:首先,你需要安装Ruby和Rails。这通常涉及设置Ruby...
《Ruby on Rails入门权威经典》是一本专门为初学者设计的指南,旨在帮助读者全面掌握Ruby on Rails这一强大的Web开发框架。Ruby on Rails(简称Rails)是基于Ruby编程语言的开源框架,以其“DRY(Don't Repeat ...
Ruby on Rails(简称Rails)是一种基于Ruby编程语言的开源Web应用程序框架,专为敏捷开发而设计,强调简洁的代码和“约定优于配置”的原则。它主要用于构建数据驱动的Web应用,借助于MVC(Model-View-Controller)...
Ruby on Rails,简称Rails,是一款基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-Controller)架构模式,旨在简化Web应用程序的开发。Rails由David Heinemeier Hansson于2004年创建,它提倡“约定优于配置...
Ruby on Rails,简称Rails,是基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-Controller)架构模式,旨在使开发过程更加简洁高效。这个“ruby on rails 教程源码”很可能是为了辅助学习者深入理解Rails的...
Ruby on Rails,简称Rails,是由David Heinemeier Hansson创建的一种基于Ruby语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在提高开发效率和可读性。在这个开发环境包中,我们拥有Ruby ...
Ruby on Rails 4 Tutorial 是一本深受开发者欢迎的书籍,它详细介绍了如何使用Ruby on Rails这一强大的Web开发框架。Ruby on Rails(简称Rails)是基于Ruby语言的开源框架,以其“约定优于配置”(Convention over ...