عن المشروع

# 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. تتوفر أيضًا إضافات من المجتمع. يمكن إنشاء إضافات مخصصة للاستجابة للأحداث أو إضافة طرق مخصصة. ## الفلسفة - عدم القيد بأداة تحليلات واحدة - سهولة إضافة/إزالة المزوّدين عن طريق تعديل مصفوفة الإضافات - احترام خصوصية الزوار والسماح بآليات الموافقة المسبقة - واجهة برمجية قابلة للإلحاق لتمديد منطق الأعمال