一个统计分析平台架构的挑战来自以下 5 个:

(1)日志采集

(2)元数据管理

(3)业务数据建模

(4)任务调度

(5)OLAP引擎

数据采集的三个阶段

(一)埋点阶段

(二)数据收集阶段

(三)后端处理阶段

如上所示,从broswer到page,再到javascript以及后端backend,浏览器返回正常程序运行结果,本地文件中返回最终的log,这很像是在用户程序中埋下了一段“暗代码”,无形之中“窃取”了用户的行为信息。

数据收集脚本,被请求后会被执行,这个脚本一般要做如下几件事:

(1)通过浏览器内置javascript对象收集信息,如页面title(通过document.title)、referrer(上一跳url,通过document.referrer)、用户显示器分辨率(通过windows.screen)、cookie信息(通过document.cookie)等等一些信息。

(2)解析_gaq收集配置信息。这里面可能会包括用户自定义的事件跟踪、业务数据(如电子商务网站的商品编号等)等。

(3)将上面两步收集的数据按预定义格式解析并拼接。

(4)请求一个后端脚本,将信息放在http request参数中携带给后端脚本。

这里唯一的问题是步骤4,javascript请求后端脚本常用的方法是ajax,但是ajax是不能跨域请求的。这里ga.js在被统计网站的域内执行,而后端脚本在另外的域(GA的后端统计脚本是http://www.google-analytics.com/__utm.gif),ajax行不通。一种通用的方法是js脚本创建一个Image对象,将Image对象的src属性指向后端脚本并携带参数,此时即实现了跨域请求后端。这也是后端脚本为什么通常伪装成gif文件的原因。

展示结果



 

【WEb数据采集之js埋码】相关推荐

  1. flume数据采集:js埋点

  2. js define函数_不夸张,这真的是前端圈宝藏书!360前端工程师Vue.js源码解析

    优秀源代码背后的思想是永恒的.普适的. 这些年来,前端行业一直在飞速发展.行业的进步,导致对从业人员的要求不断攀升.放眼未来,虽然仅仅会用某些框架还可以找到工作,但仅仅满足于会用,一定无法走得更远.随 ...

  3. Java埋码_oCPC JS SDK 基础代码安装指南

    oCPC JS SDK 基础代码安装指南 最后更新时间:2020.04.10 安装步骤 获取代码 以下代码为SDK的安装代码.注:production值唯一,所有客户共用同一值,百度根据数据来源自动区 ...

  4. 常用JS库源码 - store.js源码/underscore.js源码

    常用JS库源码 Store.js源码 "use strict" // Module export pattern from // https://github.com/umdjs/ ...

  5. 【Vue.js源码解析 一】-- 响应式原理

    前言 笔记来源:拉勾教育 大前端高薪训练营 阅读建议:建议通过左侧导航栏进行阅读 课程目标 Vue.js 的静态成员和实例成员初始化过程 首次渲染的过程 数据响应式原理 – 最核心的特性之一 准备工作 ...

  6. Web前端-Vue.js必备框架(一)

    Web前端-Vue.js必备框架(一) <!DOCTYPE html> <html lang="en"> <head><meta char ...

  7. 从template到DOM(Vue.js源码角度看内部运行机制)

    写在前面 这篇文章算是对最近写的一系列Vue.js源码的文章(github.com/answershuto-)的总结吧,在阅读源码的过程中也确实受益匪浅,希望自己的这些产出也会对同样想要学习Vue.j ...

  8. web开发常用js及html代码(待整理)

    css 创建CLASS并不是建立多种风格的唯一手段, ID也可以用来实现同一规则被应用到页面中不同的地方. 它的语法是: #id名 {标志属性:属性值:标志属性:属性值:--标志属性:属性值} 如上面 ...

  9. web开发常用js及html代码

    本文出自:http://tb.blog.csdn.net/TrackBack.aspx?PostId=710544 css 创建CLASS并不是建立多种风格的唯一手段, ID也可以用来实现同一规则被应 ...

  10. java计算机毕业设计基于web的老年公寓管理源码+数据库+系统+lw文档+mybatis+运行部署

    java计算机毕业设计基于web的老年公寓管理源码+数据库+系统+lw文档+mybatis+运行部署 java计算机毕业设计基于web的老年公寓管理源码+数据库+系统+lw文档+mybatis+运行部 ...

最新文章

  1. Scrum敏捷开发工具Leangoo-卡片多选
  2. 几种移动开发技术的比较和选型
  3. Webservice接口、Webservice例子
  4. linux on zfs,在zfsonlinux中增长zpool
  5. leetcode 202. 快乐数 思考分析(哈希集合与双指针解)
  6. 人工智能的本源与展望:从亚里士多德到平行智能
  7. python 字符串不区分大小写_还在吐槽文本字符串难以处理,Python的这个绝活你还不知道
  8. java怎么配置tomcat_Eclipse中配置Tomcat
  9. Json 语法 格式
  10. 网管学习日记-STP
  11. N卡A卡流处理器的区别解析
  12. html点击文本框唤醒手机键盘,html移动应用 input 标签 清除按钮功能如何实现(不触发键盘)...
  13. [转载] 使用hexo+github搭建免费个人博客详细教程
  14. ibm x3850 x5连接存储后,linux操作系统无法正常启动,《七小服公开课》— IBM X3850 X5服务器无法开机故障 处理步骤...
  15. AS-修改APP图标和名字
  16. 数据库字段数据(昵称)排序,规则: 数字英文字母汉字首字母 兼容简繁体排序
  17. [每日一氵] Python内部创建一个进程,等用完再结束掉他
  18. 输入中文转换成拼音首字母
  19. 中小企业安全路由器防火墙
  20. 什么是抽象类?抽象类有什么特点?举例说明抽象类及其成员的定义方法。

热门文章

  1. 爬取徐州市自然资源和规划局土地数据
  2. python 实现复数计算器
  3. 关于8421BCD码修正加6问题
  4. Navicat批量修改数据库某一属性初始值
  5. 年终盘点:2021年中国科技的重大突破
  6. 如何修复DNS劫持?dns被劫持了怎么办有什么解决方法
  7. TeamViewer一直显示“未就绪”什么原因?
  8. python中selenium关于滚动条的循环下拉滚动操作---滚动条操作
  9. C盘满了,要怎么清理才不会误删?
  10. Java字符串(超超超详细)