文:梁丽仪
2022年6月,Google已推出正式版GA4 Measurement Protocol, 用于增强和完善客户端收集的数据。在本文中,我们将对GA4 Measurement Protocol工具进行一个简单的介绍,并介绍一些使用中需注意的事项。
01、Measurement Protocol 介绍
1、产品简介&定位:
借助Measurement Protocol, 开发者可以通过HTTP请求直接将事件发送至GA服务器,从而增强和完善网站端与应用端收集的数据。
值得注意的是,Measurement Protocol 的意图是作为gtag、 GTM、Firebase(下文中简称客户端埋点)埋点的扩充,而不是取代它们。开发者可以通过Measurement Protocol实现以下目标:
(1)将线上和线下行为联系起来
(2)衡量客户端和服务器端的互动情况
(3)发送除普通用户互动之外的事件(比如线下的转化)
(4)发送来自无法使用自动采集功能的设备和应用(如自助服务终端、手表等)的事件
2、注意事项:
鉴于Measurement Protocol 可以实现数据上报的需求,部分开发者可能希望直接通过Measurement Protocol 进行数据上报,而不在前端进行gtag、GTM或Firebase的代码部署。
如产品简介中提及,Measurement Protocol旨在补充客户端埋点收集的事件,而不是取代他们,官方文档中也提及了几点注意事项:
“再营销”:启用Google Signals后,可对同一设备进行再营销。对于跨设备再营销,还需有 User ID。
解读:
再营销功能依赖于Google Signals。通过Measurement Protocol上报的数据中并不携带Google Signals的相关信息(未提供相关字段进行上报),故如需使用再营销功能,仍需要结合客户端埋点。在创建受众群体时,也尽量在条件中配置上客户端埋点部署的事件。
对于跨设备再营销,需要在使用Measurement Protocol上报时,通过user_id字段上报User ID。
“地理位置信息”:地理位置信息只能通过自动收集功能从 gtag、GTM或 Firebase 获取。
解读:
地理位置的识别同样依赖于客户端的埋点,且Measurement Protocol中也未提供地理位置信息上报的字段。测试发现,仅使用Measurement Protocol进行数据上报时,在地理位置相关报告中未显示出对应数据。
“完整服务器到服务器”: 虽然仅使用 Measurement Protocol 可以将事件发送到 GA,但这样只能查看报告的部分内容。Measurement Protocol 旨在扩充通过 gtag、GTM 或 Firebase 收集的现有事件。某些事件名称和参数名称是预留的,供通过自动收集使用,无法通过 Measurement Protocol 发送。
解读:
可以不结合客户端埋点,仅通过Measurement Protocol进行数据上报,实现完整服务器到服务器(Full Server to Server)的场景,但部分报告内容无法正常查看。某些事件的名称和参数名称是预留的,比如session_start, first_open, first_visit, screen_view等事件,以及以firebase_, ga_, google_开头的事件参数,均不可通过Measurement Protocol进行上报。在目前的测试结果中:
- 如仅通过Measurement Protocol进行上报,在会话层级、用户层级的来源媒介识别上均存在问题;
- 因无法通过Measurement Protocol上报first_open, first_visit事件,在新用户的识别上会有问题。
更多参考信息:
GA4 MP 官方介绍:
https://developers.google.com/analytics/devguides/collection/protocol/ga4
预留事件以及预留参数:
02、Measurement Protocol 事件发送注意事项
通过Measurement Protocol 发送事件以及用户属性的方式,可参考以下链接:
发送事件:
用户属性:
https://developers.google.com/analytics/devguides/collection/protocol/ga4/user-properties
根据当前的测试结果,对以下特殊的参数进行说明:
1、timestamp_micros参数
定义:与事件相关联的时间的 UNIX 时间戳(以微秒为单位)。此值应仅设置为记录过去发生的事件。此值可通过 user_property 或事件时间戳予以替换。事件回溯期最长为 3 个日历天(以媒体资源的时区为准)。
说明:此参数用于指定GA4事件发生的时间,区别于这个HTTP请求发送的时间,达到记录过去发生的事件的目的。
从当前测试中发现,该参数只能指定在72小时内,如果时间超过72小时,或指定未来的时间,均会以HTTP请求发送的时间为准。
2、session_id参数
定义:会话 ID 用于标识事件来自哪个会话。例如,当用户在您的网站上有两个单独的会话时,系统会生成两个不同的会话 ID。
说明:此参数是正式版Measurement Protocol新增添的参数,用于标识事件属于哪一个会话。在测试中发现,假如指定一个新的session_id,GA4会开启一个新的会话记录这个事件,即使没有触发session_start事件(预留事件)。
当前session_id的格式为10位数字(会话开启那一秒的时间戳),暂不支持字母,下划线等格式。
3、engagement_time_msec参数:
定义:距离会话中上一个事件的互动时间。
说明:此参数也是正式版Measurement Protocol新增的参数,用于上报用户互动时长。
在测试中发现,如果engagement_time_msec未包含在HTTP请求,或传值为0时,正式报告可以正常识别,但是目前在实时报告中,只能识别该事件,无法识别该用户,Debug View不能正常使用。
综上所诉,Measurement Protocol 旨在作为客户端埋点的补充,更建议将 Measurement Protocol 视为一个扩充已有埋点的工具,仍以客户端埋点作为主要的数据来源,以保证GA4收集到的数据均可正常且更完整的展示。