Об этом проекте
# Analytics
Легковесный слой абстракции аналитики для отслеживания просмотров страниц, пользовательских событий и идентификации посетителей. Разработан для работы с любым сторонним инструментом аналитики или вашим собственным бэкендом благодаря плагинной архитектуре.
## Особенности
- Расширяемая система плагинов для интеграции со сторонними сервисами
- Тестирование и отладка аналитики с помощью перемещения во времени и автономного режима
- Хуки жизненного цикла для модификации вызовов отслеживания
- Изоморфность — работает в браузере и Node.js
- Очередь событий до момента загрузки библиотек аналитики
- Условная загрузка сторонних скриптов
- Работа в автономном режиме
- Поддержка TypeScript
## Установка
```bash
npm install analytics --save
```
Также доступно через yarn, pnpm и bun.
## Использование
```js
import Analytics from 'analytics'
import googleAnalytics from '@analytics/google-analytics'
import customerIo from '@analytics/customerio'
const analytics = Analytics({
app: 'my-app-name',
version: 100,
plugins: [
googleAnalytics({ measurementIds: ['G-XXXXXXXX'] }),
customerIo({ siteId: '123-xyz' })
]
})
analytics.page()
analytics.track('userPurchase', { price: 20, item: 'pink socks' })
analytics.identify('user-id-xyz', { firstName: 'bill', lastName: 'murray' })
```
## Основной API
- `analytics.identify(userId, traits)` — Идентифицирует посетителя и сохраняет его данные в localStorage
- `analytics.track(eventName, payload)` — Отслеживает пользовательские события аналитики
- `analytics.page(data)` — Запускает отслеживание просмотра страницы
- `analytics.user(key)` — Извлекает сохраненные данные пользователя
- `analytics.reset()` — Очищает информацию о посетителе и сбрасывает состояние
- `analytics.ready(callback)` — Срабатывает, когда все провайдеры загружены
- `analytics.on(event, callback)` / `analytics.once(event, callback)` — Прослушивание событий жизненного цикла
- `analytics.getState(key)` — Доступ к подключам внутреннего состояния
- `analytics.storage` — Утилиты для сохранения данных (localStorage, cookies)
- `analytics.plugins.enable/disable(namespace)` — Динамическое управление плагинами
## Система плагинов
Библиотека поставляется со многими официальными плагинами, включая Google Analytics, Segment, Amplitude, AWS Pinpoint, Countly, Crazy Egg, Churnzero и activity-utils. Также доступны плагины от сообщества. Можно создавать собственные плагины для реагирования на события или добавления пользовательских методов.
## Философия
- Никакой привязки к одному инструменту аналитики
- Легкое добавление/удаление провайдеров путем корректировки массива plugins
- Уважение к приватности посетителей и поддержка механизмов отказа от отслеживания
- Плагинный API для расширения бизнес-логики
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.