4層推播通知疲勞模型

什麼是推播通知疲勞模型?App 為什麼需要它?
推播疲勞模型會偵測使用者開啟通知的頻率是否下降,並在使用者完全關閉通知前自動減少推播數量。Soulwise 採用 4 級模型(T0 健康、T1 降級、T2 僅保留重點、T3 僅每週推播),並以滾動 14 天的開啟率為基準。
- 偵測過去 14 天滾動週期內的開信率下滑
- 四個層級逐步降低通知數量
- 可以恢復——用戶能重新回升至 T0
- 旨在防止用戶退訂,而非衝高每日通知量
4 層推播通知疲勞模型
推播通知是讓你失去使用者最廉價的方式。每天 1 則推播時,留存曲線看起來還不錯——來自 Localytics 與 Urban Airship 的產業數據集中在約 88%的 3 個月留存率。每天 3 則推播時,曲線會下滑 17 個百分點。每天 5 則推播時,更會下滑 34。這條曲線陡峭且無法逆轉:當一款 app 每週傳送 2 到 5 則使用者不想要的推播時,有 46%的使用者會完全關閉推播。
Soulwise 的對策是一套 4 層疲勞模型。它會在滾動的 14 天區間內偵測開啟率的衰退,並在使用者徹底關閉推播之前,逐步降低通知數量。
這篇文章會帶你了解它的設計、各項門檻,以及恢復邏輯。
4 個層級
這個狀態機很精簡。每位使用者在同一時間只會處於 1 個層級。
- T0 — 健康。 完整排程。早晨儀式提示、上午的情境提醒、晚間反思,再加上以事件為錨點的提示。
- T1 — 降級。 上午的情境提醒暫停,其餘照常進行。
- T2 — 僅保留錨點。 只保留早晨儀式提示與週日回顧,所有非必要的推播都暫停。
- T3 — 僅保留每週。 只留下單一的每週推播,每日節奏暫停。
順序很重要。上午提醒最先被取消,因為它承載的事件權重最低:它只是情境提醒,並非每日儀式本身。早晨提示則保留最久,因為以事件為錨點的每日推播,留存率約為一般推播的 2.85 倍;取消它,等於毀掉整個 app。
什麼會觸發分層變動
系統會以每位使用者滾動的 14 天開啟率資料為依據。模型每天檢視最近 14 天,計算使用者在這段期間收到的推播通知開啟率。
Soulwise 的門檻是相較使用者個人基準線出現 30% 的開啟率衰退。如果某位使用者平時會開啟 60% 的推播,而滾動視窗內降到 42% 或更低,模型就會將他往下調一層。這個下滑必須持續至少 3 天,以免只因單一一週狀況不佳(度假、生病、工作特別忙碌)就做出反應。
升級的判定方式對稱。如果某位使用者目前在 T2,而開啟率連續 3 天回升到超過基準線減去 30% 門檻的水準,就會升回 T1。要回到 T0 也是同樣的步驟。
為什麼以事件為錨點的推播能存活最久
驅動這項設計的關鍵數據來自 Localytics/Urban Airship:以事件為錨點的每日推播,留存率大約是一般每日推播的 2.85 倍。在凌晨 9 點推送一句通用的「快來看看我們吧!」很容易被忽略。而一則錨定於今天實際週期階段的早晨提示(「溫和的開始。你今天有什麼安排?」)就是以事件為錨點——因為它帶有新資訊。
T2 之所以保留早晨提示,是因為移除它就等於移除了整個每日儀式。App 中的其他一切,都是圍繞著使用者早上登入一次、晚上登入一次而打造的。少了這則提示,整個循環就會中斷。
疲勞橫幅的使用者體驗
當使用者被降級時,下次開啟 App 時,畫面內會出現一個小橫幅:
「我們已經暫緩了 7 天──要重新開啟嗎?」
這句話做了 3 件事:它承認了改變、把原因歸於 App 的行為(而非使用者的失敗),並把選擇權交還給你。如果想重新收到通知,使用者只要輕點一下,就能取消降級。
這之所以重要,是因為無聲的降級會讓人覺得 App 拋棄了使用者,而明說出來的降級,則讓人感受到 App 的用心。同樣的動作,不同的呈現方式。
我們刻意不做的反模式
產品規格明確列出哪些做法是禁止的:
- 不使用「別中斷你的連續紀錄」的罪惡感推播。 連續紀錄是利用損失趨避來羞辱使用者。疲勞模型會降階使用者,而不是羞辱他們。
- 不在 T3 結束時發送「我們想你了」的回流推播。 處於 T3 的使用者,已經在向 App 傳達某種訊息。再加更多推播是錯誤的回應。
- 不在推播內文使用假計數器或稀缺感。 「剛剛有 X 人註冊」是暗黑模式的把戲,而不是通知。
- 不在推播標題或內文放入經期或占星內容。 推播會經過 CI lint 檢查,凡是包含禁止模式的版本都會被拒絕;疲勞模型絕不會繞過這道關卡。
系統內部的資料實際長什麼樣子
模型用 3 個欄位來儲存每位使用者的狀態:
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
這就是整個疲勞狀態的全貌。沒有瀏覽紀錄,除了開信率之外沒有任何互動評分,也沒有針對使用者訓練的機器學習模型。這份簡單正是重點所在:規則可被稽核、門檻有明文記載、對使用者體驗的影響也能預期。
這不是什麼
關於範圍的說明。
疲勞模型是針對每位使用者,而非每個群組。我們不會去看「和你類似的使用者」,也不會進行那種把使用者降權、藉此研究留存率的實驗。這個模型服務的是個人。
它也不會取代由使用者掌控的設定。安靜時段、分類靜音,以及明確的「全部停用推播」,都獨立於疲勞模型之外運作。這 2 套系統相互搭配;使用者的明確選擇,永遠優先於模型的推測。
為什麼這件事對整個 App 都很重要
推播通知,是讓每日儀式能夠「天天延續」的關鍵。一個簽到型 App 一旦失去推播權限,就等於失去了主要的留存循環。4 階層的模型之所以存在,就是為了讓 App 不濫用這項權限、不至於以最緩慢的方式失去它——也就是只要稍微惱人、持續夠久就會發生的那種失去。
更完整的每日儀式脈絡,請見 Soulwise 中心頁。疲勞模型正是其中一環,讓這份儀式維持互惠,而不是一味索求。
簡短版本是這樣:推播的理想次數,就是不會導致使用者退訂的最大次數。而疲勞模型,正是 App 用來為每位使用者、每 14 天找出那個數字的方法。
常見問題
試試我們的免費工具
依據你的本命盤,獲得專屬於你的洞察