最近有朋友问,为什么我的网站打开时在执行google analytics有较长的停顿时间。要如果解决?这个问题其实很早就有,最好的解决办法是将网站所有页面的传统追踪代码统一替换为最新的异步追踪代码。不过如果你已经进行了很多个性化的追踪代码定制,这会是个不小的工作。因为异步追踪代码和传统追踪代码在很多方面不能通用。如:虚拟页面,事件追踪等等。需要逐个修改。所以,如果你还不想替换为异步追踪代码,但又想解决这个问题,那么可以试试下面的办法。通过优化传统的google analytics追踪代码来减少停顿时间。

追踪代码的功能简述:

在优化前,先看下页面内追踪代码的主要功能。传统的google analytics追踪代码分为两部分。第一部分动态确定当前页面的HTTP协议是否加密。然后使用HTTP或HTTPS协议来请求ga.js文件。第二部分包括所属的配置文件ID,执行页面追踪所须的方法。及JavaScript的错误处理。同时,所有的追踪代码定制内容也都会包含在这部分。

追踪代码的加载流程:

其次还需要了解追踪代码的工作流程。就是说,在产生停顿的这段时间里,google analytics的追踪代码都在做什么?当打开一个带有google analytics追踪代码的页面时,追踪代码会首先判断所在页面的类型,然后向对应的地址(http://或https://)请求ga.js文件。ga.js文件在执行的过程中检查cookie的内容并收集其他的信息。最后通过请求一个_utm.gif图片,将所有收集到的信息附在参数中返回google服务器。

粗略的来看,在这段时间中google analytics追踪代码完成了下面4个操作。

1判断所在页面类型

2请求ga,js文件

3执行ga.js文件

4收集并返回数据

按照上面的4个步骤,我们找出可以进行优化的部分。尽量减少停顿的时间。

优化追踪代码的三种方法:

1省略页面类型判断

google analytics追踪代码第一部分的设计是用来自动匹配加密和非加密两种页面类型的。对于没有加密页面的网站,可以省略这里的判断。将第一部分直接写成

<script type=”text/javascript” src=”http://www.google-analytics.com/ga.js”></script>

当页面被访问时,代码不会判断当前页面的类型。而是直接向http://www.google-analytics.com/ga.js这个地址请求JS文件。如果你的网站既有加密页面也有非加密页面,也可以写成这种模式

<script type=”text/javascript” src=”https://www.google-analytics.com/ga.js”></script>

同步ga,js文件加载速度

Google analytics的服务器在美国。ga.js文件大约有25K。当访客第一次访问你网站时,页面追踪代码需要从服务器上下载这个ga.js文件。(在后续的访问中,如果js文件没有更新,GA会直接使用本地缓存中的ga,js文件。)

这里可以将ga.js文件保存下来,上传到自己网站的根目录下。然后修改追踪代码中的文件请求地址。例如:假设我将ga.js文件上传到自己博客的根目录下。同时修改追踪代码第一部分的请求地址。

<script type=”text/javascript” src=”http://bluewhale.cc/ga.js”></script>

这样,ga.js文件的加载速度就和你的网站同步了。但需要注意的是,google会不定期的更新ga.js文件。所以你也需要定期更新这个ga,js文件。保持与google最新版本同步。

PS:其实从google服务器上下载这个js文件时速度并不慢,更多的可能是心理因素。

3省略cookie完整性检查

在前面关于cookie的文章中曾经介绍过,每个cookie值的第一组数字都是域的哈希值,用来检查cookie的完整性。这个功能在跨根域追踪时是要被禁用的。在这里,你也可以关闭掉这个功能来提高ga,js代码的执行效率。方法是在追代码的第二部分加入pageTracker._setAllowHash(false);关闭域哈希值后,ga,js每次执行时将不再检查cookie的完整性。

google-analytics.com的更多相关文章

  1. 使用 Google Analytics 跟踪 JavaScript 错误

    Google Analytics(谷歌分析)不仅仅是一个流量统计工具,你还可以用它来测量广告活动的有效性,跟踪用户多远到所需的页面流(从点击广告到购物车到结账页面)获取,并基于用户的信息设置浏览器和语 ...

  2. Google Analytics统计代码GA.JS中文教程

    2010-12-06 11:07:08|  分类: java编程 |  标签:google  analytics  ga  js  代码  |举报|字号 订阅     Google Analytics ...

  3. Google Analytics与百度统计原理

    Google Analytics与百度统计的统计数据都是有差异的,而且差异非常大,其根本原因在于数据统计的原理和机制是不同的.下面分享一下两位博友李鑫和赵高欣对Google Analytics与百度统 ...

  4. Google Analytics Premium VS Adobe Analytics

    在很久以前的互联网年代,Google收购了一家名为Urchin的公司,进而演化诞生了Google Analytics.当Goochin(Google / Urchin)首次亮相时,它被所有人称为“新的 ...

  5. 用Google Analytics跟踪JavaScript Errors (译)

    通过custom events来实施 // Track basic JavaScript errors window.addEventListener('error', function(e) { _ ...

  6. Google Analytics SEO 实时 网站 访问量 统计

    /*************************************************************************** * Google Analytics SEO ...

  7. Google Analytics:为链接点击设定事件追踪的方法

    在 Google Analytics 中,可以使用 Event Tracking 功能跟踪自定义的事件.但是,如果你要跟踪的是一个链接点击,那么单纯这样写则很有可能导致漏掉许多事件: <a hr ...

  8. 【转载】国内网站博客数据统计选免费Google Analytics还是百度统计

    [转载]国内网站博客数据统计选免费Google Analytics还是百度统计 Google Analytics谷歌统计是我用的第一个网站统计工具,当然现在也一直在用.Google Analytics ...

  9. 【转载】Google Analytics 使用图文全攻略

    转载自:Google Analytics 使用图文全攻略 最近一段时间,因为工作的需要,小励使用GA(GA是Google Analytics的简称)比较频繁,所以花时间研究了一下,从不太了解到会使用( ...

  10. [翻译]在Django项目中添加谷歌统计(Google Analytics)

    原文:<Google Analytics tracking code into Django projects, the easy way> 对我来说,制作一个可扩展的Django应用随时 ...

随机推荐

  1. Spark集群 + Akka + Kafka + Scala 开发(2) : 开发一个Spark应用

    前言 在Spark集群 + Akka + Kafka + Scala 开发(1) : 配置开发环境,我们已经部署好了一个Spark的开发环境. 本文的目标是写一个Spark应用,并可以在集群中测试. ...

  2. CentOS6.5下安装PostgreSQL

    一.配置 YUM 仓库 修改原始的 yum 仓库配置: vim /etc/yum.repos.d/CentOS-Base.repo 在[base]和[updates] 节(section)部分的尾部插 ...

  3. MongoDB,客户端工具备份数据库

    本篇介绍下如何利用客户端工具来进行远程服务器的数据备份到本地. 以客户端工具MongoVUE为例来进行讲解: 1.首先要连接本地服务器以及远程服务器数据库 2.在本地服务器(127.0.0.1)中,右 ...

  4. 简单粗爆的解决同时布CRM引起的死锁问题

    和同事一起发布CRM引起CRM死锁,当然可以重启SQL Server不过有更简单的方法,直接执行下面的语句即可 sp_lock kill 58

  5. “破解大牛是怎么炼成的”之壳与ESP定律

    文章难易度:★★★ 文章阅读点/知识点:逆向破解 文章作者:Sp4ce 文章来源:i春秋   关键字:网络 信息安全技术 本文参与i春秋社区原创文章奖励计划,未经许可禁止转载! 一.前言 通过前面几篇 ...

  6. SharePoint 2013 搜索报错"Unable to retrieve topology component health. This may be because the admin component is not up and running"

    环境描述 Windows 2012 R2,SharePoint 2013(没有sp1补丁),sql server 2012 错误描述 搜索服务正常,但是爬网一直在Crawling Full,但是爬不到 ...

  7. Jquery plupload上传笔记(修改版)

    找一个好的上传插件不容易啊,最近看好一个上传插件,查了些网上质料,自己做了些改动,记录下来,来彰显自己曾经屌丝过,这插件还不错,支持多个上传和预览 首先引用,发现有的时候想学点新的东西,不过时间久了也 ...

  8. 腾讯bugly 的crash 上报和umeng的比较

    说到crash上传工具,大家肯定会第一时间想到umeng,不错,umeng 是最早推出 crash 上报的工具之一,在刚推出来的时候,特别受到ios开发人员的喜爱. 因为个时候,内存是手动管理的,很容 ...

  9. 获取在线APP的素材图片

    1.打开iTunes,搜索并下载APP 2.打开下载的APP的路径 4.对ipa包进行解压 5.找到app,右键"显示包内容"进行查看 6.结果

  10. android加固系列—4.加固前先学会破解,无源码调试apk

    [版权所有,转载请注明出处.出处:http://www.cnblogs.com/joey-hua/p/5138585.html] 项目关键java代码为,将tv设置为从jni读取的字符串,这里的破解内 ...