Apache UNOMI事件属性分群创建问题求助
Apache Unomi事件属性分群配置错误排查
我已经折腾Apache Unomi两周了,搞定了用户会话、事件上报,也成功基于用户属性、事件类型创建了分群,但卡在了基于事件属性创建分群这一步,求帮忙看看哪里错了!
上报的事件结构
我发送给Unomi的事件是这样的:
{ "source":{ "itemType":"pageView", "scope":"the-coolest-website", "itemId":"pageView" }, "events":[ { "eventType":"view", "scope":"the-coolest-website", "source":{ "itemType":"pageView", "scope":"the-coolest-website", "itemId":"pageView" }, "properties":{ "myProperty":"myValue" } } ] }
有问题的事件属性分群配置
我想创建一个包含myProperty:myValue事件属性的用户分群,配置如下,但它识别不到符合条件的用户:
{ "metadata": { "id": "myPropertySegment", "name": "myPropertySegment", "scope":"the-coolest-website", "description": "The user has this segment if it has acessed our products Website.", "readOnly": true }, "condition": { "parameterValues": { "subConditions": [ { "parameterValues": { "propertyName": "myProperty", "comparisonOperator": "equals", "propertyValue": "myValue" }, "type": "eventPropertyCondition" } ], "operator": "and" }, "type": "booleanCondition" } }
能正常工作的事件类型分群配置
对比之下,我基于事件类型创建的分群是正常的:
{ "metadata": { "id": "eventCondition", "name": "eventCondition", "scope": "the-coolest-website", "description": "The user has this segment if it has acessed our products Website.", "readOnly": true }, "condition": { "parameterValues": { "subConditions": [ { "parameterValues": { "propertyName": "eventType", "comparisonOperator": "equals", "propertyValue": "myAwesomeUserEvent" }, "type": "eventTypeCondition" } ], "operator": "and" }, "type": "booleanCondition" } }
问题排查与修正
你的事件属性分群配置漏了一个关键参数:指定要检查的事件类型!
Apache Unomi的eventPropertyCondition需要明确关联对应的eventType,否则Unomi不知道要去匹配哪一类事件的属性。你当前的配置只检查了属性键值对,但没有限定是view类型的事件,所以无法匹配到你上报的事件。
修正后的配置应该在eventPropertyCondition的parameterValues里加上eventType参数:
{ "metadata": { "id": "myPropertySegment", "name": "myPropertySegment", "scope":"the-coolest-website", "description": "The user has this segment if it has accessed our products Website.", "readOnly": true }, "condition": { "parameterValues": { "subConditions": [ { "parameterValues": { "eventType": "view", // 新增:指定要检查的事件类型 "propertyName": "myProperty", "comparisonOperator": "equals", "propertyValue": "myValue" }, "type": "eventPropertyCondition" } ], "operator": "and" }, "type": "booleanCondition" } }
另外注意你配置里的拼写错误:acessed应该是accessed,虽然不影响功能,但建议修正。
内容的提问来源于stack exchange,提问作者Neha Kumari
相关产品推荐
相关产品推荐

