理解谷歌分析Measurement Protocol协议

Google Analytics Haran 8年前 (2016-12-08) 5712次浏览 0个评论

测量协议是一套规则,只要应用遵循规则就可以向GA服务器发送原始数据。测量协议通常用于跨设备跟踪。

通过这个协议,只要设备能链接网络,你可以收集和跟踪用户的交互数据并将其发送到GA服务器,这个设备可以是手机、平板、数字设备等。

介绍HTTP的请求和响应
为了更好的理解测量协议的请求,你必须明白HTTP的请求和响应,所有的浏览器和服务器之前的数据交互都是通过HTTP的请求和响应完成的。浏览器和服务器通过发送http请求去请求资源,如HTML文本,图片和css等,服务器通过HTTP响应返回HTTP的请求数据给浏览器。
HTTP请求的结构是这样的:
理解谷歌分析Measurement Protocol协议

HTTP响应的结构是这样的:
理解谷歌分析Measurement Protocol协议

你可以通过以下步骤去看HTTP的请求和响应:
1、打开Chrome浏览器
2、打开一个网页
3、按F12
4、点击“newwork”选项
理解谷歌分析Measurement Protocol协议
在开发者窗口的右边,你将看到HTTP请求和响应的头部

测量协议的请求
为了发送HTTP请求给GA服务器,你需要按照测量协议的规则格式化HTTP请求,这种格式化的HTTP请求就叫做测量协议请求,下面这个就是测量协议请求的样子:
理解谷歌分析Measurement Protocol协议

测量协议请求由user agent, transport和 payload data组成:
理解谷歌分析Measurement Protocol协议

在浏览器查看测量协议请求的步骤:
1、打开Chrome浏览器
2、打开一个部署有GA跟踪代码的站点
3、按F12
4、点击“Network”选项
理解谷歌分析Measurement Protocol协议
5、在搜索框输入“collect”搜索,右边的开发者串口你就可以看到测量协议的请求:
理解谷歌分析Measurement Protocol协议

用户代理简介
用户代理是一串字符串,用于浏览器服务器向web服务器发送数据时的区分标识。下面就是一个用户代理:

Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36

你可以再HTTP的请求中看到用户代理:
理解谷歌分析Measurement Protocol协议

传输数据简介
传输数据是只你通过测量协议发送给GA服务器的数据。也就是传输数据是已经按照测量协议规则格式化了个数据,下面就是一个传输数据的例子:
理解谷歌分析Measurement Protocol协议


v=1&tid=UA-123456-2&cid=36009a59-2a05-49e7-b826-2b884d0f935b&t=pageview&dp=%2Fhome

传输数据构成了URL的查询字符串,在问号的后面,传输数据可以包含多个参数,每一个参数都是键值对的形式。

传输数据的类型
有两种书传输类型
单个hits传输:传输数据只在一个hits发送给GA
多个hits传输:传输数据在多个hits发送给GA
注:单个hits传输不能大于8K

提交方式简介
提交表示是从哪里和怎么发送传输数据,下面就是一个提交的例子:

POST http://www.google-analytics.com/collect

理解谷歌分析Measurement Protocol协议

提交的构成:
1、GET/POST方法 表示怎样发送传递数据、
2、GA服务器的路径 发送传输数据的路径
3、URL的结束节点 用于区分是单hits发送还是多hits发送

测量协议的规则:
测量协议遵循以下一个规则

1、格式化协议请求
2、传输数据有数据长度和格式要求
3、传输参数有数据长度和格式要求
4、部分参数可以一起发送,部分不能一起
5、部分参数需要要求特殊的hits类型
6、要求键值对形式
7、有效的键
8、有效的hits类型
9、每个指有长度和格式要求
10、支持的数据类型
11、格式化提交方式

简单的说就是按照测量协议的请求的格式发送数据

如何使用测量协议?
在使用测量协议之前,你需要做以下几件事情:
1、让你的开发写程序将你需要的数据提取出来
理解谷歌分析Measurement Protocol协议
2、将所需数据按照测量协议的格式组装
理解谷歌分析Measurement Protocol协议
3、为了能成功发送数据给GA服务器,你还需要添添加HEEP请求的类型,请求中还需要包含用户代理,提交方式,传输的数据
理解谷歌分析Measurement Protocol协议
当GA介绍到你的发送的HTTP请求的时候,它就会处理HTTP请求里面传输的数据。如果GA服务器成功处理传输数据,服务器将会返回200的状态给你:
理解谷歌分析Measurement Protocol协议
如果GA服务器处理传输数据不成功,也不会发送错误代码给你,下面就是这个处理的流程图
理解谷歌分析Measurement Protocol协议

测量协议的使用政策
根据谷歌发布的测量协议许可政策,你只能在下列情形下使用:

1、你有来自合法渠道的权限去使用它
2、你不收集用户的个人隐私信息或可以识别特定个人的信息,如名字,邮箱地址
3、你必须给你收集的对象有明显的提示,让其知道它的数据被采集

测量协议的参数:
详见:测量协议的参数解析
测量协议之处的数据类型:整形,字符串,布尔型和货币

通过POST方法发送传输数据
你可以通过GET或POST方式发送传输数据,谷歌推荐使用POST方式,这样你可以发送竟可能多的数据给GA服务器,GA服务器的地址是: https://www.google-analytics.com

如果你通过POST方式向GA发送数据,你需要将传输的数据按照URL编码,传输数据最大8191个字节;GET的最大2000个字节,按照下面的形式就可以向GA发送数据:
理解谷歌分析Measurement Protocol协议

通过GET发放发送传输数据
如果你不能通过POST方式提交数据,那你可以通过GET方式提交数据,按照如下格式
理解谷歌分析Measurement Protocol协议

如何防止被缓存的 HTTP GET 请求?
在通过GET方式想GA服务器发送数据的时候,GET有可能被缓存,会导致请求不再唯一和从缓存检索后续的请求和发送给GA,为了防止这个,我们可以在传输数据的最后添加一个参数“z“,值是随机数,例如
理解谷歌分析Measurement Protocol协议
也就是:

https://www.google-analytics.com/collect?v=1&t=pageview&tid=UA-1029844-34&
cid=c461d1ba-d341-499f-bc9e-673b67f2aa18&dh=mydemo.com&
dp=%2Fhome&dt=testing%20page1111111%20tracking&z=12345

通过测量协议请求发送单hits
为了通过测量协议发送单hits给GA服务器,需要用“/colletc”作为传输的结尾,如:
理解谷歌分析Measurement Protocol协议
也就是:
理解谷歌分析Measurement Protocol协议

通过测量协议发送多hits
用“/batch”作为传输的结尾可以发送多hits,如:
理解谷歌分析Measurement Protocol协议
每个batch最多可以发送20个hits,整个传输数据不能大于16k

来源:https://www.optimizesmart.com/understanding-universal-analytics-measurement-protocol/


如有疑问,可以在文章底部留言或邮件(haran.huang@ichdata.com) 我~
喜欢 (1)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址