一个简单的代码段,用于跟踪网站上的网页浏览量,而无需添加外部库。 也适用于使用react和vue.js等单页应用程序。

Before

Google Tag Manager + Analytics = 73kB

After

Snippet = 1.5kB

<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> Setup: Just put the snippet into your html, replace 'XX-XXXXXXXXX-X' with your tracking id and you're ready to go. You can also add options for what information you want to track. Event: ma.trackEvent('Category', 'Action', 'Label', 'Value') Exception: ma.trackException('Description', 'Fatal')

最新文章

  1. 51nod 1712 区间求和
  2. spring session 和 spring security整合
  3. STL之vector
  4. ::before/:before和::after/:after的使用
  5. [Android Pro] Android性能优化典范第一季
  6. nodejs之获取客户端真实的ip地址+动态页面中引用静态路径下的文件及图片等内容
  7. Java Web系列:Spring Boot 基础
  8. drawer principle in Combinatorics
  9. php获取从百度搜索进入网站的关键词
  10. SQL Server 2005中的分区表(六):将已分区表转换成普通表(转)
  11. C# JSON使用的常用技巧(一)
  12. 通过maven添加quartz
  13. 简单易懂的现代魔法——Play Framework攻略4
  14. 从C++对象内存布局和构造过程来具体分析C++中的封装、继承、多态
  15. android Makefile把jar包打到apk里
  16. (转载)一个生动的NIO描述
  17. jquery的冒泡事件event.stopPropagation()
  18. 阿里JAVA开发手册零度的思考理解(一)
  19. 新工具︱微软Microsoft Visual Studio的R语言模块下载试用Ing...(尝鲜)
  20. angular学习3

热门文章

  1. grunt 插件
  2. Nuget私有服务搭建实战
  3. 实战深度学习OpenCV(一):canny边缘检测
  4. #Java学习之路——基础阶段(第三篇)
  5. Windows环境安装运行:Angular.js
  6. Linux 虚拟网络设备详解之 Bridge 网桥
  7. 【jpa】spring data jpa 配置使用
  8. 基于ipv6的数据抓包
  9. Shell获取时间,日期,上月,当月,下月
  10. 心路历程(一)-自学java两个月心得