Если у вас есть приложение на базе 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