`
iamzhangdabei
  • 浏览: 17676 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

为wap网站加入google analysis之ruby on rails版本

阅读更多

大家都知道,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

    在过去的几年中,《Ruby on Rails Tutorial》这本书被视为介绍使用 Rails 进行 Web 开发的先驱者。 在这个全球互联的世界中,计算机编程和 Web 应用程序开发都在迅猛发展,我很期待能为中国的开发者提供 Ruby on ...

    ruby on rails社区网站开发源码

    在“ruby on rails社区网站开发源码”中,我们可以学习到如何利用Rails构建一个互动性强、功能丰富的社区网站。以下是一些关键知识点: 1. **安装与环境设置**:首先,你需要安装Ruby和Rails。这通常涉及设置Ruby...

    ruby on rails 101

    《Ruby on Rails 101》是一本介绍Ruby on Rails(简称RoR或ROR)的基础书籍,旨在为初学者提供一个全面而深入的学习框架。本书由Peter Marklund编写,包含了五天课程的演示文稿和相关资料,覆盖了从安装到实际应用...

    ruby on rails最新版

    标签中的“on rails最新版”和“ruby”进一步强调了这个压缩包与Ruby on Rails框架的最新版本有关。Ruby是一种面向对象的动态编程语言,它以其简洁、优雅的语法深受开发者喜爱,而Ruby on Rails则是Ruby在Web开发...

    Ruby on Rails安装包全集(Linux)

    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 Guides v2 - Ruby on Rails 4.2.5 #### 一、重要概念及基础假设 - **重要概念**:本指南旨在帮助读者深入理解Ruby on Rails(以下简称Rails)4.2.5版本的核心功能与最佳实践。 - **基础假设**:...

    ruby on rails 3 tutorial.pdf

    《Ruby on Rails 3 Tutorial》是一本专门为初学者设计的指南,旨在帮助读者快速掌握Ruby on Rails这一强大的Web开发框架。Ruby on Rails(简称Rails)是基于Ruby语言的一个开源框架,它采用MVC(Model-View-...

    Ruby on Rails入门权威经典

    《Ruby on Rails入门权威经典》是一本专门为初学者设计的指南,旨在帮助读者全面掌握Ruby on Rails这一强大的Web开发框架。Ruby on Rails(简称Rails)是基于Ruby编程语言的开源框架,以其“DRY(Don't Repeat ...

    ruby on rails for dummies

    《Ruby on Rails for Dummies》是一本专门为初学者设计的Ruby on Rails教程,它旨在帮助新手快速理解并掌握这个强大的Web开发框架。Ruby on Rails(简称Rails)是基于Ruby编程语言构建的一个开源Web应用程序框架,它...

    Ruby on Rails实践

    Ruby on Rails,简称Rails,是由David Heinemeier Hansson基于Ruby语言开发的一个开源Web应用程序框架。这个框架遵循“约定优于配置”(Convention over Configuration)的原则,致力于简化Web应用的开发流程,提高...

    Ruby on Rails中文指南

    Ruby on Rails,简称Rails,是一款基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-Controller)架构模式,旨在提升开发效率和代码的可读性。Rails以其“约定优于配置”的设计理念,以及“DRY(Don't Repeat ...

    Ruby on Rails入门经典代码

    通过学习和实践压缩包中的"Ruby on Rails入门经典代码",新手不仅可以了解Rails的基本概念,还能掌握实际项目中的应用技巧,逐步成长为一名熟练的Rails开发者。记得不断探索、实践和学习新的Rails知识,以适应不断...

    ruby on rails api

    Ruby on Rails(简称Rails)是一种基于Ruby编程语言的开源Web应用程序框架,专为敏捷开发而设计,强调简洁的代码和“约定优于配置”的原则。它主要用于构建数据驱动的Web应用,借助于MVC(Model-View-Controller)...

    Ruby On Rails中文教材(PDF)

    Ruby on Rails,简称Rails,是一款基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-Controller)架构模式,旨在简化Web应用程序的开发。Rails由David Heinemeier Hansson于2004年创建,它提倡“约定优于配置...

    ruby on rails 教程源码

    Ruby on Rails,简称Rails,是基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-Controller)架构模式,旨在使开发过程更加简洁高效。这个“ruby on rails 教程源码”很可能是为了辅助学习者深入理解Rails的...

    ruby on rails 开发环境包(ruby1.8.7,rails2.2.3)

    Ruby on Rails,简称Rails,是由David Heinemeier Hansson创建的一种基于Ruby语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在提高开发效率和可读性。在这个开发环境包中,我们拥有Ruby ...

    Ruby on Rails 4 Tutorial 中文版

    Ruby on Rails 4 Tutorial 是一本深受开发者欢迎的书籍,它详细介绍了如何使用Ruby on Rails这一强大的Web开发框架。Ruby on Rails(简称Rails)是基于Ruby语言的开源框架,以其“约定优于配置”(Convention over ...

Global site tag (gtag.js) - Google Analytics