프로젝트 소개

# Analytics 페이지 뷰, 사용자 정의 이벤트 추적 및 방문자 식별을 위한 경량 분석 추상화 계층입니다. 플러그인 구조를 통해 모든 제삼자 분석 도구 또는 자체 백엔드와 작동하도록 설계되었습니다. ## 기능 - 제삼자 통합을 위한 확장 가능한 플러그인 시스템 - 타임 트래블 및 오프라인 모드를 통한 분석 테스트 및 디버깅 - 추적 호출 수정을 위한 라이프사이클 훅 - 이소모픽 — 브라우저와 Node.js 모두에서 작동 - 분석 라이브러리가 로드될 때까지 이벤트를 큐에 대기 - 조건부로 제삼자 스크립트 로드 - 오프라인 작동 지원 - TypeScript 지원 ## 설치 ```bash npm install analytics --save ``` npx도 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, 쿠키) - `analytics.plugins.enable/disable(namespace)` — 플러그인을 동적으로 관리 ## 플러그인 시스템 이 라이브러리는 Google Analytics, Segment, Amplitude, AWS Pinpoint, Countly, Crazy Egg, Churnzero, activity-utils를 포함한 다양한 공식 플러그인을 기본 제공합니다. 커뮤니티 플러그인도 사용 가능하며, 이벤트에 반응하거나 사용자 정의 메서드를 추가하는 사용자 정의 플러그인을 생성할 수 있습니다. ## 철학 - 단일 분석 도구에 종속되지 않음 - 플러그인 배열 조정으로 제공업체 추가/제거 용이 - 방문자 프라이버시를 존중하고 옵트아웃 메커니즘 허용 - 비즈니스 로직 확장을 위한 플러그可能な API