Skip to content

플레이 이어하기 푸시 PRD

Status: Released created: March 24, 2026 9:01 PM 앱/웹/스튜디오: 서버

1. 목표 및 배경

  • 기존 조건별 푸시 PRD에서 "에피소드 재방문" 푸시가 개인화 스케줄링의 복잡도로 인해 보류되었음
  • 플레이 중이던 에피소드를 이탈한 유저에게 맞춤형 푸시를 발송하여 앱 재방문을 유도하는 것이 핵심 목표
  • 관련 문서: 조건별 푸시 PRD (7번 항목)

기존 보류 사유 및 해소 방안

  • 보류 사유: 개인별 마지막 플레이 시점을 추적하여 개인화 스케줄링해야 하므로 구현 난이도가 높았음
  • 해소 방안: 개인별 트리거 대신 매일 19:00 (KST) 고정 배치로 단순화. 최근 72시간 내 플레이 이력이 있으나 당일 씬 생성 이력이 없는 유저를 대상으로 발송

2. 타깃 사용자

  • 푸시 알림 수신에 동의한 유저
  • 최근 72시간 이내 에피소드를 플레이한 이력이 있는 유저
  • 당일 씬 생성 이력이 없는 유저

3. 핵심 기능 요구사항

공통 요구 사항

  • Deep Link: 푸시 클릭 시 해당 에피소드 상세 페이지로 즉시 이동하는 딥링크를 포함해야 합니다.
  • 변수 치환: 메시지 내 에피소드 명({episode_title}), 플레이어 이름({player_name}: 해당 에피소드 플레이 내에서 사용 중인 플레이어 이름)이 자동으로 치환되어야 합니다.
  • 한국어 조사 자동 치환: 변수 뒤에 오는 조사(이/가, 을/를, 로/으로, 은/는, 와/과)는 변수값의 마지막 글자 받침 유무에 따라 자동으로 올바른 형태로 치환되어야 합니다.

푸시 조건

항목내용
푸시 명칭플레이 이어하기 알림
발송 트리거매일 19:00 (KST) 배치 처리
발송 대상아래 조건을 모두 충족하는 유저:
① 푸시 수신 동의
② 최근 72시간 내 에피소드 플레이 이력 있음
③ 당일(배치 실행일) 씬 생성 이력 없음
에피소드 선택유저가 최근 72시간 내 플레이한 에피소드 중 가장 마지막으로 플레이한 에피소드 1개
엔딩 도달 여부무관 (엔딩 도달 에피소드도 포함)
반복 발송제한 없음. 유저가 동일 에피소드를 계속 플레이 중이면 연속으로 같은 에피소드 푸시 가능 (최대 3일 연속)
발송 시간매일 19:00 (KST)
랜딩 페이지해당 에피소드의 에피소드 상세 페이지 (/episode/:episodeId)
마케팅 동의불필요 (서비스성 알림)
labelcontinue_play

배치 처리 플로우

매일 19:00 (KST) 배치 실행 시:

  1. 푸시 수신 동의 유저 필터
  2. 당일 씬 생성 유저 제외
  3. 최근 72시간 내 플레이 이력이 있는 유저 필터
  4. 가장 마지막으로 플레이한 에피소드 1개 선택
  5. 문구 5개 중 랜덤 1개 선택
  6. 푸시 발송

푸시 문구

플레이 이어하기 알림 매일 19:00 발송(마케팅 동의 필요 없음)

  • 아래 5개 문구 세트 중 랜덤 1개를 선택하여 발송합니다.
  • 랜딩: 해당 에피소드 상세 페이지 (/episode/:episodeId)
#제목본문
1아직 끝나지 않은 이야기가 있어요 📖{episode_title}에서 이어가볼까요?
2{episode_title}의 다음 이야기는? ✨{player_name} 님의 선택을 기다리고 있어요!
3어디까지 봤더라…? 👀{episode_title}를 이어서 플레이해보세요!
4잠깐, 그 선택 거기서 끝? 🤔{episode_title}, 아직 갈 길이 남았어요!
5{player_name} 님 없인 이야기가 안 돌아가요 🥺{episode_title}이/가 당신의 다음 선택을 기다리는 중!

담대한 제안: 마지막으로 만난 캐릭터 활용 문구 (Good to Have — 스코프 미확정, 백엔드 개발자 의견 후 결정)

  • {last_char_name}: 유저가 마지막으로 만난 캐릭터의 이름
  • 캐릭터 데이터가 없는 경우: 기본 문구 세트 중 랜덤 발송
  • 캐릭터 데이터가 있는 경우: 아래 문구 세트 + 기본 문구 세트 중 랜덤 발송
#제목본문
1{last_char_name}이/가 기다리고 있어요.지금 바로 {episode_title}로/으로 만나러 갈까요?
2지금 바빠요? 👀{episode_title}에서 {last_char_name}이/가 기다리고 있어요!
3{last_char_name}의 다음 반응이 궁금하다면?{episode_title}로/으로 만나러가기 🏃🏻

4. 사용자 플로우

  1. 유저가 에피소드를 플레이하다 앱을 종료 (이탈)
  2. 다음날~72시간 이내, 유저가 씬 생성을 하지 않은 상태
  3. 19:00 (KST) 배치 실행 → 조건 충족 확인
  4. 푸시 발송: 5개 문구 세트 중 랜덤 1개 선택하여 발송
  5. 유저가 푸시 탭 → 해당 에피소드 상세 페이지로 이동
  6. 에피소드 상세에서 이어하기/플레이 액션 수행

5. 에러 처리 및 예외 상황

예외 상황처리 방안
최근 72시간 내 플레이한 에피소드가 삭제/비공개 전환된 경우해당 유저는 푸시 발송 대상에서 제외
최근 72시간 내 플레이 이력이 없는 유저대상 아님 → 스킵
유저가 당일 앱에 접속해서 씬 생성한 경우스킵 (이미 활성 유저)
유저가 푸시 수신을 거부한 경우대상 아님 → 스킵
같은 에피소드 푸시가 3일 연속 발송되는 경우허용 (72시간 윈도우 내에서 자연스럽게 최대 3회로 제한됨)
배치 실행 실패 또는 지연재시도 정책 없음
배치 처리 중(시작~발송 완료 사이) 유저가 씬을 생성한 경우그대로 발송 (실시간 체크 하지 않음)
동일 시간대 다른 스케줄 푸시와 중복현재 19:00 (KST) 스케줄 푸시는 본 건만 해당하여 충돌 없음. 즉시 발송 푸시와 겹치는 것은 허용

6. 데이터 분석

  • 가설: 플레이 이어하기 푸시가 추가되면, 에피소드를 플레이하다 이탈한 유저의 D1~D3 재방문율이 증가할 것이다.

⇒ FCM 데이터 라벨로 확인

핵심 지표

  • 발송 수: 일별 푸시 발송 건수
  • 클릭률 (CTR): push_clicked / push_sent
  • 재방문 전환율: 푸시 클릭 후 실제 씬 생성까지 이어진 비율
  • D1~D3 리텐션 변화: 푸시 도입 전후 비교