创建Keen事件时,能否为keen对象添加非标准自定义属性?
Keen.io事件中自定义
keen命名空间属性的问题解决 我来帮你搞定这个问题——首先得明确一个关键规则:Keen的keen命名空间是系统保留字段,只允许使用官方定义的标准属性,不能自行添加自定义键值对,这就是你收到"Invalid property for keen namespace"错误的原因。
那正确的做法是什么呢?把你的自定义属性放在keen对象的外面,作为事件的顶层属性就可以了。举个例子:
var keen_event = { "keen": { "created_at": "2012-12-14T20:24:01.123000+00:00", "timestamp": "2012-12-14T20:24:01.123000+00:00", "id": "asd9fadifjaqw9asdfasdf939" }, "event_type": "some_values", // 其他你需要的自定义属性都放在这里 };
这样处理后,再进行Base64编码和API请求,就不会触发校验错误了,而且这些自定义属性会和事件一起正常存储,后续查询也能正常获取。
如果你想把自定义的元数据归类管理,不想和业务属性混在一起,也可以自己创建一个自定义的命名空间(比如custom_metadata)来存放这些属性,比如:
var keen_event = { "keen": { "created_at": "2012-12-14T20:24:01.123000+00:00", "timestamp": "2012-12-14T20:24:01.123000+00:00", "id": "asd9fadifjaqw9asdfasdf939" }, "custom_metadata": { "event_type": "some_values", "user_segment": "premium" // 更多自定义元属性 }, "page_url": "/checkout", // 业务属性放在顶层 };
总结一下:keen对象是Keen用来存储系统级元数据的专属区域,不能随意扩展。所有自定义属性都要放在这个对象之外,不管是顶层还是自定义的子对象里,都能正常工作。
内容的提问来源于stack exchange,提问作者jagaran shrestha
相关产品推荐
相关产品推荐

