`
iamzhangdabei
  • 浏览: 17825 次
  • 性别: 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 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中文教材(PDF)

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

    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社区网站开发源码

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

    Ruby on Rails入门权威经典

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

    ruby on rails api

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

    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