𝗧𝗵𝗲 𝗗𝗮𝘆 𝗪𝗲 𝗙𝗶𝘅𝗲𝗱 𝗢𝘂𝗿 𝗦𝗶𝗴𝗻𝘂𝗽 𝗣𝗶𝗽𝗲𝗹𝗶𝗻𝗲
ہمارے سائن اپ کے اعداد و شمار ہر ہفتے بڑھ رہے تھے۔ ٹیم پرجوش تھی۔ لیکن ڈیٹا غلط لگ رہا تھا۔ صارفین کبھی واپس نہیں آئے۔ ای میل ایڈریس عجیب لگ رہے تھے۔ ہماری ایکٹیویشن ریٹ (activation rate) گر گئی۔
میں نے ڈیٹا کا جائزہ لیا۔ مجھے ترقی نہیں ملی، بلکہ صرف شور (noise) ملا۔
مسئلہ
میں نے آئی پی (IP) ایڈریس کے لحاظ سے سائن اپس کو گروپ کرنے کے لیے ایک کوئری (query) چلائی۔ ایک ہی آئی پی ایڈریس نے 24 گھنٹوں میں سینکڑوں اکاؤنٹس رجسٹر کیے تھے۔ یہ ایک ہی براؤزر فنگر پرنٹ (browser fingerprint) استعمال کر رہا تھا۔ ایک اسکرپٹ ہمارے رجسٹر اینڈ پوائنٹ (register endpoint) پر ہٹ کر رہا تھا۔ یہ عارضی ای میل ڈومینز استعمال کر رہا تھا۔ یہ ایک بوٹ (bot) تھا، کوئی انسان نہیں۔
ہمارا سائن اپ پائپ لائن بالکل کھلا ہوا تھا۔
حل
ہم نے ایک ہی اسپرنٹ (sprint) میں تحفظ کی تین تہیں (layers) بنائیں۔
لیئر 1: تھروٹلنگ (Throttling)
ہم نے ریٹ لمٹینگ (rate limiting) کی دو اقسام استعمال کیں۔
- فی آئی پی تھروٹلنگ: ہم ایک مختصر وقت کے دوران ایک آئی پی سے سائن اپ کی کوششوں کو محدود کرتے ہیں۔
- فی ڈومین تھروٹلنگ: ہم ایک طویل وقت کے دوران ایک ہی ای میل ڈومین سے سائن اپس کو محدود کرتے ہیں۔ یہ ان بوٹس کو روکتا ہے جو ایک ہی ڈومین کے ساتھ مختلف آئی پیز استعمال کرتے ہیں۔
لیئر 2: بلاک لسٹس (Blocklists)
- بلاک شدہ ای میل ڈومینز: ہم عارضی ای میل ڈومینز استعمال کرنے والی کسی بھی رجسٹریشن کو مسترد کر دیتے ہیں۔
- بلاک شدہ یوزر ایجنٹس: ہم غیر براؤزر ٹولز سے آنے والی درخواستوں کو مسترد کر دیتے ہیں۔ ہم حملہ آور کو کوئی تفصیل فراہم نہیں کرتے۔
لیئر 3: آئی پی بلاک لسٹ (IP Blocklist)
کچھ آئی پیز مستقل بنیادوں پر حملہ کرتی ہیں۔ وہ ہمارے سسٹم کے متعدد حصوں کا غلط استعمال کرتی ہیں۔ ہم ایک سخت بلاک لسٹ استعمال کرتے ہیں۔ ان آئی پیز کو ہر درخواست کے لیے مسترد کر دیا جاتا ہے۔ مڈل ویئر (middleware) انہیں فوری طور پر روک دیتا ہے۔
نتائج
اصلاح سے پہلے:
- ایک آئی پی نے ایک دن میں سینکڑوں اکاؤنٹس بنائے۔
- زیادہ تر سائن اپس عارضی ڈومینز سے تھے۔
- جعلی اکاؤنٹس نے ہماری ایکٹیویشن ریٹ کو کم کر دیا۔
- ہمارا ڈیٹا غلط تھا۔
اصلاح کے بعد:
- رجسٹریشن فارمنگ (registration farming) صفر ہو گئی۔
- عارضی ڈومین سائن اپس رک گئے۔
- سائن اپ کے اعداد و شمار حقیقی انسانی ارادے کو ظاہر کرنے لگے۔
- ہماری ایکٹیویشن ریٹ بہتر ہو گئی۔
سیکھے گئے اسباق
- والیوم (volume) سے زیادہ سگنل (signal) اہمیت رکھتا ہے۔ بوٹس ریٹینشن (retention) اور ریونیو (revenue) جیسے میٹرکس کو ناقابل اعتبار بنا دیتے ہیں۔
- کوڈ کی چھوٹی اصلاحات بڑے مسائل حل کرتی ہیں۔ ہم نے تین سادہ میکانزم استعمال کیے۔
- تہیں (layers) ضروری ہیں۔ ایک حد کافی نہیں ہوتی۔ مختلف تہوں کا مجموعہ زیادہ بہتر طریقے سے کام کرتا ہے۔
- اپنے جوابات کو کنٹرول کریں۔ جائز صارفین کو فیڈ بیک دیں، اور بدنیتی کرنے والوں کو خاموشی دیں۔
ترقی کا مطلب صرف صارفین حاصل کرنا نہیں ہے۔ اس کا مطلب حقیقی صارفین حاصل کرنا ہے۔ آپ کے پروڈکٹ کے فیصلے اچھے ڈیٹا پر منحصر ہوتے ہیں۔ اور وہ ڈیٹا آپ کے رجسٹریشن اینڈ پوائنٹ (registration endpoint) سے شروع ہوتا ہے۔
ماخذ: https://dev.to/ogeobubu/the-day-we-fixed-our-signup-pipeline-3664