【问题标题】:How to properly pass the session_id to GA4 via Measurement protocol如何通过测量协议将 session_id 正确传递给 GA4
【发布时间】:2023-02-19 21:13:00
【问题描述】:
GA4 购买事件通过测量协议从客户端服务器发送。但是查询中没有 session_id 参数,因为源和媒体丢失了。我们尝试在 MP 请求中传递 session_id 参数,但没有收到数据。
提交请求示例:
{
"timestamp_micros": "1664522406546590",
"non_personalized_ads": false,
"events": [
{
"name": "purchase_balance_top_up",
"params": {
"user_id": "11111111",
"crm_id": "11111111",
"balance": 990,
"payment_method": "paymore"
}
}
],
"client_id": "1119492379.1652295143",
"session_id": "1664522264",
"user_id": "11111111"
}
附上来自 BigQuery 的关于 MP 发送的事件的原始数据的屏幕截图。
Screenshot of the raw data from BigQuery
求助,如何正确传递session_id?或者如何确保事件不会丢失源参数?
【问题讨论】:
标签:
google-analytics-4
measurement-protocol
【解决方案1】:
我们找到了解决问题的办法。这很简单。参数“session_id“必须在数组内部传递”参数“ 的事件.
以下是通过测量协议发送的正确事件数据数组的示例:
{
"timestamp_micros": "1664522406546590",
"non_personalized_ads": false,
"events": [
{
"name": "purchase_balance_top_up",
"params": {
"user_id": "11111111",
"crm_id": "11111111",
"balance": 990,
"payment_method": "paymore",
"session_id": "1664522264"
}
}
],
"client_id": "1119492379.1652295143",
"user_id": "11111111"
}
【解决方案2】:
实际上,我们正在通过类似的请求发送购买事件:
{
"client_id": "xxx.xxx",
"user_id" : "xxxx",
"non_personalized_ads": false,
"user_properties": {
"user_id_dimension": {
"value": "xxxx"
}
},
"events": [{
"name": "purchase",
"params": {
"currency": "USD",
"transaction_id": "T_12345",
"value": 12.21,
"engagement_time_msec": 10,
"session_id": "XXXXXXXXXX",
"items": [
{
"item_name": "Top-up"
}
]
}
}]
}
但我们不发送 timestamp_micros。我们将 'user_id_dimension' 作为用户属性发送,其值与 'user_id' 参数相同,以便在探索报告中进一步观察用户 ID。我们在 GA4 界面中使用维度名称用户 ID 和此用户属性“user_id_dimension”创建了用户范围的自定义维度。一切正常