本文最后更新于 2018-12-25【184 天前】,文中所描述的信息可能已发生改变,请谨慎使用。如有问题或建议,欢迎在文章底部留言参与讨论!

本文介绍了一种只需 1.5KB 的代码即可实现 Google Analytics 进行流量追踪的方法:Minimal Analytics 将 Google 分析代码最小化,记录网站流量不拖慢速度。

为什么会有这种需求?

对于大部分网站来说,一般都会加个网站流量分析工具,记录下网站的流量、来源等信息,进行炫耀(划掉),或者进行专业的分析,提升用户量,增强用户粘性和转化率。一般最常用的工具是 Google Analytics,鉴于某些原因,有些站长可能会同时选用百度分析或者其他第三方分析,亦或者自建,在这里我们不做讨论,因为我只用 Google Analytics。

Google Analytics 的优点是只要加入一段代码就能使用,并且搜集和分析的信息也非常的完整全面,可以说是最强大的网站分析工具了。然而,其弊端也非常明显,除了 404 之外,Google Analytics 会拖慢网站的整体速度。虽然 Google 官方提供了异步加载的方式,宣称不影响网站速度,然而 Google Analytics 要想实现众多的追踪,必然要载入相当的文件,进而会拖累网站的速度。

对于我这种只想记录网站的页面浏览次数,不需要进行众多的分析(因为用不上也不会用),是不是可以舍弃一些不必要的加载库,只让流量计数器发挥效果?

解决办法

有开发者提供了一个解决之道,Minimal Google Analytics Snippet ,一个相当有趣的开源代码项目:舍弃那些 Google 分析中臃肿的程序库,只会记录追踪页面浏览次数(也就是所谓的网站流量),依照开发者说法,相较于 Google Tag Manager 加上 Analytics 会用掉 73kB 大小来说,这段「最佳化」之后的程式码只有 1.3kB,差异性不言可喻。

仅需将代码复制到网站上,删除原有代码,即可实现精简,提升网站速度!食用方法如下。

复制代码

打开 Minimal Analytics 网站,从右半部可以找到压缩后的代码,相较于原有追踪程式码大小,压缩化后只有剩下相当少的 1.5kB。
Minimal Google Analytics Snippet - Quanyin说:imtqy.com

<script>
  (function(a,b,c){var d=a.history,e=document,f=navigator||{},g=localStorage,
  h=encodeURIComponent,i=d.pushState,k=function(){return Math.random().toString(36)},
  l=function(){return g.cid||(g.cid=k()),g.cid},m=function(r){var s=[];for(var t in r)
  r.hasOwnProperty(t)&&void 0!==r[t]&&s.push(h(t)+"="+h(r[t]));return s.join("&")},
  n=function(r,s,t,u,v,w,x){var z="https://www.google-analytics.com/collect",
  A=m({v:"1",ds:"web",aip:c.anonymizeIp?1:void 0,tid:b,cid:l(),t:r||"pageview",
  sd:c.colorDepth&&screen.colorDepth?screen.colorDepth+"-bits":void 0,dr:e.referrer||
  void 0,dt:e.title,dl:e.location.origin+e.location.pathname+e.location.search,ul:c.language?
  (f.language||"").toLowerCase():void 0,de:c.characterSet?e.characterSet:void 0,
  sr:c.screenSize?(a.screen||{}).width+"x"+(a.screen||{}).height:void 0,vp:c.screenSize&&
  a.visualViewport?(a.visualViewport||{}).width+"x"+(a.visualViewport||{}).height:void 0,
  ec:s||void 0,ea:t||void 0,el:u||void 0,ev:v||void 0,exd:w||void 0,exf:"undefined"!=typeof x&&
  !1==!!x?0:void 0});if(f.sendBeacon)f.sendBeacon(z,A);else{var y=new XMLHttpRequest;
  y.open("POST",z,!0),y.send(A)}};d.pushState=function(r){return"function"==typeof d.onpushstate&&
  d.onpushstate({state:r}),setTimeout(n,c.delay||10),i.apply(d,arguments)},n(),
  a.ma={trackEvent:function o(r,s,t,u){return n("event",r,s,t,u)},
  trackException:function q(r,s){return n("exception",null,null,null,null,r,s)}}})
  (window,"XX-XXXXXXXXX-X",{anonymizeIp:true,colorDepth:true,characterSet:true,screenSize:true,language:true});
</script>

原始未压缩代码可以从 Github Gist 上获得:https://gist.github.com/DavidKuennen/443121e692175d6fc145e1efb0284ec9

放到网站上

复制代码并贴到你的网站或应用程式后,将最后面的 XX-XXXXXXXX-X 修改为你的 Google Analytics 追踪程式码 ID,如此一来就算搞定!你也可以修改一下代码里想要追踪的项目。

如果你的网站本来就有放置 Google Analytics 代码,加入 Minimal Analytics 代码后记得将原有的程式码完整移除,如此一来就能够使用 Google 分析的网页浏览次数计数功能,不用额外载入其他用不到的代码了!

原理

最后来简单说一下原理,上述代码是将网页的浏览信息直接发送到 Google Analytics API,这样就无需添加 Google 跟踪代码管理器和分析库了,这不仅节省了带宽,还对网站的加载速度产生相当积极正面的帮助。

提醒

为什么选择这么做?

  • 将 Google Analytics 代码大幅缩小,仅记录网站流量
  • 避免载入过多程式库拖慢网站速度
  • 从原有大小 73kB 压缩后只剩下1.5kB

当然,如果您想使用跟踪 AdWords 等高级功能,则不应使用此功能。

信息来源:https://free.com.tw/minimal-google-analytics-snippet/
代码来源:https://minimalanalytics.com/
文章目录

推荐使用:阿里云 云翼计划学生优惠、ECS、轻量应用等产品与服务【 点击注册

本文作者:Quanyin Tang

本文链接:精简 Google Analytics 代码,提升网站速度! - https://www.imtqy.com/minimal-google-analytics.html

版权声明:如无特别声明,本文即为原创文章,仅代表个人观点,版权归 Quanyin 所有,未经允许禁止转载,经授权转载请注明出处!