このプロジェクトについて
Analytics
ページビュー、カスタムイベント、訪問者の識別を追跡するための軽量なアナリティクス抽象化レイヤー。プラグインアーキテクチャにより、任意のサードパーティ製アナリティクスツールや独自のバックエンドと連携可能です。
特徴
- サードパーティ統合のための拡張可能なプラグインシステム
- タイムトラベルとオフラインモードによるアナリティクスのテストとデバッグ
- トラッキング呼び出しを変更するライフサイクルフック
- イソモーフィック — ブラウザと Node.js の両方で動作
- アナリティクスライブラリがロードされるまでイベントをキューイング
- サードパーティスクリプトの条件付きロード
- オフラインでも動作
- TypeScript サポート
インストール
```bash
npm install analytics --save
```
yarn、pnpm、bun でも npx が利用可能です。
使用方法
```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.