Сбор иерархических событий в Segment.io (чтобы представить его через Keen.io)

Я использую Segment.io JAVA SDK для сбора событий из моего приложения и использую Keen.io для визуального представления того же самого. У меня есть иерархическая структура событий следующим образом,

  • Компания
    • отдел
      • Пользователь (логин, выход)
        • Книга (открыть, закрыть)
          • Страница (просмотр, следующая, предыдущая)
        • Транспортное средство (запуск, вождение, остановка)

Таким образом, при сборе данных в сегменте мы должны отправить все свойства во всех событиях для последующего анализа (в keen.io или любых других инструментах) следующим образом:

Определить пользователя и отслеживать

логин: идентификатор компании, идентификатор депо, метка времени

открытие книги: идентификатор компании, идентификатор депо, метка времени, идентификатор книги, название книги

просмотр страницы: идентификатор компании, идентификатор депо, метка времени, идентификатор книги, имя книги, идентификатор страницы

запуск транспортного средства: идентификатор компании, идентификатор отдела, метка времени, идентификатор транспортного средства, название транспортного средства

или же

Должны ли мы просто идентифицировать пользователя и отслеживать события, просто отправив соответствующие свойства

логин: идентификатор компании, идентификатор депо, метка времени

открытие книги: метка времени, идентификатор книги, название книги

просмотр страницы: отметка времени, идентификатор страницы

запуск транспортного средства: метка времени, идентификатор транспортного средства, название транспортного средства

Во втором случае, как мы можем определить, что событие "просмотр страницы" предназначено для какой книги?

Любая помощь будет принята с благодарностью.

Спасибо

2 ответа

Я бы определенно предложил отправить все данные в событиях Кин. Чем больше данных вы отправляете, тем больше запросов вы сможете выполнить в будущем.

Чтобы ответить на ваш конкретный вопрос, если вы отправите идентификатор книги для page-view событие, вы можете сделать запрос, как это:

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

Это вернет ответ, показывающий, сколько просмотров страниц вы получили в каждой книге!

Ваша модель данных в 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"
    }
}

Вы спросили: "Как мы можем определить, что событие" просмотр страницы "предназначено для какой книги?"

Ответ заключается в том, чтобы хранить связанную книгу во время просмотра страницы, прямо на событии. Что всякий раз, когда вы запускаете запросы к просмотрам страниц, у вас есть название книги прямо на событии.

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

Другие вопросы по тегам