UserActivity 和 ProcessedUserActivity 以及统计数据关系说明
1. 数据流转关系
数据在系统中的流转过程如下:
UserActivity (原始数据)
↓ (会话处理)
ProcessedUserActivity (会话数据)
↓ (行为统计)
UserActivityStatistic_America/Los_Angeles_v2 (统计数据)
↓ (汇总处理)
UserActivitySummary_America/Los_Angeles_v2 (汇总数据)
2. 各层级数据说明
2.1 UserActivity (原始数据)
这是最原始的用户行为数据,记录了用户在网站上的各种操作。
2.2 ProcessedUserActivity (会话处理数据)
在原始数据基础上,系统为每条记录分配了会话ID(sessionId),并进行了一些预处理。
2.3 UserActivityStatistic_America/Los_Angeles_v2 (统计数据)
基于会话处理数据,按用户和会话维度进行统计,生成详细的行为统计数据。
2.4 UserActivitySummary_America/Los_Angeles_v2 (汇总数据)
对统计数据按日期、文章等维度进行汇总,生成最终的汇总数据。
3. Demo数据示例
3.1 UserActivity 原始数据示例 (5条)
[
{
"_id": "ua001",
"consumerId": "user001",
"activityName": "USER_ACTIVITY_POST_ACCESS",
"postId": "6ff59f85-6b2b-486c-a7e6-33d1a1979da9",
"createdAt": "2025-12-01T10:00:00.000Z",
"receivedAt": "2025-12-01T10:00:05.000Z",
"botStatus": "NOT_BOT",
"userAgent": {
"os": {"name": "Windows"},
"browser": {"name": "Chrome"}
}
},
{
"_id": "ua002",
"consumerId": "user001",
"activityName": "USER_ACTIVITY_POST_VIEWED_PRODUCT",
"postId": "6ff59f85-6b2b-486c-a7e6-33d1a1979da9",
"createdAt": "2025-12-01T10:01:00.000Z",
"receivedAt": "2025-12-01T10:01:05.000Z",
"botStatus": "NOT_BOT",
"userAgent": {
"os": {"name": "Windows"},
"browser": {"name": "Chrome"}
}
},
{
"_id": "ua003",
"consumerId": "user001",
"activityName": "USER_ACTIVITY_POST_CLICK_ADD_TO_CART",
"postId": "6ff59f85-6b2b-486c-a7e6-33d1a1979da9",
"createdAt": "2025-12-01T10:02:00.000Z",
"receivedAt": "2025-12-01T10:02:05.000Z",
"botStatus": "NOT_BOT",
"userAgent": {
"os": {"name": "Windows"},
"browser": {"name": "Chrome"}
}
},
{
"_id": "ua004",
"consumerId": "user001",
"activityName": "USER_ACTIVITY_ORDER_PLACED",
"postId": "6ff59f85-6b2b-486c-a7e6-33d1a1979da9",
"createdAt": "2025-12-01T10:05:00.000Z",
"receivedAt": "2025-12-01T10:05:05.000Z",
"botStatus": "NOT_BOT",
"activityData": {
"orderNumber": "ORDER001"
},
"userAgent": {
"os": {"name": "Windows"},
"browser": {"name": "Chrome"}
}
},
{
"_id": "ua005",
"consumerId": "user002",
"activityName": "USER_ACTIVITY_POST_ACCESS",
"postId": "6ff59f85-6b2b-486c-a7e6-33d1a1979da9",
"createdAt": "2025-12-01T11:00:00.000Z",
"receivedAt": "2025-12-01T11:00:05.000Z",
"botStatus": "NOT_BOT",
"userAgent": {
"os": {"name": "Mac OS"},
"browser": {"name": "Safari"}
}
}
]
3.2 ProcessedUserActivity 会话处理数据示例
[
{
"_id": "pua001",
"consumerId": "user001",
"sessionId": "sess001",
"activityName": "USER_ACTIVITY_POST_ACCESS",
"postId": "6ff59f85-6b2b-486c-a7e6-33d1a1979da9",
"createdAt": "2025-12-01T10:00:00.000Z",
"receivedAt": "2025-12-01T10:00:05.000Z",
"botStatus": "NOT_BOT",
"userAgent": {
"os": {"name": "Windows"},
"browser": {"name": "Chrome"}
},
"device": "Windows",
"platform": "Direct",
"fromAd": false
},
{
"_id": "pua002",
"consumerId": "user001",
"sessionId": "sess001",
"activityName": "USER_ACTIVITY_POST_VIEWED_PRODUCT",
"postId": "6ff59f85-6b2b-486c-a7e6-33d1a1979da9",
"createdAt": "2025-12-01T10:01:00.000Z",
"receivedAt": "2025-12-01T10:01:05.000Z",
"botStatus": "NOT_BOT",
"userAgent": {
"os": {"name": "Windows"},
"browser": {"name": "Chrome"}
},
"device": "Windows",
"platform": "Direct",
"fromAd": false
},
{
"_id": "pua003",
"consumerId": "user001",
"sessionId": "sess001",
"activityName": "USER_ACTIVITY_POST_CLICK_ADD_TO_CART",
"postId": "6ff59f85-6b2b-486c-a7e6-33d1a1979da9",
"createdAt": "2025-12-01T10:02:00.000Z",
"receivedAt": "2025-12-01T10:02:05.000Z",
"botStatus": "NOT_BOT",
"userAgent": {
"os": {"name": "Windows"},
"browser": {"name": "Chrome"}
},
"device": "Windows",
"platform": "Direct",
"fromAd": false
},
{
"_id": "pua004",
"consumerId": "user001",
"sessionId": "sess001",
"activityName": "USER_ACTIVITY_ORDER_PLACED",
"postId": "6ff59f85-6b2b-486c-a7e6-33d1a1979da9",
"createdAt": "2025-12-01T10:05:00.000Z",
"receivedAt": "2025-12-01T10:05:05.000Z",
"botStatus": "NOT_BOT",
"activityData": {
"orderNumber": "ORDER001"
},
"userAgent": {
"os": {"name": "Windows"},
"browser": {"name": "Chrome"}
},
"device": "Windows",
"platform": "Direct",
"fromAd": false
},
{
"_id": "pua005",
"consumerId": "user002",
"sessionId": "sess002",
"activityName": "USER_ACTIVITY_POST_ACCESS",
"postId": "6ff59f85-6b2b-486c-a7e6-33d1a1979da9",
"createdAt": "2025-12-01T11:00:00.000Z",
"receivedAt": "2025-12-01T11:00:05.000Z",
"botStatus": "NOT_BOT",
"userAgent": {
"os": {"name": "Mac OS"},
"browser": {"name": "Safari"}
},
"device": "Mac OS",
"platform": "Direct",
"fromAd": false
}
]
3.3 UserActivityStatistic_America/Los_Angeles_v2 统计数据示例
[
{
"_id": "stat001",
"consumerId": "user001",
"sessionId": "sess001",
"postId": "6ff59f85-6b2b-486c-a7e6-33d1a1979da9",
"date": "2025-12-01",
"fromAd": false,
"uniqueVisitors": true,
"engaged": true,
"viewedProduct": true,
"clickedAddToCart": true,
"placedOrder": true,
"device": "Windows",
"platform": "Direct",
"ui": {}
},
{
"_id": "stat002",
"consumerId": "user002",
"sessionId": "sess002",
"postId": "6ff59f85-6b2b-486c-a7e6-33d1a1979da9",
"date": "2025-12-01",
"fromAd": false,
"uniqueVisitors": true,
"engaged": false,
"viewedProduct": false,
"clickedAddToCart": false,
"placedOrder": false,
"device": "Mac OS",
"platform": "Direct",
"ui": {}
}
]
3.4 UserActivitySummary_America/Los_Angeles_v2 汇总数据示例
{
"_id": "summary001",
"date": "2025-12-01",
"postId": "6ff59f85-6b2b-486c-a7e6-33d1a1979da9",
"fromAd": false,
"uniqueVisitors": 2,
"engaged": 1,
"viewedProduct": 1,
"clickedAddToCart": 1,
"placedOrder": 1,
"device": {
"Windows": 1,
"Mac OS": 1
},
"platform": {
"Direct": 2
},
"ui": {}
}
4. 数据处理流程说明
UserActivity → ProcessedUserActivity:
- 为每条记录分配 sessionId(基于30分钟不活动超时规则)
- 提取设备和平台信息
- 判断是否来自广告
ProcessedUserActivity → UserActivityStatistic:
- 按用户和会话分组
- 统计用户行为(是否访问、是否互动、是否下单等)
- 提取日期、设备、平台等信息
UserActivityStatistic → UserActivitySummary:
- 按日期、文章ID和广告来源分组
- 对用户行为进行去重统计
- 统计设备、平台等分布情况