1

我正在使用 Segment.io JAVA SDK 从我的应用程序中收集事件,并使用 Keen.io 在视觉上表示相同的事件。我有一个分层事件结构如下,

  • 公司
    • 部门
      • 用户(登录、注销)
        • 书(打开,关闭)
          • 页面(查看、下一个、上一个)
        • 车辆(启动、驱动、停止)

因此,在收集段中的数据时,我们是否应该将所有事件中的所有属性发送到稍后进行分析(在敏锐.io 或任何其他工具中),如下所示,

识别用户并跟踪

登录:公司 ID、部门 ID、时间戳

book-open: company-id, dept-id, timestamp, book-id, book-name

页面视图:公司 ID、部门 ID、时间戳、书籍 ID、书籍名称、页面 ID

车辆开始:公司 ID、部门 ID、时间戳、车辆 ID、车辆名称

或者

我们是否应该只识别用户,并通过发送相关属性来跟踪事件

登录:公司 ID、部门 ID、时间戳

book-open:时间戳、书名、书名

页面视图:时间戳,页面 ID

车辆开始:时间戳,车辆ID,车辆名称

在第二种情况下,我们如何确定“page-view”事件是针对哪本书的?

任何帮助将不胜感激。

谢谢

4

2 回答 2

1

您在 Keen IO 中的数据模型将有 4 个事件集合:

  1. 登录
  2. 开书
  3. 页面预览
  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"
    }
}

您问,“我们如何确定‘page-view’事件是针对哪本书的?”

答案是在页面浏览发生时存储相关书籍,就在事件上。每当您对综合浏览量进行查询时,您都会在活动中找到书名。

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
    }
}

然后你可以做一个查询,比如 count "pageviews grouped by book" 来查看所有的 pageviews,或者计算特定用户或 page 的 pageviews 和 group by book 来查看他们是哪本书的一部分。

https://keen.io/blog/44565580467/event-data-vs-entity-data-how-to-store-user

于 2016-09-08T15:40:08.323 回答
1

我肯定会建议在 Keen 事件中发送所有数据。您发送的数据越丰富,您将来能够进行的查询就越丰富。

要回答您的具体问题,如果您发送page-view活动的图书 ID,您可以执行如下查询:

var popular_books = new Keen.Query('count', { event_collection: 'page-view', timeframe: "this_2_months", group_by: 'book_id' });

这将返回一个响应,显示您在每本书上获得了多少页面浏览量!

于 2016-09-06T14:24:12.423 回答