我正在使用Segment.io JAVA SDK从我的应用程序中收集事件,并使用Keen.io在视觉上表示相同的事件。我有一个分层事件结构如下,
因此,在收集段中的数据时,我们是否应该发送所有事件中的所有属性以便稍后进行分析(在keen.io或任何其他工具中),如下所示,
识别用户并跟踪
登录:company-id,dept-id,timestamp
book-open:company-id,dept-id,timestamp,book-id,book-name
page-view:company-id,dept-id,timestamp,book-id,book-name,page-id
vehicle-start:company-id,dept-id,timestamp,vehicle-id,vehicle-name
或
我们应该只识别用户,并通过发送相关属性来跟踪事件
登录:company-id,dept-id,timestamp
book-open:timestamp,book-id,book-name
page-view:timestamp,page-id
车辆启动:时间戳,车辆ID,车辆名称
在第二种情况下,我们如何识别"页面视图"事件是哪本书?
非常感谢任何帮助。
由于
答案 0 :(得分:1)
我肯定会建议在Keen活动中发送所有数据。您发送的数据越丰富,您将来可以进行的查询就越丰富。
要回答您的具体问题,如果您发送page-view
事件的图书ID,则可以执行以下查询:
var popular_books = new Keen.Query('count', {
event_collection: 'page-view',
timeframe: "this_2_months",
group_by: 'book_id'
});
这将返回一个回复,显示每本书上有多少页面浏览量!
答案 1 :(得分:1)
Keen IO中的数据模型将包含4个事件集合:
在每个事件中,您将拥有关于事件,用户,页面,书籍和任何其他相关上下文的数据层次结构。在Keen IO中“识别”用户没有单独的概念 - 您将在事件发生时描述用户以及您对它们所知的一切。
例如,对于车辆启动事件,您可能会:
vehicle-start-event = {
company: "Airbnb",
department: "Z5",
vehicle : {
name: "Blue Falcon",
id: "8d2fe5",
},
user: {
name: "Lara Croft",
id: "923hniansd909niowoasdl"
}
}
对于登录活动,您将拥有:
login-event = {
company: "Airbnb",
department: "Z5",
user: {
name: "Lara Croft",
id: "923hniansd909niowoasdl"
}
}
你问道,“我们如何确定”页面浏览“事件是针对哪本书?”
答案是在页面视图发生时存储相关书籍,就在事件发生时。无论何时您对网页浏览量运行查询,您都会在活动中找到图书名称。
pageview-event = {
company: "Airbnb",
department: "Z5",
user: {
name: "Lara Croft",
id: "923hniansd909niowoasdl"
},
book: {
name: "Where the Wild Things Are",
id: "293as0d90fjw3"
},
page: {
title: "Wild Thing",
number: 4
}
}
然后,您可以执行查询,例如计算“按书籍分组的综合浏览量”,按书籍查看所有综合浏览量,或计算特定用户或页面的综合浏览量以及按书分组,以查看他们所属的书籍。
https://keen.io/blog/44565580467/event-data-vs-entity-data-how-to-store-user