测量协议是一套规则,只要应用遵循规则就可以向GA服务器发送原始数据。测量协议通常用于跨设备跟踪。
       通过这个协议,只要设备能链接网络,你可以收集和跟踪用户的交互数据并将其发送到GA服务器,这个设备可以是手机、平板、数字设备等。

介绍HTTP的请求和响应
         为了更好的理解测量协议的请求,你必须明白HTTP的请求和响应,所有的浏览器和服务器之前的数据交互都是通过HTTP的请求和响应完成的。浏览器和服务器通过发送http请求去请求资源,如HTML文本,图片和css等,服务器通过HTTP响应返回HTTP的请求数据给浏览器。
      HTTP请求的结构是这样的:
undefined
      HTTP响应的结构是这样的:
undefined
      你可以通过以下步骤去看HTTP的请求和响应:
1、打开Chrome浏览器
2、打开一个网页
3、按F12
4、点击“newwork”选项
undefined
在开发者窗口的右边,你将看到HTTP请求和响应的头部

测量协议的请求
      为了发送HTTP请求给GA服务器,你需要按照测量协议的规则格式化HTTP请求,这种格式化的HTTP请求就叫做测量协议请求,下面这个就是测量协议请求的样子:
undefined
       测量协议请求由user agent, transport和 payload data组成:
undefined
          在浏览器查看测量协议请求的步骤:
1、打开Chrome浏览器
2、打开一个部署有GA跟踪代码的站点
3、按F12
4、点击“Network”选项
undefined
5、在搜索框输入“collect”搜索,右边的开发者串口你就可以看到测量协议的请求:
undefined

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

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

         你可以再HTTP的请求中看到用户代理:
undefined

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


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

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

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

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

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

如何使用测量协议?
       在使用测量协议之前,你需要做以下几件事情:
1、让你的开发写程序将你需要的数据提取出来
undefined
2、将所需数据按照测量协议的格式组装
undefined
3、为了能成功发送数据给GA服务器,你还需要添添加HEEP请求的类型,请求中还需要包含用户代理,提交方式,传输的数据
undefined

        当GA介绍到你的发送的HTTP请求的时候,它就会处理HTTP请求里面传输的数据。如果GA服务器成功处理传输数据,服务器将会返回200的状态给你:
undefined
          如果GA服务器处理传输数据不成功,也不会发送错误代码给你,下面就是这个处理的流程图
undefined

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

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

测量协议的参数:
详见:测量协议的参数解析

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

通过POST方法发送传输数据
        你可以通过GET或POST方式发送传输数据,谷歌推荐使用POST方式,这样你可以发送竟可能多的数据给GA服务器,GA服务器的地址是: https://www.google-analytics.com
          如果你通过POST方式向GA发送数据,你需要将传输的数据按照URL编码,传输数据最大8191个字节;GET的最大2000个字节,按照下面的形式就可以向GA发送数据:
undefined

通过GET发放发送传输数据
         如果你不能通过POST方式提交数据,那你可以通过GET方式提交数据,按照如下格式
undefined

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

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”作为传输的结尾,如:
undefined
也就是:
undefined

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

 

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

版权声明:除非注明,本博客均为GA小站的原创文章,转载或引用请以超链接形式标明本文地址,请尊重版权,谢谢合作!(作者QQ:823138318)