【WEb数据采集之js埋码】
一个统计分析平台架构的挑战来自以下 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埋码】相关推荐
- flume数据采集:js埋点
- js define函数_不夸张,这真的是前端圈宝藏书!360前端工程师Vue.js源码解析
优秀源代码背后的思想是永恒的.普适的. 这些年来,前端行业一直在飞速发展.行业的进步,导致对从业人员的要求不断攀升.放眼未来,虽然仅仅会用某些框架还可以找到工作,但仅仅满足于会用,一定无法走得更远.随 ...
- Java埋码_oCPC JS SDK 基础代码安装指南
oCPC JS SDK 基础代码安装指南 最后更新时间:2020.04.10 安装步骤 获取代码 以下代码为SDK的安装代码.注:production值唯一,所有客户共用同一值,百度根据数据来源自动区 ...
- 常用JS库源码 - store.js源码/underscore.js源码
常用JS库源码 Store.js源码 "use strict" // Module export pattern from // https://github.com/umdjs/ ...
- 【Vue.js源码解析 一】-- 响应式原理
前言 笔记来源:拉勾教育 大前端高薪训练营 阅读建议:建议通过左侧导航栏进行阅读 课程目标 Vue.js 的静态成员和实例成员初始化过程 首次渲染的过程 数据响应式原理 – 最核心的特性之一 准备工作 ...
- Web前端-Vue.js必备框架(一)
Web前端-Vue.js必备框架(一) <!DOCTYPE html> <html lang="en"> <head><meta char ...
- 从template到DOM(Vue.js源码角度看内部运行机制)
写在前面 这篇文章算是对最近写的一系列Vue.js源码的文章(github.com/answershuto-)的总结吧,在阅读源码的过程中也确实受益匪浅,希望自己的这些产出也会对同样想要学习Vue.j ...
- web开发常用js及html代码(待整理)
css 创建CLASS并不是建立多种风格的唯一手段, ID也可以用来实现同一规则被应用到页面中不同的地方. 它的语法是: #id名 {标志属性:属性值:标志属性:属性值:--标志属性:属性值} 如上面 ...
- web开发常用js及html代码
本文出自:http://tb.blog.csdn.net/TrackBack.aspx?PostId=710544 css 创建CLASS并不是建立多种风格的唯一手段, ID也可以用来实现同一规则被应 ...
- java计算机毕业设计基于web的老年公寓管理源码+数据库+系统+lw文档+mybatis+运行部署
java计算机毕业设计基于web的老年公寓管理源码+数据库+系统+lw文档+mybatis+运行部署 java计算机毕业设计基于web的老年公寓管理源码+数据库+系统+lw文档+mybatis+运行部 ...
最新文章
- Scrum敏捷开发工具Leangoo-卡片多选
- 几种移动开发技术的比较和选型
- Webservice接口、Webservice例子
- linux on zfs,在zfsonlinux中增长zpool
- leetcode 202. 快乐数 思考分析(哈希集合与双指针解)
- 人工智能的本源与展望:从亚里士多德到平行智能
- python 字符串不区分大小写_还在吐槽文本字符串难以处理,Python的这个绝活你还不知道
- java怎么配置tomcat_Eclipse中配置Tomcat
- Json 语法 格式
- 网管学习日记-STP
- N卡A卡流处理器的区别解析
- html点击文本框唤醒手机键盘,html移动应用 input 标签 清除按钮功能如何实现(不触发键盘)...
- [转载] 使用hexo+github搭建免费个人博客详细教程
- ibm x3850 x5连接存储后,linux操作系统无法正常启动,《七小服公开课》— IBM X3850 X5服务器无法开机故障 处理步骤...
- AS-修改APP图标和名字
- 数据库字段数据(昵称)排序,规则: 数字英文字母汉字首字母 兼容简繁体排序
- [每日一氵] Python内部创建一个进程,等用完再结束掉他
- 输入中文转换成拼音首字母
- 中小企业安全路由器防火墙
- 什么是抽象类?抽象类有什么特点?举例说明抽象类及其成员的定义方法。