프로젝트 소개
# 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
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.