Об этом проекте

# 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 для расширения бизнес-логики