عن المشروع
# 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. تتوفر أيضًا إضافات من المجتمع. يمكن إنشاء إضافات مخصصة للاستجابة للأحداث أو إضافة طرق مخصصة.
## الفلسفة
- عدم القيد بأداة تحليلات واحدة
- سهولة إضافة/إزالة المزوّدين عن طريق تعديل مصفوفة الإضافات
- احترام خصوصية الزوار والسماح بآليات الموافقة المسبقة
- واجهة برمجية قابلة للإلحاق لتمديد منطق الأعمال
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.