本页介绍了 Measurement Protocol 的传输机制和数据参数。
传输
所有数据都必须使用 HTTPS POST 请求安全地发送。
向以下端点发送请求:
https://www.google-analytics.com/mp/collect
如果您希望在欧盟境内处理数据,请改用以下端点:
https://region1.google-analytics.com/mp/collect
以下是 POST 请求示例:
POST /mp/collect HTTP/1.1
HOST: www.google-analytics.com
Content-Type: application/json
PAYLOAD_DATA
将 PAYLOAD_DATA 替换为请求的 Payload。
收到 HTTP 请求时,Measurement Protocol 会返回 2xx 状态代码。如果载荷格式有误,或者数据不正确或未被 Google Analytics 处理,Measurement Protocol 不会返回任何错误代码。
载荷
载荷包含两个部分:
- 查询参数。
- JSON
POST正文。
查询参数
| 参数名称 | 说明 |
|---|---|
|
必需。Google Analytics 界面中的 API 密钥。
可在以下位置下找到:管理 > 数据流 > 选择您的数据流 > Measurement Protocol > 创建。 仅向组织内部的受邀用户公开。应定期更新,以免产生过多垃圾内容。 |
JSON POST 正文
| 键 | 类型 | 说明 |
|---|---|---|
|
string |
可选。用户的唯一标识符。如需详细了解此标识符,请参阅使用 User-ID 进行跨平台分析。 只能包含 UTF-8 字符。 |
|
number |
可选。Unix 时间戳(以微秒为单位),而非毫秒。表示活动的时间。此值应仅设置为记录过去发生的事件。可通过 |
|
object |
可选。用于衡量的用户属性。 |
|
object |
可选。用户提供的数据。 |
|
object |
可选。相应请求的用户意见征求设置。如需了解详情,请参阅“Consent”部分。 |
|
boolean |
可选。设置为 true 以指明不应将用户的数据用于个性化广告。
|
|
object |
可选。以结构化格式为请求设置地理位置信息。 |
|
string |
可选。Google Analytics 用于为请求派生地理位置信息的 IP 地址。 |
|
object |
可选。以结构化格式为请求设置设备信息。 |
|
array |
必需。一个包含 event 个元素的数组。每个请求最多可以发送 25 个事件。如需查看所有有效事件,请参阅事件参考。
|
|
string |
必需。活动名称。如需查看所有选项,请参阅事件。 |
|
object |
可选。相应活动的参数。如需查看系统为各个事件推荐的参数,请参阅事件,另请参阅常见事件参数。 |
常用事件参数
Measurement Protocol 具有以下常见事件参数:
| 键 | 类型 | 说明 |
|---|---|---|
|
number |
一个正数,用于标识用户会话。对于一些常见使用情形,此权限是必需的。
必须与正则表达式 ^\d+$ 匹配。
|
|
number |
相应事件的用户互动时长(以毫秒为单位)。使用一个反映自上一个事件以来用户参与时长的值。 |
|
number |
相应事件的 Unix 纪元时间(以微秒为单位)。使用此参数可替换事件的时间戳。 |
同意
consent 属性用于配置用户意见征求类型和同意情况。如果您不指定 consent,Google Analytics 会使用相关客户或应用实例的相应线上互动的用户意见征求设置。
| 键 | 类型 | 说明 |
|---|---|---|
|
string |
可选。有关出于广告目的将请求中的事件和用户属性的用户数据发送给 Google 的用户意见征求情况。
|
|
string |
可选。用户对个性化广告的同意情况。
|
地理位置信息
user_location 和 ip_override 属性提供地理位置信息。
user_location 优先于 ip_override。
以下是 user_location 字段的结构。请提供尽可能多的属性。我们建议至少使用 country_id 和 region_id。
| 键 | 类型 | 说明 |
|---|---|---|
|
string |
可选。城市名称。如果城市位于美国,请同时设置 country_id 和 region_id,以便 Google Analytics 能够将城市名称正确映射到城市 ID。
|
|
string |
可选。ISO 3166 国家/地区和子区域。例如,US-CA、US-AR、CA-BC、GB-LND、CN-HK。
|
|
string |
可选。国家/地区,采用 ISO 3166-1 alpha-2 格式。例如,US、AU、ES、FR。
|
|
string |
可选。采用 UN M49 格式的次大陆。例如,011、021、030、039。
|
|
string |
可选。采用 UN M49 格式表示的大陆。例如,002、019、142、150。
|
以下是 user_location 的示例:
"user_location": {
"city": "Mountain View",
"region_id": "US-CA",
"country_id": "US",
"subcontinent_id": "021",
"continent_id": "019"
}
ip_override 是 user_location 的替代方案。如果您改为发送 ip_override,Google Analytics 会根据 IP 地址得出地理位置信息。
如果您发送 user_location,Google Analytics 会忽略 ip_override。
如果您不发送 user_location 或 ip_override,Google Analytics 会使用
client_id。
无论发送的地理位置信息如何,Google Analytics 都会将媒体资源的精细位置数据设置应用于请求。
设备信息
如需发送设备信息,请使用 device 字段。以下是 device 字段的结构。提供尽可能多的属性。我们建议至少使用 category。
| 键 | 类型 | 说明 |
|---|---|---|
|
string |
可选。设备的类别。例如:
desktop
tablet
mobile
smart TV。
|
|
string |
可选。语言,采用 ISO 639-1 格式。例如,en、en-US。
|
|
string |
可选。设备的分辨率,格式为 WIDTHxHEIGHT。例如,1280x2856、1080x2340。
|
|
string |
可选。操作系统或平台。例如 MacOS。 |
|
string |
可选。操作系统或平台的版本。例如,13.5。
|
|
string |
可选。设备的型号。例如,Pixel 9 Pro、Samsung Galaxy S24。
|
|
string |
可选。设备的品牌。例如,Google、Samsung。
|
|
string |
可选。浏览器品牌或类型。例如,Chrome、Firefox。
|
|
string |
可选。浏览器版本。例如,136.0.7103.60、5.0。
|
以下代码段展示了 device 设置的示例:
"device": {
"category": "mobile",
"language": "en",
"screen_resolution": "1280x2856",
"operating_system": "Android",
"operating_system_version": "14",
"model": "Pixel 9 Pro",
"brand": "Google",
"browser": "Chrome",
"browser_version": "136.0.7103.60"
}
无论您指定的是 Google Analytics 都会将相应媒体资源的精细设备数据设置应用于请求。
自定义参数
您可以在 Measurement Protocol 载荷中加入用户级范围的自定义参数、事件级范围的自定义参数和商品级范围的自定义参数。
- 用户级范围的自定义参数可包含在
user_properties中。 - 事件级范围的自定义参数可包含在
events[].params中。 - 商品级范围的自定义参数可包含在
items中。
某些事件的推荐值
某些事件具有推荐参数。如需查看所有受支持的事件的推荐参数,请参阅事件。
预留名称
某些事件名称、参数名称和用户属性名称已预留,无法使用:
预留的事件名称
以下事件名称已预留,不能使用:
ad_activeviewad_clickad_exposuread_queryad_rewardadunit_exposureapp_clear_dataapp_exceptionapp_installapp_removeapp_store_refundapp_updateapp_upgradedynamic_link_app_opendynamic_link_app_updatedynamic_link_first_openerrorfirebase_campaignfirebase_in_app_message_actionfirebase_in_app_message_dismissfirebase_in_app_message_impressionfirst_openfirst_visitin_app_purchasenotification_dismissnotification_foregroundnotification_opennotification_receivenotification_sendos_updatesession_startuser_engagement
预留的参数名称
以下参数名称已预留,不能使用:
firebase_conversion
参数名称不得以下列内容开头:
_ (underscore)firebase_ga_google_gtag.
预留的用户属性名称
以下用户属性名称已预留,不能使用:
first_open_timefirst_visit_timelast_deep_link_referreruser_idfirst_open_after_install
此外,用户属性名称不能以下列内容开头:
_ (underscore)firebase_ga_google_