4-स्तरीय पुश नोटिफिकेशन थकान मॉडल

पुश नोटिफिकेशन किसी यूज़र को खोने का सबसे सस्ता तरीका हैं। दिन में 1 पुश पर रिटेंशन कर्व ठीक दिखता है — Localytics और Urban Airship के इंडस्ट्री डेटा के मुताबिक तीन महीने का रिटेंशन 88 प्रतिशत के आसपास रहता है। दिन में 3 पुश पर यह कर्व 17 प्रतिशत अंक गिर जाता है। दिन में 5 पुश पर यह 34 अंक गिरता है। इसका ढलान तीखा और अपरिवर्तनीय है: जब कोई app यूज़र को हफ़्ते में 2 से 5 ऐसे पुश भेजता है जो वे नहीं चाहते, तो 46 प्रतिशत यूज़र पुश से पूरी तरह ऑप्ट-आउट कर देते हैं।

इसका Soulwise का जवाब है एक 4-स्तरीय थकान मॉडल। यह 14-दिन की रोलिंग विंडो पर ओपन-रेट की गिरावट को पहचानता है और यूज़र के हमेशा के लिए ऑप्ट-आउट करने से पहले धीरे-धीरे नोटिफिकेशन की मात्रा घटाता है।

यह पोस्ट इस डिज़ाइन, थ्रेशोल्ड और रिकवरी लॉजिक को विस्तार से समझाती है।

चार स्तर

स्टेट मशीन छोटी है। हर उपयोगकर्ता एक समय में ठीक एक ही स्तर पर होता है।

  • T0 - स्वस्थ। पूरा शेड्यूल। सुबह का अनुष्ठान प्रॉम्प्ट, सुबह के मध्य का संदर्भगत नज, शाम का चिंतन, साथ ही घटना-आधारित प्रॉम्प्ट।
  • T1 - पदावनत। सुबह के मध्य का संदर्भगत नज रोक दिया जाता है। बाकी सब जारी रहता है।
  • T2 - केवल-एंकर। सिर्फ़ सुबह का अनुष्ठान प्रॉम्प्ट और रविवार का पुनरावलोकन बचा रहता है। सभी ऐच्छिक पुश रोक दिए जाते हैं।
  • T3 - केवल-साप्ताहिक। एक अकेला साप्ताहिक पुश बचता है। दैनिक लय स्थगित कर दी जाती है।

क्रम मायने रखता है। सुबह के मध्य वाला सबसे पहले हटता है क्योंकि इसका घटना-भार सबसे कम होता है: यह एक संदर्भगत नज है, खुद दैनिक अनुष्ठान का हिस्सा नहीं। सुबह का प्रॉम्प्ट सबसे लंबे समय तक बचाया जाता है क्योंकि घटना-आधारित दैनिक पुश सामान्य पुश की तुलना में लगभग 2.85x रिटेंशन देते हैं; इसे हटाना यानी app को खत्म करना।

टियर बदलाव किससे शुरू होता है

प्रति उपयोगकर्ता ओपन-रेट डेटा की एक रोलिंग 14-दिन की विंडो। हर दिन मॉडल पिछले 14 दिनों को देखता है और उस विंडो के दौरान भेजे गए पुश नोटिफिकेशन के लिए उपयोगकर्ता का ओपन रेट निकालता है।

Soulwise की सीमा उपयोगकर्ता के अपने बेसलाइन से 30 प्रतिशत ओपन-रेट गिरावट है। अगर कोई उपयोगकर्ता आम तौर पर 60 प्रतिशत पुश खोलता है और रोलिंग विंडो गिरकर 42 प्रतिशत या उससे कम हो जाती है, तो मॉडल उन्हें एक टियर नीचे ले जाता है। एक खराब सप्ताह (छुट्टी, बीमारी, काम का भारी सप्ताह) पर प्रतिक्रिया देने से बचने के लिए यह गिरावट कम से कम 3 दिनों तक बनी रहनी चाहिए।

प्रमोशन सममित है। अगर कोई उपयोगकर्ता T2 पर है और उनका ओपन रेट लगातार 3 दिनों तक उनके बेसलाइन माइनस 30 प्रतिशत सीमा से ऊपर चढ़ जाता है, तो वे T1 पर ऊपर चले जाते हैं। T0 तक रिकवरी में भी यही कदम लगता है।

इवेंट-आधारित पुश सबसे लंबे समय तक क्यों टिकते हैं

Localytics / Urban Airship का वह डेटा पॉइंट जो इस डिज़ाइन को दिशा देता है: इवेंट-आधारित रोज़ाना पुश, सामान्य रोज़ाना पुश की तुलना में लगभग 2.85x रिटेंशन देते हैं। 9 बजे आने वाला एक सामान्य "हमारे साथ चेक-इन करें!" आसानी से भुला दिया जाता है। लेकिन आज की असली चक्र-अवस्था से जुड़ा एक सुबह का संकेत ("धीमी शुरुआत। आज आपके सामने क्या है?") इवेंट-आधारित होता है - इसमें नई जानकारी होती है।

T2 सुबह का संकेत इसलिए बनाए रखता है क्योंकि इसे हटाने का मतलब है पूरी दैनिक रस्म को हटा देना। app में बाकी सब कुछ इसी पर बना है कि उपयोगकर्ता सुबह एक बार और रात में एक बार लॉग-इन करे। संकेत के बिना यह लूप टूट जाता है।

फटीग-बैनर UX

जब किसी यूज़र को डिमोट किया जाता है, तो वे अगली बार app खोलते हैं तब app के अंदर एक छोटा-सा बैनर दिखता है:

"हमने 7 दिनों के लिए थोड़ा कम कर दिया है — फिर से बढ़ाएँ?"

यह वाक्य तीन काम करता है: यह बदलाव को स्वीकारता है, इसे app के व्यवहार से जोड़ता है (यूज़र की किसी चूक से नहीं), और चुनने का अधिकार देता है। अगर यूज़र फिर से नोटिफिकेशन चाहते हैं, तो वे एक ही टैप में इस डिमोशन को बदल सकते हैं।

यह इसलिए मायने रखता है क्योंकि एक चुपचाप किया गया डिमोशन ऐसा लगता है जैसे app ने यूज़र को छोड़ दिया हो। वहीं, खुलकर बताया गया डिमोशन ऐसा लगता है जैसे app को परवाह हो। एक ही काम, बस फ़्रेमिंग अलग।

एंटी-पैटर्न जिन्हें हमने जान-बूझकर नहीं बनाया

प्रोडक्ट स्पेक स्पष्ट है कि क्या वर्जित है:

  • कोई "अपनी स्ट्रीक मत तोड़ो" वाला अपराध-बोध पुश नहीं। स्ट्रीक दरअसल नुकसान के डर से शर्मिंदा करने की चाल है। फ़टीग मॉडल यूज़र को नीचे करता है; उन्हें शर्मिंदा नहीं करता।
  • T3 के अंत में कोई "हमें आपकी कमी खलती है" वाला रीएक्टिवेशन पुश नहीं। T3 पर मौजूद यूज़र पहले से ही app को कुछ बता रहा है। और पुश जोड़ना गलत जवाब है।
  • पुश के टेक्स्ट में कोई नकली काउंटर या कमी (scarcity) नहीं। "X लोगों ने अभी साइन अप किया" एक डार्क-पैटर्न नाटक है, नोटिफ़िकेशन नहीं।
  • पुश के शीर्षक या टेक्स्ट में कोई मासिक धर्म या ज्योतिष से जुड़ा कंटेंट नहीं। पुश एक CI lint से होकर गुज़रता है जो वर्जित पैटर्न वाले बिल्ड को अस्वीकार कर देता है; फ़टीग मॉडल इसे कभी बायपास नहीं करता।

सिस्टम के अंदर का डेटा असल में कैसा दिखता है

मॉडल हर यूज़र की स्थिति तीन फ़ील्ड्स में स्टोर करता है:

tier: 'T0' | 'T1' | 'T2' | 'T3'
rolling_open_rate_14d: 0.0 to 1.0
baseline_open_rate: 0.0 to 1.0 (computed from first 30 days)
last_tier_change_at: timestamp

बस यही पूरी fatigue स्थिति है। न कोई ब्राउज़िंग हिस्ट्री, न open rate से आगे कोई engagement स्कोरिंग, न ही यूज़र पर ट्रेन किया गया कोई मशीन-लर्निंग मॉडल। यही सादगी असली बात है: नियम जाँचे जा सकते हैं, थ्रेशहोल्ड दस्तावेज़ में दर्ज हैं, और UX के नतीजे पहले से अनुमानित हैं।

यह क्या नहीं है

दायरे को लेकर एक बात।

फ़टीग मॉडल हर उपयोगकर्ता के लिए अलग है, किसी समूह के लिए नहीं। हम "आप जैसे उपयोगकर्ता" को नहीं देखते और न ही ऐसे प्रयोग चलाते हैं जो रिटेंशन समझने के लिए उपयोगकर्ताओं को नीचे धकेलें। यह मॉडल हर एक व्यक्ति के लिए काम करता है।

यह उपयोगकर्ता द्वारा नियंत्रित सेटिंग्स की जगह भी नहीं लेता। शांत घंटे, हर श्रेणी के लिए म्यूट, और सभी पुश को बंद करने का विकल्प — ये सब फ़टीग मॉडल से अलग, स्वतंत्र रूप से काम करते हैं। ये दोनों सिस्टम साथ मिलकर काम करते हैं; मॉडल के अनुमान पर हमेशा उपयोगकर्ता की स्पष्ट पसंद ही भारी पड़ती है।

यह बाकी app के लिए क्यों मायने रखता है

पुश नोटिफ़िकेशन ही वह तरीका है जिससे कोई रोज़ की आदत रोज़ बनी रहती है। जो check-in app अपने पुश विशेषाधिकार खो देता है, वह अपना मुख्य रिटेंशन लूप खो देता है। 4-स्तरीय मॉडल इसलिए मौजूद है ताकि app इस विशेषाधिकार का दुरुपयोग न करे और इसे धीमे तरीके से न खो दे - यानी थोड़ा-सा परेशान करते हुए, बस इतने लंबे समय तक कि बात बिगड़ जाए।

रोज़ की आदत का पूरा संदर्भ Soulwise hub पर मौजूद है। फ़टीग मॉडल इस बात का एक हिस्सा है कि यह आदत माँग करने वाली नहीं, बल्कि पारस्परिक क्यों बनी रहती है।

संक्षेप में: पुश की सही संख्या वह सबसे बड़ी संख्या है जो लोगों को opt-out करने पर मजबूर न करे। फ़टीग मॉडल वही तरीका है जिससे app हर 14 दिन में, हर उपयोगकर्ता के लिए, वह संख्या ढूँढ़ता है।

अक्सर पूछे जाने वाले सवाल

Localytics और Urban Airship के इंडस्ट्री डेटा के अनुसार: रोज़ एक पुश भेजने पर तीन महीने का रिटेंशन लगभग 88% रहता है। रोज़ तीन पुश भेजने पर यह 17 प्रतिशत अंक गिर जाता है। रोज़ पाँच पुश भेजने पर यह 34 प्रतिशत अंक गिर जाता है। यह गिरावट बहुत तेज़ है।

मॉडल हर दिन पिछले 14 दिनों में यूज़र की ओपन रेट को फिर से कैलकुलेट करता है। यह विंडो आगे खिसकती रहती है; पुराना डेटा धीरे-धीरे हट जाता है। इससे हाल ही की घटती दिलचस्पी जल्दी पकड़ में आ जाती है, और एक खराब हफ़्ते पर ज़रूरत से ज़्यादा प्रतिक्रिया नहीं होती।

हाँ। अगर ओपन रेट रोलिंग विंडो के भीतर फिर से थ्रेशोल्ड के ऊपर पहुँच जाती है, तो यूज़र वापस ऊपर चला जाता है। मॉडल सममित (symmetric) है। घटती दिलचस्पी नीचे ले जाती है, और सुधार ऊपर ले आता है।

एक साधारण पुश सिस्टम जो दिलचस्पी की परवाह किए बिना अधिकतम संख्या में पुश भेजता है। इंडस्ट्री डेटा दिखाता है कि जब किसी ऐसी ऐप से, जिसे यूज़र सक्रिय रूप से नहीं चाहते, हफ़्ते में 2 से 5 पुश आते हैं, तो 46% यूज़र पुश को पूरी तरह बंद कर देते हैं। फ़टीग मॉडल इसीलिए है ताकि यह ऑप्ट-आउट कभी न हो।

हमारे मुफ़्त टूल आज़माएँ

अपनी जन्म कुंडली के आधार पर व्यक्तिगत जानकारी पाएँ