Если у вас есть приложение на базе Redux, вы уже в идеальном состоянии для интеграции аналитики. Фактически, вы можете видеть каждое действие в архитектуре вашего приложения как событие аналитики, а поскольку действия в Redux детализированы и изолированы, их очень просто превратить в событие аналитики.

Redux Beacon - это такая инфраструктура, которая подключается к Redux и позволяет вам сопоставлять действия с событиями аналитики как один к одному или даже разветвляясь (сообщать многим поставщикам аналитики). Вы можете использовать одну из множества готовых интеграций, включая Google Analytics и Segment.io, и создать свою собственную.

redux-beacon-electron - это библиотека, которая включает настраиваемую цель Google Analytics, удобную для электронов, самоуверенный преобразователь событий Redux Beacon и трекер действий, который поможет вам создать простое и удобное в обслуживании аналитическое решение.

Быстрый старт

Настройте свою инфраструктуру Redux Beacon как обычно. Затем установите redux-beacon-electron:

$ yarn add redux-beacon-electron

Интегрируйте свое приложение Electron с Redux Beacon и redux-beacon-electron

Вы можете указать свой идентификатор отслеживания UA дословно или извлечь его из конфигурации - инициализация выполняется на месте (а не путем внедрения универсального фрагмента GA в DOM, как это делают многие библиотеки), и даже больше - вы можете инициализировать столько целей, сколько вы нравится (!), поэтому, если вы хотите сообщать о различных областях вашего приложения в разные учетные записи, вы определенно можете это сделать.

Затем где-нибудь в ваших действиях Redux (я использую redux-actions, но на самом деле не имеет значения, используете ли вы что-то еще):

Действие onMounted сгенерирует просмотр страницы, который ничем не отличается от просмотра страницы Google Analytics, чем любой другой просмотр страницы веб-сайта, что мы и хотим, чтобы передать эти события (в противном случае Google Analytics будет рад молча отбрасывать несоответствующие события). Он сделает разумную вещь в отношении имени страницы на основе вашего события Redux - в этом случае он разделит (на основе '/') тип действия и будет использовать 'settings' в качестве имени страницы.

Действие setMuteState отправит event обращение в Google Analytics, а также разделит пространство имен на категорию «приложение» и действие «SET MUTE STATE».

Картограф мета-событий

Вы можете использовать actionMetaEventMapper, если считаете (как и я), что действия должны указывать, как они сопоставляются с событиями аналитики (в отличие от наличия большого переключателя или словаря сопоставления в централизованном месте).

Это означает, что отслеживаемое стандартное действие Flux теперь выглядит следующим образом:

{
    type:...,
    action: ...,
    meta: {
        track: action=>({hit: "event"|"pageview", category, action, label, value})
    }
}

Последняя вещь

Хорошим побочным эффектом этого подхода является то, что у вас есть возможность сквозной отладки: действие Redux - ›Событие -› вызов сетевой выборки.

Действия и события:

Сеть:

Для получения дополнительной информации и запросов на вытягивание см. https://github.com/jondot/redux-beacon-electron