منصوبے کے بارے میں
Tracker SDK جدید ویب ایپلیکیشنز میں تیز انٹیگریشن کے لیے ڈیزائن کیا گیا ایک کم سائز کا ویب تجزیاتی لائبریری ہے، خاص طور پر AI اعل مددگار ٹولز جیسے Vibe Coding سے بنائی گئی ایپس کے لیے۔ یہ سادگی پر مرکوز ہے: ایک واحد `init` کال سے collector end point کی ترتیب ہو جاتی ہے، جس کے بعد pageviews خودکار طور پر ریکارڈ ہوتے ہیں اور `track(eventName, data)` کے ساتھ کسٹم ایونٹس بھیجے جا سکتے ہیں۔
**اہم صلاحیتیں**
- **زیرو کنفیگریشن شروعات** – ایک script tag شامل کرنا یا npm import کرنا کافی ہے ڈیٹا جمع کرنے کے لیے۔
- **خودکار pageview تشخیص** – SDK نیویگیشن ایونٹس کو سنتا ہے اور اضافی کوڈ کے بغیر `pageview` payload بھیجتا ہے۔
- **کسٹم ایونٹ ٹریکنگ** – ڈویلپر نام اور اختیاری payload کے ساتھ `track` کال کر کے کسی بھی تعامل کو لاگ کر سکتے ہیں۔
- **ڈیوائس فنگر پرنٹنگ** – canvas کی بنیاد پر فنگر پرنٹ مہمانوں کو منفرد طور پر شناخت کرتا ہے جبکہ پرائیویسی کا احترام کرتا ہے۔
- **آف لائن کوئو** – بھیجنے میں ناکام ایونٹس local storage میں ذخیرہ ہوتے ہیں اور بعد میں دوبارہ کوشش کی جاتی ہے تاکہ ڈیٹا کے نقصان کو کم سے کم کیا جا سکے۔
- **سیشن انتظام** – Sessions خودکار طور پر بنائے جاتے ہیں اور ایک ترتیب شدہ ٹائم آؤٹ (ڈیفالٹ 30 منٹ) کے بعد ختم ہو جاتے ہیں۔
- **قابل ترتیب batching** – ایونٹس کو ایک درخواست میں گروپ کیا جاتا ہے تاکہ نیٹ ورک اوور ہیڈ کو کم کیا جا سکے۔
**انسٹالیشن**
- **CDN** – HTML میں UMD bundle براہ راست شامل کریں اور `WFTK.init({ endpoint: 'https://your-api.com/api/v1/collect/event', debug: true })` کال کریں۔
- **npm** – `npm install @weavefox/tracker` پھر فنکشنز import کریں: `import { init, track, setUserId } from '@weavefox/tracker';`
**پبلک API**
| طریقہ | مقصد |
|--------|---------|
| `init(config)` | end point، appId، اور اختیاری فلگز کے ساتھ SDK کو شروع کریں۔ |
| `track(eventName, data)` | کسٹم ایونٹ بھیجیں۔ |
| `trackPageview(data)` | دستی طور پر page view ریکارڈ کریں (ڈیفالٹ طور پر آٹو فعال)۔ |
| `setUserId(userId)` | لوگ ان user کو بعد کے ایونٹس سے منسلک کریں۔ |
| `getFingerprint()` | پیدا کردہ ڈیوائس فنگر پرنٹ حاصل کریں۔ |
| `flush()` | فوری طور پر کوئو شدہ ایونٹس کو بھیجیں۔ |
**ترتیبات کے آپشنز**
```javascript
WFTK.init({
endpoint: 'required', // collector service کا URL
appId: 'optional', // ایپلیکیشن کے لیے شناخت
autoPageview: true, // page views آٹو ٹریک کریں
debug: false, // console debugging فعال کریں
enableQueue: true, // نیٹ ورک ناکام ہونے پر آف لائن ایونٹس محفوظ کریں
sessionTimeout: 1800000, // session idle timeout بمillisecond (ڈیفالٹ 30 منٹ)
maxEventsPerSession: 1000 // session کے لیے ایونٹس کی زیادہ سے زیادہ حد
});
```
**payload فارمیٹ** – ہر درخواست میں ایک JSON باڈی ہوتی ہے جس میں اختیاری `appId` اور `events` array ہوتا ہے۔ ہر event میں لازمی `event` نام، `timestamp`، `nonce` (deduplication کے لیے)، `fingerprint`، اور سسٹم جمع کردہ context (URL، title، ڈیوائس معلومات وغیرہ) والا `data` object شامل ہوتا ہے۔ user کی طرف سے دیے گئے fields `biz` sub object میں ہوتے ہیں، جس سے analytics اور business data الگ رہتے ہیں۔
**server side غور و فکر**
- **timestamp validation** – replay attacks سے بچنے کے لیے 5 منٹ سے پرانے events کو مسترد کریں۔
- **nonce deduplication** – nonces کو ذخیرہ کریں (مثلاً Redis میں) 24 گھنٹے کی TTL کے ساتھ تاکہ idempotency یقینی بنائی جا سکے۔
- **rate limiting** – abuse کو روکنے کے لیے per IP اور per fingerprint limits لاگو کریں۔
- **app identification** – payload میں صاف `appId` کو ترجیح دیں؛ اگر ضرورت ہو تو `Referer` host fallback کے طور پر استعمال کریں۔
- **مثالی Express handler** – README میں ایک جامع Node.js snippet موجود ہے جو timestamps کی validation، nonces کی جانچ، اور events کی persistence کرتا ہے۔
**لائسنس** – MIT لائسنس کے تحت تقسیم شدہ، جس سے open source اور commercial دونوں پروجیکٹس میں بغیر کسی رکاوٹ کے استعمال کی اجازت ہے۔
مجموعی طور پر Tracker SDK ان ڈویلপروں کے لیے ایک سیدھی سادی، privacy aware solution پیش کرتا ہے جنہیں heavyweight پلیٹ فارمز کے overload کے بغیر قابل اعتماد client side analytics درکار ہوتا ہے۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.