4단계 푸시 알림 피로도 모델

푸시 알림 피로도 모델이란 무엇이며 앱에 왜 필요한가요?
푸시 피로도 모델은 사용자가 앱 알림을 점점 적게 여는 시점을 감지해 완전히 수신을 거부하기 전에 자동으로 알림 양을 줄입니다. Soulwise는 롤링 14일 열람률 기준에 맞춘 4단계 모델(T0 정상, T1 강등, T2 핵심 알림만, T3 주간 알림만)을 사용합니다.
- 14일 이동 기간 동안의 오픈율 감소 감지
- 4단계로 알림 빈도를 점진적으로 줄임
- 회복 가능 - 사용자는 T0로 다시 올라갈 수 있음
- 일일 발송량 극대화가 아닌 수신 거부 방지를 위한 설계
4단계 푸시 알림 피로도 모델
푸시 알림은 사용자를 잃는 가장 값싼 방법이에요. 하루에 1회 푸시를 보낼 때의 리텐션 곡선은 괜찮아 보여요. Localytics와 Urban Airship의 업계 데이터를 보면 3개월 리텐션이 88퍼센트 부근에 모여 있어요. 하루에 3회 푸시를 보내면 곡선이 17퍼센트포인트 떨어져요. 하루에 5회 푸시를 보내면 34포인트만큼 떨어지고요. 그 모양은 가파르고 되돌리기 어려워요. 앱이 원하지 않는 푸시를 일주일에 2~5회 보내면 사용자의 46퍼센트가 푸시를 아예 차단해요.
Soulwise의 해법은 4단계 피로도 모델이에요. 롤링 14일 기간 동안의 오픈율 감소를 감지해, 사용자가 완전히 차단하기 전에 알림 횟수를 단계적으로 줄여요.
이 글에서는 그 설계와 임계값, 그리고 회복 로직을 차근차근 살펴봐요.
4가지 단계
상태 머신은 단순합니다. 모든 사용자는 한 번에 정확히 하나의 단계에 속합니다.
- T0 - 정상. 전체 일정이 적용됩니다. 아침 의식 알림, 오전 중반 맥락 알림, 저녁 회고, 그리고 이벤트 기반 알림이 모두 제공됩니다.
- T1 - 하향. 오전 중반 맥락 알림이 중단됩니다. 나머지는 모두 유지됩니다.
- T2 - 앵커 전용. 아침 의식 알림과 일요일 회고만 남습니다. 임의로 보내는 푸시는 모두 중단됩니다.
- T3 - 주간 전용. 주간 푸시 하나만 살아남습니다. 일일 주기는 중지됩니다.
순서가 중요합니다. 오전 중반 알림이 1순위로 사라지는 이유는 이벤트 가중치가 가장 낮기 때문입니다. 그것은 맥락 알림일 뿐, 일일 의식 자체의 일부는 아닙니다. 아침 알림은 가장 오래 유지됩니다. 이벤트 기반 일일 푸시가 일반 푸시보다 약 2.85배의 리텐션을 만들어내기 때문입니다. 이것을 없애면 앱도 끝납니다.
등급 변경을 유발하는 요인
사용자별로 14일 단위의 오픈율 데이터를 롤링 방식으로 살펴봅니다. 모델은 매일 최근 14일을 확인하고, 그 기간에 발송된 푸시 알림에 대한 사용자의 오픈율을 계산합니다.
Soulwise의 기준값은 사용자 개인의 기준선 대비 오픈율 30퍼센트 감소입니다. 어떤 사용자가 평소 푸시의 60퍼센트를 열어 보다가 롤링 기간의 수치가 42퍼센트 이하로 떨어지면, 모델은 해당 사용자를 한 등급 아래로 내립니다. 단 한 주의 부진(휴가, 질병, 바쁜 업무 주간)에 반응하지 않도록, 이 하락은 최소 3일 이상 지속되어야 합니다.
등급 상승도 같은 방식으로 작동합니다. 사용자가 T2 등급에 있고 오픈율이 기준선에서 30퍼센트 기준값을 뺀 수치 이상으로 3일 연속 회복되면, T1 등급으로 올라갑니다. T0 등급으로의 회복도 동일한 단계를 거칩니다.
이벤트 기반 푸시가 가장 오래 살아남는 이유
설계의 근거가 되는 Localytics / Urban Airship 데이터: 이벤트 기반 일일 푸시는 일반적인 일일 푸시보다 약 2.85배 높은 리텐션을 만들어냅니다. 새벽 9시에 보내는 "확인해 보세요!" 같은 일반적인 알림은 기억에 남지 않습니다. 반면 오늘의 실제 주기 단계에 맞춘 아침 알림("부드러운 시작이에요. 오늘은 어떤 일이 있나요?")은 이벤트 기반이며, 새로운 정보를 담고 있습니다.
T2는 아침 알림을 유지합니다. 이를 없애면 일일 루틴 전체가 사라지기 때문입니다. 앱의 나머지 모든 요소는 사용자가 아침에 한 번, 밤에 한 번 로그인하는 것을 중심으로 설계되어 있습니다. 이 알림이 없으면 루프가 끊어집니다.
피로도 배너 UX
사용자가 강등되면, 다음에 앱을 열 때 앱 안에 작은 배너가 나타나요:
"7일 동안 알림을 줄여뒀어요 - 다시 늘릴까요?"
이 문장은 3가지 역할을 해요. 변화가 있었음을 알리고, 그 원인을 사용자의 실패가 아닌 앱의 동작으로 돌리며, 선택권을 드려요. 알림을 다시 받고 싶다면 사용자는 한 번의 탭으로 강등을 되돌릴 수 있어요.
이것이 중요한 이유는, 조용한 강등은 앱이 사용자를 버린 것처럼 느껴지기 때문이에요. 반면 분명히 드러내는 강등은 앱이 사용자를 챙기는 것처럼 느껴지죠. 같은 동작이라도 표현 방식에 따라 달라지는 거예요.
우리가 의도적으로 만들지 않은 안티패턴
제품 사양에는 금지 사항이 명확하게 규정되어 있어요:
- "연속 기록을 깨지 마세요"식의 죄책감 자극 푸시 없음. 연속 기록은 손실 회피 심리를 이용한 수치심 유발이에요. 피로도 모델은 사용자의 단계를 낮출 뿐, 수치심을 주지 않아요.
- T3 종료 시점의 "보고 싶어요"식 재활성화 푸시 없음. T3 단계에 있는 사용자는 이미 앱에 무언가를 말하고 있는 거예요. 푸시를 더 보내는 건 잘못된 대응이에요.
- 푸시 본문에 가짜 카운터나 희소성 문구 없음. "방금 X명이 가입했어요"는 알림이 아니라 다크 패턴 연출일 뿐이에요.
- 푸시 제목이나 본문에 생리나 점성술 콘텐츠 없음. 푸시는 금지된 패턴이 포함된 빌드를 거부하는 CI 린트를 거치며, 피로도 모델은 이를 절대 우회하지 않아요.
시스템 내부의 데이터는 실제로 어떤 모습일까요
이 모델은 사용자별 상태를 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
이것이 피로도 상태의 전부입니다. 검색 기록도 없고, 열람률을 넘어서는 참여도 점수도 없으며, 사용자를 학습한 머신러닝 모델도 없습니다. 이 단순함이 핵심입니다. 규칙은 감사할 수 있고, 임계값은 문서화되어 있으며, UX 결과는 예측 가능합니다.
이것이 아닌 것
범위에 대한 안내입니다.
피로도 모델은 코호트 단위가 아니라 사용자 단위로 작동합니다. "당신과 비슷한 사용자"를 살펴보거나, 리텐션을 파악하려고 사용자의 노출을 낮추는 실험을 하지 않습니다. 이 모델은 개인을 위해 작동합니다.
또한 사용자가 직접 설정한 항목을 대체하지 않습니다. 방해 금지 시간, 카테고리별 음소거, 모든 푸시 알림 끄기는 모두 피로도 모델과 별개로 작동합니다. 이 2개의 시스템은 서로 보완하며, 사용자의 명시적인 선택이 언제나 모델의 추론보다 우선합니다.
이 기능이 앱 전반에 중요한 이유
푸시 알림은 매일의 의식을 매일 유지시키는 수단입니다. 푸시 권한을 잃은 체크인 앱은 핵심 리텐션 루프를 잃게 됩니다. 4단계 모델이 존재하는 이유는, 앱이 이 권한을 남용하다가 천천히 잃지 않도록 하기 위해서입니다. 아주 약간 거슬리는 정도라도 충분히 오래 지속되면 권한은 사라지니까요.
매일의 의식에 대한 더 자세한 맥락은 Soulwise 허브에서 확인하실 수 있습니다. 피로도 모델은 이 의식이 부담스럽지 않고 서로 주고받는 관계로 유지되는 이유 중 하나입니다.
짧게 말하면, 적절한 푸시 횟수란 사용자가 수신을 거부하지 않는 선에서 가장 많은 횟수입니다. 피로도 모델은 앱이 사용자마다 그 횟수를 14일마다 찾아내는 방법입니다.
자주 묻는 질문
무료 도구 사용해 보기
출생차트를 바탕으로 한 맞춤형 인사이트를 받아 보세요