Skip to content

신규 유저 첫 프롤로그/첫 씬 생성 전환 개선 PRD

Backlog grooming 단계의 산출물. 무엇을 만들지·왜 만들지·핵심 비즈니스 룰을 정의한다. 화면별 디테일(컴포넌트·상태·인터랙션)은 spec.md로.


Status: ready for handoff Created: 2026-06-01 Last updated: 2026-06-16 Linear (메인 이슈): DEE-295Linear Project: [앱] 신규 유저 첫 프롤로그/첫 씬 생성 전환 개선Author: agent (prd-writer) 앱/웹/스튜디오: 앱

2026-06-04 통합: 본 PRD는 신규 유저의 첫 프롤로그 경험 → 첫 씬 생성 전환 개선을 하나의 기능 단위로 다룬다. 광고 유입 유저와 오가닉/매칭 없음 신규 디바이스 유저를 별도 프로젝트가 아니라 유입 소스·매칭 상태 분기로 통합한다. 이전에 광고(메인 이슈 DEE-295)·오가닉(DEE-308 + 별도 PRD)으로 나눴던 분리는 본 통합 PRD로 대체(superseded) 되었다. Linear 메인 이슈/프로젝트 명칭 정리는 별도로 진행한다. 분기 정의는 §1.4·§3, 통합 이력·소스 비교는 §8.


Reversal Risk Summary

LayerR-levelReview focus
Policy / RuleR2광고 분기에서 가입 전 프롤로그를 어디까지 열어줄지(프롤로그 끝/첫 씬 생성 직전 가입 월) 정책 + 오가닉/매칭 없음 분기의 진입 동선을 "추천 모달 분기"에서 "로그인 전 어드민 후보 3개 → 선택 → 프롤로그 → 첫 씬 직전 가입"으로 바꾸는 정책. 출시 후 플래그로 조정 가능하나 실험 설계·가드레일과 묶여 있어 출시 전 확정 필요
Data / BackendR3현재 게스트/익명 세션이 없음 (로그인 월). 광고 분기의 가입 전 프롤로그 read 경로가 인증/세션 아키텍처를 건드려 되돌림 비용 큼(R3). 광고↔콘텐츠 매핑(Airbridge), 로그인 전 디바이스 가입 이력 1차 판정·어드민 후보 관리(R2)가 추가 백엔드 작업
User-facing SurfaceR2신규 유저 진입 시퀀스 재배치 — 광고 유입 딥링크 직후 / 오가닉·매칭 없음 신규 디바이스의 로그인 전 후보 선택. 기존 온보딩 시퀀스(웰컴 스타·신규 추천 모달)와의 순서 충돌 조정
Copy / Visual PresentationR1프롤로그 경험 화면·가입 유도 CTA·후보 제시·씬 생성 시점 스타 안내 문구는 출시 후 빠르게 조정 가능

로그인 전 디바이스 가입 이력 1차 판정은 재설치·멀티디바이스·기존 계정 로그인과 충돌할 수 있다. 판정 시점·중복방지 룰은 §4·§7에서 별도 확인한다.


1. 목표 및 배경

1.1 문제

신규 유저가 가입/진입 직후 무료 가치(프롤로그)를 경험하고 첫 씬을 생성하기까지의 동선이 약하다. 유입 소스별로 끊기는 지점이 다르다:

  • 광고 유입 미로그인 유저: 광고에서 본 특정 콘텐츠를 기대하고 앱을 열지만, 그 콘텐츠를 한 번도 경험하기 전에 OAuth 로그인/가입 월을 먼저 통과해야 한다. 광고로 만들어진 기대가 가입 동기로 이어지기 전에 끊기고, 가입을 완료해도 같은 콘텐츠 맥락이 연결되지 않는다.
  • 오가닉/광고 매칭 없음 신규 디바이스 유저: 광고 매칭 컨텍스트가 없어, 현행은 가입 후 웰컴 스타 모달 → 신규 추천 모달 → 홈/플레이로 분기되며 무료 가치 경험(프롤로그)과 첫 씬 생성까지의 동선이 흩어진다.

두 경우 모두 가입/진입 이후 첫 씬 생성까지의 활성화 퍼널이 약하다는 같은 문제로 수렴한다.

1.2 목표

공통 목표: 유입 소스와 무관하게 신규 유저를 첫 프롤로그 경험 → 첫 씬 생성까지 더 빠르게 잇는다.

  1. 신규 유저에게 프롤로그(무료 가치)를 가능한 한 앞당겨 경험시킨다.
  2. 온보딩에서 비주얼 선호(preferred visual type) 를 받아 후보·추천의 개인화 입력값으로 쓴다.
  3. 프롤로그 직후 첫 씬 생성으로 자연스럽게 잇는다 (필요한 분기에서는 가장 동기 높은 순간에 가입을 유도).
  4. 첫 씬 생성 전 handoff에서 웰컴 스타를 안내·수령하게 해 결제 없이 활성화시킨다.
  5. 이미 가입한 기존 유저 중 비주얼 선호가 없는 유저에게는 업데이트 이후 첫 앱 진입 시 필수 VisualtypeSurvey bottomsheet를 제공해 추천 품질을 보강한다.

유입 소스(광고/오가닉)는 이 공통 목표를 달성하기 위한 진입 조건 분기일 뿐, 별도 기능이 아니다 (§1.4·§3).

1.3 핵심 근거

  • 전환 개선 여지: 가입 → 첫 씬 생성 완료 전환은 약 47%, 첫 씬 생성까지 약 50분이다. 활성화까지 가는 비율·속도 모두 개선 여지가 크다.
  • 리텐션 연결: D0 첫 씬 생성 유저의 D1 리텐션은 **18.6%**로 미생성 유저 **9.8%**의 약 2배 — 첫 씬 생성은 다음날 재방문의 강한 선행 지표다.
  • 유입 모수: 최근 신규 유저의 약 **78%**가 유료 광고 유입 → 광고 분기 도달 모수가 충분히 크고, 나머지 오가닉 신규도 같은 활성화 레버(프롤로그→첫 씬)를 공유한다.
  • 프롤로그의 제품 특성: 프롤로그 scene은 user input 없는 무료 scene(스타 차감·turn 아님)이라 가입/결제 전 가치 선경험 후보로 적합하다.
  • 왜 지금: 6월 Product Focus("가입한 유저가 다음날 들어올 이유를 만든다")의 직접 레버가 첫 씬 생성 활성화다.

1.4 해결 방향 — 공통 목표 + 유입 소스 분기

진입 시 유입 소스/판정에 따라 분기하되, 프롤로그 → 첫 씬 생성 → 웰컴 스타(signup_reward) 지급의 활성화 코어는 공유한다.

A. 광고 유입 미로그인 분기 — 유효한 Airbridge deep link/deferred deep link payload + 에피소드 매칭이 확인되면, 가입 전 매칭 에피소드 프롤로그를 먼저 보여준다 → 첫 씬 생성 직전 가입 유도 → 가입/온보딩 후 **같은 에피소드의 마지막 프레임(첫 씬 생성 직전)**으로 복귀(복원 불가 시 안전한 player 위치 폴백) → 첫 씬 생성.

B. 오가닉/매칭 없음 신규 디바이스 분기 — 광고 매칭이 없는 진입은 로그인 전에 디바이스 가입 이력 1차 판정 후, 신규 디바이스이면 어드민이 큐레이션한 후보 에피소드(기본 3개) 를 먼저 제시 → 유저가 고른 에피소드의 비로그인 프롤로그 진입 → 첫 씬 생성 직전 가입 유도 → 가입/온보딩 후 같은 에피소드의 마지막 프레임(복원 불가 시 안전한 player 위치 폴백)으로 복귀해 첫 씬 생성. 온보딩에는 기존 닉네임/성별/생년월일/장르에 비주얼 선호 수집을 추가해 이후 후보·추천 개인화에 사용한다.

C. 광고 매칭 없음/무효 분기 — 광고 attribution은 있으나 유효 payload·에피소드 매칭이 없거나 매칭 에피소드가 비공개·삭제이거나 성인 전용(ADULTS_ONLY)이라 유저가 접근 불가이면, 광고 매칭 프롤로그를 띄우지 않고, 디바이스 신규 자격이 되면 로그인 전 후보 제시 폴백으로 보낸다. 즉 분기 C는 분기 B로 합류한다.

  • 광고 분기(A)의 가입 후 복귀 목적지는 씬 생성 의도(return_intent=create_scene)인 경우 **같은 에피소드의 마지막 프레임(첫 씬 생성 직전)**이다. 마지막 프레임 복원이 불가하면 안전한 player 위치로 폴백하고, 임의 생성을 진행하지 않는다. 복귀 컨텍스트는 BE resume token 없이 FE 로컬 상태로만 보존한다.
  • 기존 유저 선호 보강은 신규 가입 프롤로그 funnel과 분리한다. 로그인된 기존 유저가 업데이트 이후 첫 앱 진입을 했고 VisualtypeSurvey 완료 이력이 없으면, 앱의 원래 목적지 위에 필수 bottomsheet를 노출한다. 비주얼 타입 1개 이상 선택 전까지 완료 CTA는 비활성화하며, bottomsheet는 drag down/dim tap/system back 등으로 강제 dismiss할 수 없다. 완료 시 preferred_visual_types를 저장하고 원래 앱 진입 목적지로 이동/복귀한다.

1.5 성공 지표

공통 코어 지표를 유입 소스(entry_source)·광고 매칭 상태(ad_match_status) 로 분해해 측정한다. entry_source ∈ {ad, organic}, ad_match_status ∈ {matched, no_match, read_failed, n/a}. 모든 지표는 실험군 vs 대조군.

지표현재목표측정 방법
신규 유저 → 첫 씬 생성 전환율 (메인, 공통)가입→첫 씬 ~47%상승 (+5%p 이상)첫 씬 생성 유저 / 신규 진입, entry_source로 분해
가입 완료율 (component & 가드레일)산출 필요미하락가입 완료 / 진입, entry_source 분해
가입 완료 → 첫 씬 생성 전환율 (component)~47%+5%p 이상첫 씬 생성 / 가입 완료, 소스 분해
첫 씬 생성까지 소요 시간 (보조)약 50분단축진입/가입 ~ 첫 씬 생성 타임스탬프 차
신규 유저 D1 리텐션 (보조 outcome)~13%(광고) / 산출 필요(오가닉)상승D1 재방문 / 신규 가입, 소스 분해
광고 매칭율 (광고 분기 진단)산출 필요매칭 콘텐츠 노출 / 광고 진입, ad_match_status
후보 노출 → 선택률 (오가닉 분기 진단)산출 필요상승후보 선택 / 후보 노출
홈 진입률 (오가닉 가드레일)산출 필요미하락후보·프롤로그 동선이 홈 도달/이탈을 악화하지 않는지
  • 메인 지표는 공통 = 신규 유저 → 첫 씬 생성 전환율이며, entry_source(ad/organic)·ad_match_status(matched/no_match/read_failed/n/a)로 분해해 소스별 효과를 본다. 소스별 메인 PRD를 따로 두지 않는다.
  • 광고 분기는 추가로 end-to-end(광고 오픈/디퍼드 딥링크 오픈 → 첫 씬 생성)로도 본다 — 가입 게이트 이탈과 가입 후 활성화 이탈을 모두 포함.
  • component 목표(가입 완료 → 첫 씬 생성 +5%p)는 선행 「신규 유저 에피소드 추천 기능」 PRD의 동일 구간 가설(47% → 52~56%)을 기준으로 둔다.
  • 가드레일: 가입 완료율 미하락, 기존 회원 로그인 UX 미회귀, 오가닉 홈 진입 미악화.

2. 타깃 사용자

2.1 주요 사용자 (유입 소스 분기)

  • 광고 딥링크 유입 미로그인 유저 (앱, OAuth 미통과) — 분기 A. 식별 기준: Airbridge deep link open callback 또는 deferred deep link payload로 캠페인·크리에이티브가 식별되고, 그에 매칭되는 에피소드 컨텍스트가 있는 미로그인 진입. 단순 paid attribution만 있고 딥링크 payload가 없으면 분기 C(→ B 폴백).
  • 오가닉/매칭 없음 신규 디바이스 유저 (앱, 로그인 전 디바이스 기준 신규) — 분기 B. 광고 매칭 없이, 디바이스에 기존 이용 흔적이 없는 것으로 1차 판정된 신규 디바이스. 로그인 전 후보 제시·비로그인 프롤로그 대상.
  • OAuth 제약: 로그인=가입 겸용 OAuth라 OAuth 에는 신규/기존 구분이 불가하다. 광고 분기는 콘텐츠 컨텍스트가 있어 "신원 미상 유저용 광고 콘텐츠 프리뷰"로 가입 전 프롤로그를 정당화할 수 있다. 컨텍스트 없는 오가닉은 디바이스 가입 이력 1차 판정 후 로그인 전 후보 선택으로 먼저 무료 가치를 보여주되, 첫 씬 생성은 OAuth/가입/온보딩 후에만 허용한다 (§1.4·§3·§8).

2.2 범위 밖

  • 가입 후 앱 첫 진입(사실상 기존 유저), 재설치/재로그인 유저, 이미 가입한 유저의 프롤로그 선노출·후보 선택 전환 개선. 단, 기존 유저 중 비주얼 선호가 없는 유저에게 선호를 받는 별도 루트는 본 범위에 포함한다.
  • 디바이스에 기존 이용 흔적이 있는 유저·기존 회원 로그인의 프롤로그/후보 선노출.

2.3 핵심 시나리오

  1. (광고) 광고를 본 미로그인 유저가 앱을 설치·진입(디퍼드 딥링크)하면, 그 광고와 매칭된 에피소드의 프롤로그를 가입 없이 바로 경험하고, 이어서 진행하려는 순간 가입 → 가입/온보딩 완료 직후 **같은 에피소드의 마지막 프레임(첫 씬 생성 직전)**으로 복귀해 첫 씬 생성으로 잇는다(복원 불가 시 안전한 player 위치 폴백).
  2. (오가닉/매칭 없음) 광고 매칭이 없는 신규 디바이스 유저는 로그인 전 어드민 큐레이션 후보 에피소드 3개 중 하나를 고르고, 그 프롤로그를 비로그인으로 먼저 경험한 뒤 첫 씬 생성 직전 가입한다. 가입/온보딩 완료 후 같은 에피소드 마지막 프레임(복원 불가 시 안전한 player 위치 폴백)으로 복귀해 첫 씬 생성으로 잇는다.
  3. (광고 매칭 없음/접근 불가) 광고 attribution은 있으나 매칭 payload·에피소드가 없거나 비공개·삭제이거나 성인 전용(ADULTS_ONLY)이라 유저가 접근 불가하면, 광고 매칭 프롤로그를 띄우지 않고 접근 가능한 로그인 전 후보 제시(분기 B)로 폴백한다.
  4. (가드레일) 기존 가입 이력이 있는 디바이스 ID로 판정되면 광고 프롤로그 프리뷰와 후보 선택을 모두 띄우지 않고 기존 로그인/딥링크 정책을 따른다. OAuth 후 기존 회원 판정도 동일 정책으로 흡수한다.
  5. (기존 유저 선호 수집) 이미 가입한 유저가 로그인된 상태로 업데이트 이후 첫 앱 진입을 했고 preferred_visual_types 또는 VisualtypeSurvey 완료 이력이 없으면, 앱의 원래 목적지 위에 필수 VisualtypeSurvey bottomsheet를 노출한다. 비주얼 타입 1개 이상 선택 전까지 완료 CTA는 disabled이며, drag down/dim tap/system back으로 강제 dismiss할 수 없다. 완료 후 같은 프로필 필드에 저장하고 원래 앱 진입 목적지로 이동/복귀한다.

3. 핵심 기능 요구사항

§3-1 A·B·C는 광고 분기, D는 오가닉 분기, E·F는 공통(첫 씬 생성·스타 / 가드레일). 분기 C(광고 매칭 없음)는 D로 합류한다.

3-1. 클라이언트 (앱)

A. [광고 분기] 가입 전 광고 콘텐츠 프롤로그 경험

  • 주요 동작: Airbridge deep link/deferred deep link payload를 받은 미로그인 유저가 진입 직후, 가입 없이 광고에 매칭된 에피소드의 프롤로그를 경험한다.
  • 비즈니스 룰:
    • 대상은 Airbridge deep link open callback 또는 deferred deep link payload로 콘텐츠 매칭이 식별되는 미로그인 진입에 한정한다. 매칭이 없으면 가입 전 프롤로그를 띄우지 않는다(→ D 폴백).
    • paid attribution 단독 트리거 금지: 유료 광고로 잡혔더라도 deep link/deferred deep link callback payload가 없거나 payload 안에 캠페인·크리에이티브·에피소드 매칭값이 없으면 본 동작을 트리거하지 않는다.
    • 프롤로그까지만 무료·비로그인으로 연다. 프롤로그는 user input 없는 무료 scene이므로 credit·계정 없이 렌더한다.
    • 프롤로그를 넘어서는 첫 행동(첫 씬 생성 = credit이 필요한 첫 turn)에 도달하면 가입 월로 전환한다(B).
    • 콘텐츠 선정(v1): 광고 크리에이티브/캠페인/디퍼드 딥링크 ↔ 에피소드 매핑 한 가지. 운영이 관리하는 매핑 테이블.
  • 상태별 동작:
    • 광고 매칭 성공 → 매칭 에피소드 프롤로그.
    • 광고 매칭 실패/컨텍스트 없음/매칭 에피소드 비공개·삭제 → 광고 프롤로그 미노출, 로그인 전 후보 제시(D)로 폴백.
    • 매칭 에피소드가 성인 전용(ADULTS_ONLY)이고 유저가 접근 불가(미성년/성인 미인증) → 광고 프롤로그 미노출, 로그인 전 후보 제시(D)로 폴백(후보는 접근 가능한 에피소드 기준). 성인 접근 정책 자체는 기존 adultVerifiedAt → isAdult()·ADULTS_ONLY 정책을 따른다.
    • 기존 가입 디바이스 ID → 광고 프롤로그 미노출, 기존 로그인/딥링크 정책으로(F).
    • 프롤로그 경험 중 이탈(가입 없이 나가기) → 로그인/온보딩 전 Home CTA를 노출하지 않는다. 프롤로그 Skip은 로그인 유도가 아니라 AdPrologueSelect/OrganicPrologueSelect 이동으로 처리한다.
    • 비로그인 프롤로그 read 실패(네트워크/콘텐츠 없음) → §4.

B. [광고 분기] 가입 전환 (프롤로그 → 가입)

  • 주요 동작: 프롤로그 경험 후(또는 첫 씬 생성 시도 시) 가입을 유도하고, 기존 OAuth 소셜 로그인/온보딩으로 연결한다.
  • 비즈니스 룰:
    • 가입 트리거 지점은 첫 씬 생성 직전을 기본으로 한다(가장 동기가 높은 순간). 프롤로그 종료 시점에도 추가 CTA를 둘지는 §7.
    • 가입은 기존 인증 플로우 재사용 (소셜 OAuth → pending → 온보딩(닉네임/성별/생년월일/장르/비주얼 선호) → active).
    • 가입 직전 경험하던 에피소드 식별자와 진행 위치를 보존하여 가입 완료 후 복귀에 사용한다(C).

C. [광고 분기] 가입 완료 후 같은 콘텐츠 복귀

  • 주요 동작: 가입·온보딩 완료 후, 경험하던 광고 매칭 에피소드로 복귀시키고 → 공통 첫 씬 생성·무료 스타 지급(E)으로 잇는다.
  • 비즈니스 룰:
    • 복귀 목적지는 **씬 생성 의도(return_intent=create_scene)면 같은 에피소드의 마지막 프레임(첫 씬 생성 직전)**이다. 마지막 프레임 복원이 불가하면 기존 player/episode 정책에 따라 안전한 위치로 폴백한다. 홈/추천 모달이 아니라 해당 에피소드로 직행한다.
    • 복귀 컨텍스트는 BE resume token 없이 FE 로컬 상태로만 보존한다 — entry source, matched/candidate episode, candidate selection state, last frame/scene creation entry point, return_intent=create_scene, return_destination, context_lost, signup_reward 시도·결과 등 최소값만 유지한다(spec §4·§7).
    • 컨텍스트 유실 시 폴백: 복귀 컨텍스트가 끊기면 후보 제시/홈/신규 추천으로 폴백한다.

D. [오가닉/매칭 없음 분기] 로그인 전 디바이스 신규 판정 → 후보 3개 제시 → 선택 프롤로그 진입

  • 주요 동작: 광고 매칭이 없는 진입에서 로그인 전 디바이스 가입 이력 1차 판정으로 신규 디바이스로 판단되면, 어드민이 설정한 후보 에피소드 3개를 먼저 제시하고, 고른 에피소드의 비로그인 프롤로그 시작 지점으로 라우팅한다.
  • 비즈니스 룰:
    • 대상은 가입 이력 없는 신규 디바이스 & 오가닉/광고 매칭 없음 상태. 광고 분기에서 매칭 실패/비공개·삭제/성인 접근 불가로 폴백된 케이스(분기 C)도 자격이 되면 여기로 합류한다.
    • 후보 목록은 §3-2 어드민 설정값을 read하되, 유저가 접근 가능한 에피소드 기준으로 노출한다. 성인 전용 에피소드 접근 정책은 기존 adultVerifiedAt → isAdult()·ADULTS_ONLY 정책을 따른다. 후보가 3개 미만/비공개/삭제이면 §4 폴백.
    • 후보 선택 직후 홈/추천 모달을 거치지 않고 선택 에피소드의 비로그인 프롤로그 시작 지점으로 직행한다. 프롤로그는 user input 없는 무료 scene이므로 추가 재화·결제 안내 없이 렌더한다.
    • 로그인/온보딩 전 화면(OrganicSelect, preview/select, 가입 유도 bottomsheet)에서는 Home/둘러보기 CTA를 제공하지 않는다. 프롤로그 Skip은 로그인 유도가 아니라 select 화면 이동이다.

E. [공통] 프롤로그 → 첫 씬 생성 + 무료/웰컴 스타 지급

  • 주요 동작: 두 분기 모두 프롤로그 이후 첫 씬 생성 유도·무료 스타 지급은 동일한 공통 동선을 쓴다. 같은 콘텐츠 맥락 안에서 첫 씬 생성을 유도한다.
  • 비즈니스 룰:
    • 첫 씬 생성은 기존 play 플로우(/episode-play/:episodeId의 프롤로그 다음 = 첫 turn)를 재사용한다.
    • 웰컴 스타(signup_reward) 지급은 Welcomestar 화면의 CTA 스타 받고 사용하기 탭 시점에 시도한다. 첫 씬 생성 진입 자동 지급이 아니며, 지급 성공 시 WelcomestarGet에서 스타 1000개 받았어요 toast를 약 1.5초 노출한 뒤 Episodeplay로 복귀한다. 웰컴 스타 수령을 위해 본인인증 플로우를 필수로 태우지 않는다signup_reward는 본인인증이 아니라 deviceId 기준으로 지급된다(기존 구현 CreditEventAlias.SIGNUP_REWARD = CreditEventRequirement.DEVICE_ID 재사용). 본인인증이 필요한 보상은 attendance/일일 미션 계열이고 signup_reward는 아니다. 기존 본인/성인인증 provider 에러·취소가 발생해도 본 flow의 signup_reward 지급·첫 씬 생성 재개의 필수 실패 사유로 보지 않고, 기존 인증 UI 정책으로 재시도/유지 처리한다.
    • 웰컴 스타 수령 UX = “가입/온보딩 완료 → 스타 받고 사용하기 → 수령 toast → Episodeplay 복귀” 흐름으로 명확히 읽혀야 한다. 첫 씬 생성 직전의 혜택 안내와 수령 경험이 활성화의 핵심 전환점이다.
    • 웰컴 스타를 못 받는 케이스가 있다: ① 같은 deviceId로 이미 수령(이 기기에서 이미 참여했어요), ② 같은 profileId로 이미 수령(이미 참여했어요), ③ 프로모션 기간(2026-02-01 00:00 ~ 2026-12-31 23:59:59 KST) 전·종료, ④ iOS/Android 외 미지원 플랫폼, ⑤ 지급 API 실패, ⑥ device session/deviceId 확인 실패. 이 경우 신규 전용 게이트/모달을 만들지 않고, 보유 스타가 부족하면 기존 스타 부족 모달로 처리한다.
    • 지급량·중복방지(deviceId·profileId)·만료는 기존 「가입 기념 스타」(signup_reward) 기능을 그대로 재사용한다(지급량 축소 검토는 DEE-299). 별도 신규 지급은 만들지 않는다.
    • 혜택감 있는 지급 UX: 무료/웰컴 스타 지급이 "혜택을 받았다"는 느낌으로 읽혀야 한다 — 스타 드롭 애니메이션, 중앙 성공 메시지, 햅틱/APNG/모션 등은 디자인 옵션(택1·조합은 디자인/spec).
    • 기존 모달 순서 정리: 기존 「신규 유저 에피소드 추천」 모달과의 순서 충돌을 조정한다 — 실험군에서는 추천 모달 대신 경험하던/선택한 에피소드로 잇는 것이 기본 (§7).
  • 상태별 동작:
    • 복귀/진입 컨텍스트 보존 성공 → Episodeplay 마지막 프레임 복귀.
    • 복귀/진입 컨텍스트 유실 → Home/기존 추천 목적지로 안전 폴백.
    • 웰컴 스타 지급 성공 → WelcomestarGet toast 후 Episodeplay 복귀.
    • 웰컴 스타 지급 실패·수령불가(위 ①~⑥) → 신규 게이트 없이, 보유 스타 부족 시 기존 스타 부족 모달.

범위 제외: 매일 무료 스타는 본 PRD/Spec 범위가 아니다(별도 정책). 본 기능의 지급 정책/게이트로 다루지 않는다.

F. [공통/가드레일] 기존 가입 디바이스 / 기존 회원 처리

  • 주요 동작: 광고 딥링크 또는 오가닉/매칭 없음 진입이더라도 디바이스 ID가 기존 가입 이력으로 판정되면 광고 프롤로그 프리뷰와 후보 선택을 모두 띄우지 않는다.
  • 비즈니스 룰:
    • 기존 가입 디바이스는 기존 유저 가능성이 높으므로 기존 로그인/딥링크 정책으로 보낸다.
    • OAuth 전 디바이스 판정이 불확실한 케이스에서 OAuth 결과가 기존 회원이면 동일하게 기존 로그인/딥링크 정책을 따른다.
    • 프롤로그 선노출은 기존 회원의 로그인 UX를 방해·지연시키지 않아야 한다 (가드레일, §1.5).

G. [공통] 기존 유저 비주얼 선호 수집 루트

  • 주요 동작: 이미 가입한 기존 로그인 유저 중 preferred_visual_types 또는 VisualtypeSurvey 완료 이력이 없는 경우, 업데이트 이후 첫 앱 진입 시 필수 bottomsheet로 비주얼 선호를 수집한다.
  • 비즈니스 룰:
    • 기존 유저에게는 프롤로그 선노출·후보 선택 실험 동선을 태우지 않는다. 선호 수집은 기존 앱 진입 목적지 위에 VisualtypeSurvey bottomsheet를 올리는 별도 profile 보강 funnel로 둔다.
    • VisualtypeSurvey는 필수 선택 화면이다. 비주얼 타입을 1개 이상 선택하기 전까지 완료 CTA는 disabled다.
    • bottomsheet는 survey 완료 전까지 drag down, dim tap, system back 등으로 강제 dismiss할 수 없다.
    • 수집 값은 신규 온보딩의 비주얼 선호와 같은 프로필 필드(preferred_visual_types)로 저장하고, 이후 후보·추천·세그먼트 룰에서 공통 사용한다.
    • 완료 시 visualtype_survey_completed=true 완료 이력을 남기고 원래 앱 진입 목적지로 이동/복귀한다. 이미 완료 이력이 있는 유저에게는 재노출하지 않는다. 값 변경이 필요하면 별도 설정/프로필 편집 루트로 다룬다.

3-2. 어드민 (운영) — 후보 에피소드 관리

  • CRUD 범위: 운영자가 오가닉/매칭 없음 신규 디바이스용 후보 에피소드를 등록 / 수정 / 삭제 / 정렬하고, 후보별 활성·비활성을 토글한다.
  • 비즈니스 룰:
    • 기본 노출 개수 = 3개. 활성(active) 후보를 운영자가 지정한 정렬 순서대로 위에서 3개 노출한다.
    • 후보 수 정책: 운영자는 노출 슬롯보다 많은 후보를 등록해 둘 수 있다(여유 등록·교체 대비). 노출 풀은 활성 상태 후보로 한정한다.
      • 활성 후보 > 3 → 정렬 상위 3개만 노출.
      • 활성 후보 3개 미만(1~2개) → 활성 개수만큼 노출(노출 최소 1개).
      • 활성·유효 후보 0개 → 노출하지 않고 §4 폴백.
    • 등록 자격: 공개 상태의 에피소드만 후보로 등록 가능. 등록 후 비공개·삭제되면 후보 무효로 보고 노출에서 자동 제외.
    • 정렬: 노출 순서(슬롯 1~3)는 운영자 지정 정렬을 따른다.
    • 폴백 연계: 활성·유효 후보가 노출 최소 수(1개)에 못 미치면 §4 폴백이 작동한다.
  • 권한: 어드민 접근 권한을 가진 운영자. 상세 권한 레벨은 기존 어드민 권한 체계를 따른다.
  • 운영 흐름: 후보 등록 → 활성화 → 정렬 → 노출. 교체 시 기존 후보를 비활성/삭제로 빼고 새 후보를 활성화한다.
  • 미확정(§7): 노출 개수를 기본 3개로 고정할지 가변(1~N)으로 둘지, 후보 등록 상한(최대 N), 관리 주체·운영 주기.

3-4. 딥링크 / 라우팅 / URL 구조

  • 광고 분기: 광고 유입 → 콘텐츠 매칭, 가입 후 복귀는 Airbridge deep link open callback / deferred deep link payload(미설치 → 스토어 → 설치 후 저장된 딥링크 실행) 위에서 동작한다.
    • FE 확인 결과, Airbridge SDK setOnDeeplinkReceived 및 네이티브 trackDeeplink 연동으로 Airbridge 딥링크/디퍼드 딥링크로 진입한 케이스는 콜백 기준 식별 가능하다. 단 현재 앱 JS에서는 이 콜백을 기능 트리거로 사용하지 않으므로 신규 구현이 필요하다.
    • campaign, creative, episodeId 등 매칭값은 딥링크 URL query/path 또는 Airbridge tracking link payload에 포함되어야 프론트에서 파싱할 수 있다. Airbridge 대시보드 attribution 결과에만 있는 값은 프론트 트리거·매칭값으로 보장하지 않는다.
    • 본 분기 트리거는 유효한 Airbridge deep link/deferred deep link payload를 받은 경우로 제한한다. 단순 paid attribution만 있으면 가입 전 광고 프롤로그를 띄우지 않고 로그인 전 후보 제시로 폴백한다.
    • 가입 후 복귀 목적지(씬 생성 의도면 같은 에피소드의 마지막 프레임(첫 씬 생성 직전), 복원 불가 시 안전한 player 위치 폴백)는 기존 /episode-play/:episodeId(mode:new 진입)를 재사용한다. 복귀에 필요한 컨텍스트는 BE resume token 없이 FE 로컬 상태로만 보존한다(§3-1 C).
    • 가입 전 프롤로그 경험은 기존 "플레이는 로그인 필요" 정책의 예외(비로그인 read)를 요구한다 — 신규 path가 필요한지 vs /episode-play에 비로그인 프롤로그 모드를 얹을지는 비로그인 read 경로 결정에 종속(§7, 개발자 확정 게이트).
  • 오가닉/매칭 없음 분기: 로그인 전 후보 선택 → 선택 에피소드 비로그인 프롤로그 진입과 가입 후 첫 씬 생성 목적지도 기존 /episode-play/:episodeId를 재사용한다. 후보 제시 화면 진입 지점과 로그인 전 디바이스 판정 시점의 라우팅 분기는 spec/개발에서 확정한다.

3-5. Scope

포함 (In scope)

  • 광고 분기: Airbridge deep link/deferred deep link payload로 콘텐츠 매칭이 식별되는 미로그인 유저 대상, 가입 전 광고 매칭 콘텐츠 프롤로그 선경험 → 가입(기존 인증 재사용) → 가입 후 같은 에피소드 마지막 프레임(첫 씬 생성 직전, 복원 불가 시 안전한 player 위치) 복귀.
  • 오가닉/매칭 없음 분기: 가입 이력 없는 신규 디바이스 대상, 로그인 전 어드민 후보 3개 제시 → 선택 → 비로그인 프롤로그 진입 → 첫 씬 생성 직전 가입 → 가입 후 같은 에피소드 복귀. 어드민 후보 에피소드 등록/수정/정렬 + 폴백.
  • 공통: 프롤로그 이후 첫 씬 생성 유도·웰컴 스타 지급(E, Welcomestar CTA 탭 시 기존 signup_reward 지급 시도), 기존 가입 디바이스/기존 회원 가드레일(F), 기존 유저 필수 VisualtypeSurvey 수집 루트(G), 기존 신규 추천 모달과의 폴백 순서 재정의.
  • 광고 매칭 실패/비공개·삭제/성인 접근 불가 시 로그인 전 후보 제시 폴백(분기 C → B).
  • 실험군/대조군 A/B 설계와 이벤트 로깅(entry_source/ad_match_status 분해).

제외 (Out of scope)

  • 오가닉 추천 알고리즘 개편 자체 — 본 PRD는 어드민 큐레이션 후보 운영 레버만 다룬다.
  • 가입 후 앱 첫 진입 유저, 재설치/재로그인 유저, 기존 가입 유저의 프롤로그/후보 선노출 개선. 단, 기존 유저 필수 VisualtypeSurvey 비주얼 선호 수집 루트는 포함한다.
  • 첫 씬 생성 이후 구간의 비로그인 인터랙티브 플레이 — 후속 범위 후보.
  • 프롤로그 중간 선택지 분기별 진행 위치 복원 — 본 범위 복귀는 마지막 프레임(첫 씬 생성 직전) 또는 안전한 player 위치 폴백까지.
  • 매일 무료 스타 — 별도 정책. 본 기능의 지급 정책/게이트로 다루지 않는다.
  • 신규 광고 크리에이티브 제작·UA 캠페인 운영 자체.

4. 에러 처리 및 예외 상황

상황분기처리 방향
광고 attribution 없음 / 매칭 에피소드 없음A→C광고 프롤로그 미노출 → 로그인 전 후보 제시(기본 3개) 폴백
매칭 에피소드가 비공개·삭제됨A→C광고 프롤로그 미노출 → 로그인 전 후보 제시 폴백
매칭/선택 에피소드가 성인 전용(ADULTS_ONLY)이라 접근 불가A→C / D광고 프롤로그 미노출 → 접근 가능 에피소드 기준 로그인 전 후보 제시 폴백. 성인 접근 정책은 기존 adultVerifiedAt → isAdult()·ADULTS_ONLY
비로그인 프롤로그 read/loading 10초 이상 지속A/DAdProloguePreviewError/OrganicProloguePreviewError 노출. 다시 시도는 동일 episode read 재시도, 로그인은 유저가 직접 탭한 경우에만 가입 진입. 반복 실패 시 동일 error 화면 유지, 자동 Home 이동 없음
가입 후 복귀 컨텍스트 유실A/EHome/기존 추천 목적지로 안전 폴백. 임의 episode 또는 stale episode로 강제 복귀하지 않음
기존 가입 디바이스 ID / OAuth 결과 기존 회원 로그인F/G광고 프롤로그 프리뷰·후보 선택 미노출, 기존 로그인/딥링크 정책. 단 preferred_visual_types 또는 VisualtypeSurvey 완료 이력이 없으면 업데이트 이후 첫 앱 진입 시 필수 VisualtypeSurvey bottomsheet 노출
활성 후보가 3개 미만(1~2개)D활성 개수만큼 노출(노출 최소 1개). 빈 슬롯 두지 않음
활성·유효 후보 0개(미설정·전부 비활성)D노출하지 않고 폴백 콘텐츠 또는 기존 신규 추천 모달/홈
후보 에피소드 비공개·삭제됨D해당 후보 무효로 자동 제외 후 나머지 노출. 최소 수 미달 시 폴백
디바이스는 신규지만 기존 계정으로 로그인(새 디바이스)D본 동선 노출/비노출 정책은 §7에서 결정
재설치 등으로 디바이스 흔적이 사라져 신규로 오판D보유 스타·진행 이력 기준 중복 노출/중복 지급 방지. 정확한 룰 §7
웰컴 스타(signup_reward) 지급 실패·수령불가 — 동일 deviceId/profileId 이미 수령, 기간 전·종료, 미지원 플랫폼, 지급 API 실패, device session/deviceId 확인 실패E신규 게이트 만들지 않음 — 보유 스타 부족 시 기존 스타 부족 모달. 보유 스타로 충분하면 그대로 첫 씬 생성
가입 중단(온보딩 이탈)A/Bpending 상태 — 다음 진입 시 온보딩부터, 복귀 컨텍스트 보존 시도
유저가 후보를 고르지 않거나 프롤로그를 SkipD로그인/온보딩 전 Home CTA는 제공하지 않음. 프롤로그 Skip은 select 화면 이동으로 처리

5. 데이터 분석

5.1 핵심 지표

공통 코어를 entry_source(ad/organic)·ad_match_status(matched/no_match)로 분해해 본다 (실험군 vs 대조군).

  1. 신규 유저 → 첫 씬 생성 전환율 (메인, 공통): 첫 씬 생성 유저 / 신규 진입, 소스 분해.
  2. 가입 완료율 (component & 가드레일): 가입 완료 / 진입.
  3. 프롤로그 노출 → 첫 씬 생성 (component): 프롤로그 경험/노출 대비 첫 씬 생성.
  4. 광고 매칭율 (광고 분기 진단): 매칭 콘텐츠 노출 / 광고 진입.
  5. 후보 노출 → 선택률 (오가닉 분기 진단): 후보 선택 / 후보 3개 노출.
  6. 신규 유저 D1 리텐션 (보조): D1 재방문 / 신규 가입, 소스 분해.
  7. 홈 진입/이탈 (오가닉 가드레일): 후보·프롤로그 동선이 홈 도달을 깎지 않는지.

5.2 로깅 이벤트

컨벤션·기존 목록: https://event-docs.frontia.dev/ (Cloudflare Access — WARP/momo 세션). 작성 순서: 기존 재사용 우선 → 없으면 신규. 가능하면 entry_source/ad_match_status 등 소스·컨텍스트 property를 단 공통 이벤트로 두고, 소스 고유 동선(광고 가입 전 프리뷰, 오가닉 후보 제시)에만 소스 전용 이벤트를 둔다.

공통 / 재사용 (기존 + property 확장):

타입이름용도파라미터그룹상태
Event(첫 씬 생성 이벤트)가입/진입 후 첫 씬 생성 전환 측정 (메인)episode_id, entry_sourceepisode-player(추정)기존 재사용 — 정확한 이벤트명 event-docs 확인 + property 확장
Eventreceive_welcome_starWelcomestar CTA 탭 이후 웰컴 스타 수령 결과platform, (entry_source)(welcome-star)기존 재사용

광고 분기 전용 (🆕):

타입이름용도파라미터그룹상태
Eventview_ad_prologue_preview가입 전 광고 매칭 프롤로그 노출episode_id, campaign, creativeepisode-player 우선 검토🆕 신규
Eventclick_signup_from_prologue프롤로그에서 가입 CTA 클릭episode_id, entry_source, return_intent=create_sceneepisode-player 우선 검토🆕 신규
Eventskip_prologue_preview프롤로그 경험 최종 이탈(가입 없이)episode_id, entry_source, return_intentepisode-player 우선 검토🆕 신규
Eventreturn_to_episode_after_signup가입 후 의도별 복귀/선택 모달 분기episode_id, return_intent, return_destination, context_lostepisode-player 우선 검토🆕 신규

오가닉 분기 전용 (🆕):

타입이름용도파라미터그룹상태
Eventview_organic_new_candidates후보 3개 노출episode_ids, active_count, entry_source, ad_match_statusdiscovery 우선 검토🆕 신규
Eventclick_organic_candidate후보 중 하나 선택episode_id, slot, entry_sourcediscovery 우선 검토🆕 신규
Eventview_organic_first_prologue선택 에피소드 프롤로그 진입episode_id, entry_sourceepisode-player 우선 검토🆕 신규

기존 유저 비주얼 선호 보강 (🆕):

타입이름용도파라미터그룹상태
Eventview_existing_visualtype_survey기존 유저 필수 비주얼 타입 survey 노출screen_name=VisualtypeSurvey, entry_source=existing_user, survey_required=trueprofile 우선 검토🆕 신규
Eventcomplete_existing_visualtype_survey기존 유저 비주얼 타입 저장 완료preferred_visual_types, visual_type_count, visualtype_survey_completed=trueprofile 우선 검토🆕 신규
Eventblock_existing_visualtype_survey_dismissdismiss 차단 시도 측정dismiss_method, blocked=trueprofile 우선 검토🆕 신규
  • 프롤로그는 player에서 렌더되므로 신규 그룹을 만들기 전 기존 episode-player·discovery 그룹에 매칭 후보가 있는지 먼저 확인한다(코드 agent — event-docs Cloudflare Access). 동일 의미 동선은 이벤트명 분리보다 공통 이벤트 + entry_source/return_intent property로 합치는 것을 우선한다. Property 상세는 spec §7.

6. Ubiquitous Language

TermKoreanDefinitionDo Not Confuse WithPrimary Domain상태
Scene플레이 중 선택지 또는 생성 경계 사이의 프레임 묶음. "첫 씬 생성" = 신규 유저의 첫 비프롤로그 turn = 활성화 기준이벤트, 프레임Play기존
Prologue scene프롤로그user input 없는 무료 scene (credit 차감·turn 아님). 첫 경험의 대상비프롤로그 씬(첫 씬 생성)Play / Episode Authoring기존
Credit스타유저 가상 재화. user-facing은 '스타'. 첫 씬 생성부터 차감SettlementCredit(크레딧)Economy기존

본 PRD/Spec 한정 약속어(UL 미등재): Entry source = ad/organic/existing_user 유입 소스 property. 광고 매칭 콘텐츠 = 광고 크리에이티브/캠페인↔에피소드 매핑 결과. 후보 에피소드 = 오가닉/매칭 없음 신규 디바이스 유저에게 제시하는 어드민 큐레이션 에피소드(기본 3개). 비주얼 선호 = 유저가 선호하는 episode visual type/profile field(preferred_visual_types)로, 신규 온보딩과 기존 유저 VisualtypeSurvey가 같은 값을 쓴다. 복귀 컨텍스트 = 가입 전 경험하던 에피소드 식별자 + 진행 위치 + return_intent=create_scene을 담은 FE 로컬 세션. 가입 유도 시점 = 프롤로그 종료 후 첫 씬 생성(첫 credit turn) 직전.


7. Open Questions

  • [ ] 🚨 [FE/BE 결정] 비로그인 프롤로그 read 경로 (R3) — 현재 게스트/익명 세션이 없다. 가입 전 프롤로그를 (a) 비로그인 전용 공개 엔드포인트 (b) 기존 /episode-play에 비로그인 프롤로그 모드 (c) 비interactive 프리뷰 중 무엇으로 열지. 인증/세션/보안 아키텍처 영향 + 되돌림 비용 큼 — 엔지니어 + 보안 확정 게이트.
  • [ ] 🚨 [데이터/운영 미정] 광고↔콘텐츠 매핑 운영 (Airbridge) — campaign/creative/episode 매칭값을 어떤 payload 키로 넣을지, 운영이 관리할 어드민/도구가 필요한지. 매칭 커버리지가 낮으면 광고 분기 도달 모수가 작아짐 — PM + 운영 + FE + BE.
  • [ ] 🚨 [FE/BE 결정] 기존 가입 디바이스 ID 판정 기준 — 가입 이력 deviceId를 어디서/얼마나 보존할지, 재설치·기기변경·공용기기 오탐 처리. 기존 디바이스면 광고 프리뷰와 후보 선택 모두 미노출 — PM + FE/BE.
  • [ ] [디자인 결정] 가입 유도 시트 노출 위치 — 기본 가입 트리거는 첫 씬 생성 직전. 프롤로그 종료 시점에도 CTA를 둘지 — PM/디자이너.
  • [ ] [디자인 결정] 기존 플레이 튜토리얼 노출 위치 — 기존 플레이 튜토리얼을 프롤로그 씬에서 보여줄지, 첫 씬 생성 이후 기존 player 튜토리얼로 유지할지 — PM/디자이너.
  • [ ] [디자인 결정] 웰컴 스타 혜택 연출 — 스타 드롭 애니메이션 / 중앙 성공 메시지 / 햅틱·APNG·모션 중 택1·조합 — PM/디자이너.
  • [ ] [디자인 결정] 비로그인 안내 라벨 — "가입 없이 미리 보는 중" 류 컨텍스트 라벨을 프리뷰에 노출할지 여부·문구 — PM/디자이너.
  • [ ] [디자인 결정] 프롤로그 read 에러 그래픽empty vs Genfail_color 중 채택 — PM/디자이너.
  • [x] [공통] 가입 후 복귀 목적지/의도 분기 — 씬 생성 의도(return_intent=create_scene)면 같은 에피소드의 마지막 프레임(첫 씬 생성 직전)으로 복귀한다. 복귀 컨텍스트는 BE resume token 없이 FE 로컬 상태로만 보존(entry source, matched/candidate episode, candidate selection state, last frame/scene creation entry point, return_intent=create_scene, return_destination, context_lost, signup_reward 시도·결과). 프롤로그 중간 선택지 분기별 복원은 후속 범위.
  • [x] [광고] 광고 직후 진입 판별 (Airbridge deep link / click-through) — FE 확인 완료. setOnDeeplinkReceived·네이티브 trackDeeplink 연동으로 딥링크/디퍼드 딥링크 진입은 콜백 기준 식별 가능. 트리거는 paid attribution 전체가 아니라 유효 payload를 받은 경우로 제한, 나머지는 로그인 전 후보 제시 폴백. 단 현재 앱 JS에서 콜백을 트리거로 쓰지 않아 구현 필요.
  • [x] [공통] 매칭 없음/비공개·삭제/성인 접근 불가 폴백 동선 — 광고 매칭이 없거나 비공개·삭제이거나 성인 접근 불가면 광고 프롤로그 미노출, 접근 가능한 로그인 전 후보 제시(기본 3개)로 합류(분기 C → B). 후보 운영·노출 정책은 본 PRD §3-2.
  • [ ] [FE/BE 결정] 가입 후 신규 추천 모달/후보 선택과 순서 충돌 — 실험군에서 추천 모달 대신 같은 에피소드 복귀를 기본으로. 매칭 없음·비공개/삭제·컨텍스트 유실 폴백 시 후보 선택과 기존 신규 추천 모달 중 우선순위 정의 — PM + FE.
  • [x] [공통] 무료 스타 처리 — 기존 「가입 기념 스타」(signup_reward)를 재사용하고, Welcomestar CTA 스타 받고 사용하기 탭 시점에 지급을 시도한다. 별도 신규 지급 없음. 지급량 축소 검토는 DEE-299. 지급 실패·수령불가는 신규 게이트 없이 기존 스타 부족 모달.
  • [x] [공통] 웰컴 스타 인증 게이팅signup_reward(웰컴 스타)는 본인인증 불필요(deviceId 기준 지급, CreditEventRequirement.DEVICE_ID). 본인인증이 필요한 보상은 attendance/일일 미션 계열. 성인 콘텐츠 접근만 기존 adultVerifiedAt → isAdult()·ADULTS_ONLY 정책을 따르며, 접근 불가 시 후보 선택 폴백(§3-1 A·D).
  • [ ] [공통] 실험 설계 — 무작위 배정 단위(광고 클릭/설치/첫 실행, 오가닉/매칭 없음 첫 실행), 대조군 = 현행(광고: 가입-우선 / 오가닉: 모달 분기), 가드레일 = 가입 완료율·기존 회원 로그인 UX·오가닉 홈 진입. 솔루션(동일 콘텐츠 복귀 vs 무료 스타 안내, 후보 선택 vs 스타 안내) 분리/묶음 검증, 메인 목표 수치는 베이스라인 확정 후 — 데이터 + PM.
  • [x] [PM/디자인/FE 결정] 기존 유저 비주얼 선호 수집 접점preferred_visual_types 또는 VisualtypeSurvey 완료 이력이 없는 기존 로그인 유저에게 업데이트 이후 첫 앱 진입 시 필수 VisualtypeSurvey bottomsheet를 노출한다. 1개 이상 선택 전까지 완료 CTA disabled, survey 완료 전 강제 dismiss 불가. 프롤로그/후보 선노출과 분리한다.
  • [ ] [FE/BE 결정] 비주얼 선호 profile field 저장·변경 정책 — 신규 온보딩과 기존 유저 수집 루트가 같은 preferred_visual_types 배열 값을 쓰는지, 값 변경/삭제 가능 여부, 추천·세그먼트 룰 반영 타이밍 — FE + BE.

8. 통합 이력 / 유입 소스 분기 비교

본 PRD는 광고·오가닉을 하나의 기능 단위로 통합한다. 아래 비교표는 별도 프로젝트 분할이 아니라 같은 기능 안의 유입 소스 분기를 정리한 것이다. 과거 DEE-295(광고)·DEE-308(오가닉) 분리는 본 통합 PRD로 대체(superseded) 되었다.

광고 유입 분기 (A)오가닉/매칭 없음 신규 디바이스 분기 (B)
대상광고 유입 미로그인(OAuth 미통과, 콘텐츠 컨텍스트 있음)오가닉/매칭 없음 신규 디바이스(로그인 전 디바이스 가입 이력 없음)
프롤로그 시점가입 전 (선노출)가입 전 (후보 선택 후 선노출)
신규성 판정광고 payload + 디바이스 기존 가입 이력 1차 판정, OAuth 후 확정로그인 전 디바이스 가입 이력 없음 & 오가닉/광고 매칭 없음
콘텐츠 선정광고 크리에이티브 ↔ 에피소드 매핑어드민 큐레이션 후보 3개 → 유저 선택
매칭 없음 처리광고 프롤로그 미노출 → 로그인 전 후보 제시로 합류(분기 C)본류 동선
프롤로그 이후공통(E) — 첫 씬 생성·웰컴 스타(signup_reward) 지급공통(E) — 동일
최대 리스크비로그인 프롤로그 read 경로(R3, 게스트 세션 없음)로그인 전 디바이스 판정·어드민 후보 관리(R2)
진단 지표광고 매칭율, 광고 오픈 → 첫 씬(end-to-end)후보 노출 → 선택률, 홈 진입(가드레일)
  • 왜 한 기능인가: 두 분기는 같은 공통 목표(신규 유저를 첫 프롤로그 → 첫 씬 생성까지 빠르게)같은 활성화 코어(E: 프롤로그 → 첫 씬 생성 → 무료 스타) 를 공유한다. 다른 것은 진입 조건(유입 소스·신규성 신호·프롤로그 시점)뿐이라 별도 프로젝트가 아니라 분기로 두는 것이 정합적이다.
  • OAuth 제약: 로그인=가입 겸용 OAuth라 OAuth 에는 신규/기존 구분 불가. 광고 분기는 콘텐츠 컨텍스트로 가입 전 프롤로그를 정당화 가능, 오가닉 분기는 컨텍스트가 없어 로그인 전 후보 선택으로 프롤로그를 먼저 열고 첫 씬 생성 직전 가입 유도 — 그래서 프롤로그 시점이 분기마다 다르다.
  • 공유 자산: 첫 씬 생성 이벤트·웰컴 스타(signup_reward)·신규 추천 로직·/episode-play 진입점은 두 분기가 공유. 로깅은 공통 이벤트 + entry_source property를 우선하고, 소스 고유 동선만 ad_*/organic_* 전용 이벤트로 둔다(§5.2).

🔍 검토 필요 (외부 의존 — sprint-prep이 직접 못 가져옴)

큰 결정·추정은 §7 / 본문에 흡수. 여기는 다음 단계가 채워야 할 외부 의존만.

  • 데이터 agent: 소스별(광고/오가닉) 가입 완료율·가입 완료 → 첫 씬 생성 전환율·소요시간·D1 리텐션 최신값, 광고 매칭율(매칭 가능 모수), 오가닉 홈 진입률 베이스라인. → §1.5 메인/가드레일 수치 산출. 1차 확인값: 최근 완성 7일(2026-05-26~2026-06-01) 신규 3,465명 중 유료 광고 유입 2,710명 = 78.21%.
  • 코드 agent: 첫 씬 생성/turn 로깅 이벤트의 정확한 이름·그룹 + entry_source property 확장 가능 여부(§5.2), Airbridge attribution에서 캠페인/크리에이티브 식별값 read 범위 + 크리에이티브↔에피소드 매핑 도구 존재 여부, 프론트에서 딥링크 payload/open callback으로 "광고 직후 진입"을 attribution 전체와 구분 가능한지, 비로그인 프롤로그 frame read 엔드포인트 유무(§7), OAuth 결과 신규/기존 구분 시점(§3-1 F), 디바이스 신규 판정에 쓸 기존 신호(Device ID·이용 이력) 유무, 로그인 전 후보 제시 화면 진입 라우팅 분기 지점, 어드민 후보 관리 기존 운영툴 표면 유무.
  • 디자이너 / Figma: 가입 전 광고 콘텐츠 프롤로그 경험 화면·가입 CTA·가입 후 복귀, 로그인 전 후보 3개 제시 → 선택 → 프롤로그 진입, VisualtypeSurvey 기존 유저 필수 bottomsheet, 웰컴 스타 CTA/수령 toast, 프롤로그 skip/select 동선 시안.
  • ⚠️ 추정으로 진행한 것: 광고 매칭을 Airbridge attribution/디퍼드 딥링크 기반으로 가정, 첫 씬 생성 이벤트를 episode-player 그룹으로 가정, OAuth 후에야 신규/기존 구분 가능 가정, 로그인 전 디바이스 가입 이력 1차 판정이 기존 신호로 가능 가정, 오가닉 후보 슬롯 3개 가정, 라우팅 신규 path 불필요(진입 분기만 변경) 가정.

부록: 메타 정보

Required artifacts

  • [x] Spec (needs-spec) — 광고/오가닉 분기 + 공통 첫 씬 생성·스타 안내 화면별 명세 + 어드민 후보 관리 화면
  • [x] Design (needs-design) — Figma 화면 시안 (광고 유입 진입 + 로그인 전 후보 제시 플로우)
  • [x] Tracking events (needs-tracking) — 공통 이벤트 + entry_source property, 소스 전용 ad_*/organic_* 이벤트 정의
  • [ ] Migration plan — 데이터 구조 변경 없음(추정). 비로그인 read 경로·디바이스 판정·어드민 후보 저장 결정에 따라 재검토.
  • [x] QA scenarios (needs-qa-scenarios) — Sprint planning에서 작성

Size & Risks

T-shirt Size

  • Size: M (각 분기 첫 출시 MVP). 통합으로 활성화 코어(E)·/episode-play 진입점·이벤트를 공유해 분리 대비 중복 작업이 줄어든다.
  • Confidence: medium-low
  • 추정 근거: 광고 분기를 광고 링크 episodeId 직접 전달, 미로그인 프롤로그 preview/read, 가입 후 같은 에피소드 마지막 프레임(복원 불가 시 안전한 player 위치 폴백) 복귀로 제한하면 M에 가깝다(비로그인 프롤로그 read가 인증/세션 아키텍처를 건드리는 R3 게이트가 남음). 복귀 컨텍스트는 BE resume token 없이 FE 로컬 상태로만 처리해 BE 작업을 줄인다. 오가닉/매칭 없음 분기는 프롤로그 이후 동선을 공통(E)으로 재사용해 작지만, 로그인 전 디바이스 가입 이력 판정·어드민 후보 관리가 신규 작업으로 추가된다. 웰컴 스타는 기존 signup_rewardWelcomestar CTA 탭 시점에 재사용한다. 기존 유저 VisualtypeSurvey는 profile 보강 funnel로 분리하되 필수 bottomsheet/dismiss 차단 정책을 가진다.

의존성

  • 다른 작업: 「가입 기념 스타」·「신규 유저 에피소드 추천」 동선과 충돌 조정.
  • 다른 팀: 운영(광고↔콘텐츠 매핑, 오가닉 어드민 후보 큐레이션), 데이터(실험 설계·베이스라인), UA(광고 크리에이티브 ↔ 콘텐츠 합의), BE(비로그인 read·디바이스 판정·어드민 저장).
  • 외부 요인: Airbridge attribution/디퍼드 딥링크(광고 분기).

References

  • 선행 PRD: 「가입 기념 스타 3,000개 지급」(2026-02), 「신규 유저 에피소드 추천 기능」(2026-02), 「프롤로그와 전체 이벤트 공간 분리」(2026-03).
  • 위키: wiki/client/authentication-session.md(게스트 없음·pending/active·OAuth 로그인=가입 겸용), wiki/client/navigation-routing-deeplinks.md(Airbridge), wiki/domains/play/capabilities.md(프롤로그=무료 scene).
  • Linear: DEE-295 (통합 메인 이슈), 프로젝트. 과거 오가닉 분리 이슈(DEE-308)는 본 통합 PRD로 대체됨.
prd-review 보기

PRD Review — 신규 유저 첫 프롤로그/첫 씬 생성 전환 개선

최신 결정

광고 유입/오가닉 신규 유입은 별도 프로젝트가 아니라 하나의 신규 유저 활성화 기능으로 통합한다. 기존 광고 전용 PRD와 오가닉 전용 PRD의 분리안은 superseded 되었고, draft/new-user-prologue-funnel/PRD.md가 canonical이다.

반영 확인

  • [x] PRD 제목/메타를 통합 기능명으로 변경
  • [x] §1 목표/배경을 공통 문제 + 유입 소스 분기 구조로 재작성
  • [x] 광고 유입 미로그인, 오가닉 신규 가입, 광고 매칭 없음/무효 폴백을 하나의 요구사항 안에서 정리
  • [x] 지표를 공통 전환 지표 + source/context property breakdown으로 정리
  • [x] 과거 DEE-308 분리안은 흡수 이력으로만 표기

남은 PM/기술 결정

  • 비로그인 프롤로그 read 경로와 보안/세션 정책
  • Airbridge payload의 episode 매칭 키와 운영 주체
  • 오가닉 후보 운영 방식(어드민 후보 3개, 후보 부족/무효 처리)
  • 웰컴 스타 안내가 기존 지급 재노출인지 신규 지급인지