From a9de4ecc3ccefce86846f3f61c7ef4267081dac5 Mon Sep 17 00:00:00 2001 From: Haewon Kam Date: Wed, 15 Apr 2026 14:15:27 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20O2O=20Clinic=20=EA=B0=80=EC=83=81=20?= =?UTF-8?q?=EB=8D=B0=EB=AA=A8=20=EB=A6=AC=ED=8F=AC=ED=8A=B8=C2=B7=ED=94=8C?= =?UTF-8?q?=EB=9E=9C=20=EC=B6=94=EA=B0=80=20(=EA=B4=91=EA=B3=A0=20?= =?UTF-8?q?=EC=86=8C=EC=9E=AC=EC=9A=A9)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 블러 처리 없이 외부 노출 가능한 가상 클리닉 데모 자산. 6개 실제 병원 분석 패턴의 베스트 프랙티스를 종합·재구성. 설정: - 이름: O2O Clinic / 원장 오투오 / 개원 2017년 (9년차) - 시술: 눈·코·윤곽 전문 - 컬러: Indigo Deep (#1E1B4B) + Cyan (#06B6D4) - 포지셔닝: 균형 잡힌 운영 (Score 78) + 글로벌 확장 강점 라우팅: - /report/o2o → mockReportO2O (overallScore 78) - /plan/o2o → mockPlanO2O (8 채널전략·4 pillar·4주 캘린더) Co-Authored-By: Claude Opus 4.6 --- src/data/mockPlan_o2o.ts | 507 ++++++++++++++++++++++++++++++++++ src/data/mockReport_o2o.ts | 392 ++++++++++++++++++++++++++ src/hooks/useMarketingPlan.ts | 2 + src/hooks/useReport.ts | 3 + 4 files changed, 904 insertions(+) create mode 100644 src/data/mockPlan_o2o.ts create mode 100644 src/data/mockReport_o2o.ts diff --git a/src/data/mockPlan_o2o.ts b/src/data/mockPlan_o2o.ts new file mode 100644 index 0000000..0d364d7 --- /dev/null +++ b/src/data/mockPlan_o2o.ts @@ -0,0 +1,507 @@ +import type { MarketingPlan } from '../types/plan'; + +/** + * O2O Clinic — 가상 데모 마케팅 플랜 (외부 노출 가능) + * + * 의료광고법·개인정보 우려 없이 자유롭게 광고/마케팅 자료로 사용 가능한 + * INFINITH 솔루션 데모 자산. 6개 실제 병원 분석 패턴의 베스트 프랙티스를 + * 종합·재구성. + */ +export const mockPlanO2O: MarketingPlan = { + id: 'o2o', + reportId: 'o2o', + clinicName: 'O2O Clinic', + clinicNameEn: 'O2O Plastic Surgery Clinic', + createdAt: '2026-04-14', + targetUrl: 'https://www.o2oclinic.com', + + // ─── Section 1: Brand Guide ─── + brandGuide: { + colors: [ + { name: 'Indigo Deep', hex: '#1E1B4B', usage: '주요 헤더·CTA 버튼 — 신뢰·전문성·기술적 정확성 상징' }, + { name: 'Cyan', hex: '#06B6D4', usage: '강조색 — 혁신·연결·글로벌 환영의 시그널' }, + { name: 'Slate Light', hex: '#F8FAFC', usage: '섹션 배경 — 대비되는 깨끗한 여백' }, + { name: 'Slate 900', hex: '#0F172A', usage: '본문 텍스트·고대비 강조' }, + { name: 'Slate 500', hex: '#64748B', usage: '서브 텍스트·메타 정보' }, + ], + fonts: [ + { family: 'Pretendard', weight: 'Bold 700', usage: '헤딩·섹션 타이틀', sampleText: 'O2O Clinic — 9년의 임상, 2,547개의 진심' }, + { family: 'Pretendard', weight: 'Regular 400', usage: '본문 텍스트', sampleText: 'O2O Clinic은 눈·코·윤곽 전문 클리닉입니다' }, + { family: 'Playfair Display', weight: 'Bold 700', usage: '영문 헤딩·O2O 워드마크', sampleText: 'O2O Clinic — Eye, Nose, Contouring' }, + ], + logoRules: [ + { rule: 'Indigo + Cyan 그라디언트 워드마크 통일', description: 'O2O 워드마크는 Indigo Deep → Cyan 그라디언트를 모든 채널에서 동일 적용', correct: true }, + { rule: '원형 로고: 화이트 배경 + Indigo 심볼', description: '프로필 사진용 1080×1080 원형 — 화이트 배경 + Indigo "O2O" 심볼', correct: true }, + { rule: '글로벌 채널: 영문 로고 단독', description: '@o2o_clinic_global, Facebook Global 등 영문 채널은 한글 병기 제외', correct: true }, + { rule: '여백 규칙', description: '로고 크기의 30% 이상 여백 확보 — 가독성 + 브랜드 권위', correct: true }, + { rule: '단색 사용 시', description: '단색 적용 시 Indigo Deep (#1E1B4B) 단독, 흰 배경에서만 사용', correct: true }, + ], + toneOfVoice: { + personality: ['전문적', '신뢰감 있는', '글로벌', '따뜻한', '명확한'], + communicationStyle: '9년의 임상과 2,547개의 검증된 후기를 근거로 하되, 교육적이고 환자 친화적인 어조로 전달합니다. 시술 결과보다 의사결정 과정의 투명성을 강조.', + doExamples: [ + '"눈성형은 결과보다 디자인이 결정합니다 — 오투오 원장의 5원칙"', + '"9년의 임상, 2,547개의 진심 — O2O Clinic"', + '"한·영·중·일 상담 가능 — Global Patients Welcome"', + '"강남언니 9.5점이 증명하는 디테일"', + ], + dontExamples: [ + '"강남 No.1!" — 비교 광고 표현', + '"100% 만족 보장" — 의료광고법 위반 가능성', + '"오늘까지 50% 할인" — 가격 경쟁 톤 지양', + '"인생이 바뀝니다" — 과장 표현 금지', + ], + }, + channelBranding: [ + { channel: 'YouTube', icon: 'youtube', profilePhoto: 'O2O Indigo+Cyan 원형 로고 1080×1080', bannerSpec: '2560×1440px, Indigo Deep 배경 + Cyan 악센트, "Eye · Nose · Contouring · Since 2017"', bioTemplate: 'O2O Clinic — 눈·코·윤곽 전문\n오투오 원장 · 강남역 | 02-2020-2020\no2oclinic.com', currentStatus: 'correct' }, + { channel: 'Instagram KR', icon: 'instagram', profilePhoto: 'O2O Indigo+Cyan 원형 로고', bannerSpec: 'N/A (하이라이트: 눈성형/코성형/윤곽/리뷰/글로벌 — Indigo+Cyan 톤)', bioTemplate: 'O2O Clinic 공식 · 눈·코·윤곽 전문\n강남역 | 02-2020-2020 · o2oclinic.com', currentStatus: 'correct' }, + { channel: 'Instagram Global', icon: 'instagram', profilePhoto: 'O2O 영문 로고', bannerSpec: 'N/A (Highlights: Eye/Nose/Contouring/Reviews/Booking)', bioTemplate: 'O2O Clinic Global · Eye · Nose · Facial Contouring\nGangnam Seoul · DM for English/Chinese/Japanese consultation', currentStatus: 'correct' }, + { channel: 'Facebook Global', icon: 'facebook', profilePhoto: 'O2O 영문 로고', bannerSpec: '820×312px, Indigo+Cyan 배경 + "Eye · Nose · Contouring · Multilingual"', bioTemplate: 'O2O Clinic — 9 Years of Excellence in Eye, Nose, Facial Contouring\nGangnam Seoul · WhatsApp + DM Welcome', currentStatus: 'correct' }, + { channel: 'Naver Blog', icon: 'globe', profilePhoto: 'O2O 로고', bannerSpec: '블로그 상단: 워드마크 + 시술 카테고리 메뉴 (눈/코/윤곽)', bioTemplate: 'O2O Clinic 공식 블로그 — 눈·코·윤곽 전문\n오투오 원장 · 강남역 · 9년 임상', currentStatus: 'correct' }, + { channel: 'TikTok', icon: 'video', profilePhoto: 'O2O Indigo+Cyan 원형 로고', bannerSpec: 'N/A', bioTemplate: 'O2O Clinic · 눈·코·윤곽 · 강남역\nReal Cases | DM 상담', currentStatus: 'incorrect' }, + ], + brandInconsistencies: [ + { + field: '브랜드 컬러 적용', + values: [ + { channel: 'YouTube', value: 'Indigo+Cyan 그라디언트 적용 완료', isCorrect: true }, + { channel: 'Instagram KR', value: 'Indigo+Cyan 적용 완료', isCorrect: true }, + { channel: 'Instagram Global', value: 'Indigo+Cyan 적용 완료', isCorrect: true }, + { channel: 'TikTok', value: '단색 화이트 — 브랜드 컬러 미적용', isCorrect: false }, + ], + impact: '6개 채널 중 5개에서 브랜드 컬러 일관성 우수. TikTok만 제외 — 즉시 수정 시 전 채널 통일성 100%', + recommendation: 'TikTok 프로필 사진을 Indigo+Cyan 원형 로고로 교체 + 채널 아트 통일', + }, + { + field: 'CTA 메시지 통일', + values: [ + { channel: 'YouTube', value: '"카카오톡 상담 + 홈페이지"', isCorrect: true }, + { channel: 'Instagram KR', value: '"DM 상담 + 카카오톡"', isCorrect: true }, + { channel: 'Facebook Global', value: '"WhatsApp + DM"', isCorrect: true }, + { channel: 'Naver Blog', value: '"전화 + 카카오톡"', isCorrect: false }, + ], + impact: 'KR 채널 CTA가 카카오톡 위주로 정착되어 있으나 블로그만 전화 위주 — 모바일 환자 전환 손실 가능', + recommendation: '네이버 블로그 포스트 상단 + 하단 CTA를 "카카오톡 상담 → 전화 백업" 순으로 통일', + }, + ], + }, + + // ─── Section 2: Channel Strategies ─── + channelStrategies: [ + { + channelId: 'youtube', channelName: 'YouTube', icon: 'youtube', + currentStatus: '@o2oclinic — 5,840 구독자, 280 영상, 주 2회 안정 업로드', + targetGoal: '20K 구독자 / 12개월, 다국어 자막 50개 추가', + contentTypes: ['오투오 원장 Q&A 롱폼', 'Shorts (기존 영상 클립)', '국제 환자 브이로그 (다국어 자막)'], + postingFrequency: '주 2회 (Long 1 + Shorts 1)', + tone: '교육적 전문가 — 오투오 원장 직접 설명', + formatGuidelines: [ + '롱폼: 6~12분, 시술별 시리즈 (눈/코/윤곽)', + 'Shorts: 30~60초, 후크 3초 내 + 다국어 자막', + '썸네일: Indigo+Cyan 워터마크 통일', + '국제 환자 브이로그: EN/ZH/JP 자막 필수', + ], + priority: 'P0', + customerJourneyStage: 'consideration', + }, + { + channelId: 'instagram_kr', channelName: 'Instagram KR', icon: 'instagram', + currentStatus: '@o2o_clinic — 8,210 팔로워, 1,850 게시물, Reels 142개', + targetGoal: '25K 팔로워 / 12개월, Reels 주 5개', + contentTypes: ['Reels (YouTube Shorts 동시 배포)', 'Carousel (강남언니 2,547 리뷰 스토리화)', 'Stories (병원 일상 + Q&A)', '인플루언서 협업 카루셀'], + postingFrequency: '일 1회 + Stories 일 2-3개', + tone: '전문성 + 친근함 — 시술 디테일을 쉽게 풀어내는 톤', + formatGuidelines: [ + 'Reels: YouTube Shorts와 동시 게시 (자산 재활용 우선)', + 'Carousel: 강남언니 리뷰 50개 선별 → 카루셀 시리즈', + 'Stories: 눈/코/윤곽 카테고리별 하이라이트 재구성', + '해시태그: #O2OClinic #강남눈성형 #강남코성형 #윤곽수술 #오투오원장', + ], + priority: 'P0', + customerJourneyStage: 'interest', + }, + { + channelId: 'instagram_global', channelName: 'Instagram Global', icon: 'instagram', + currentStatus: '@o2o_clinic_global — 6,320 팔로워, 480 게시물, 다국어 Reels', + targetGoal: '18K 팔로워 / 12개월, 의료관광 환자 직접 상담 50건/월', + contentTypes: ['English/Chinese/Japanese subtitled Reels', 'Patient journey Carousel', 'Multilingual FAQ Story'], + postingFrequency: '일 1회 (3개 언어 로테이션)', + tone: 'Professional & welcoming — Korea medical tourism storytelling', + formatGuidelines: [ + 'KR 콘텐츠 → EN/ZH/JP 번역 자동 배포 파이프라인', + 'WhatsApp 상담 CTA를 바이오 + 매 게시물에 삽입', + 'Highlights: Eye / Nose / Contouring / Reviews / Booking 5개', + '해시태그: #KoreanPlasticSurgery #GangnamClinic #O2OClinic', + ], + priority: 'P0', + customerJourneyStage: 'conversion', + }, + { + channelId: 'facebook_global', channelName: 'Facebook Global', icon: 'facebook', + currentStatus: 'O2O Clinic Global — 3,025 팔로워, WhatsApp 연동, Pixel 설치 완료', + targetGoal: '12K 팔로워 + 리타겟팅 ROAS 4x / 6개월', + contentTypes: ['리타겟팅 광고 소재', 'Patient journey 영문 콘텐츠', 'Before/After (consent verified)'], + postingFrequency: '주 2-3회 + 광고 캠페인 상시', + tone: 'Authoritative & warm — 권위와 친근함의 균형', + formatGuidelines: [ + '리타겟팅: o2oclinic.com 방문자 픽셀 데이터 활용 (P0)', + '광고 소재 4종 (눈/코/윤곽/Multi) — A/B 테스트 운영', + 'WhatsApp CTA 우선 + Messenger 백업', + '월 KPI: ROAS 2.5x → 4.0x 단계 상향', + ], + priority: 'P0', + customerJourneyStage: 'conversion', + }, + { + channelId: 'naver_blog', channelName: 'Naver Blog', icon: 'globe', + currentStatus: 'blog.naver.com/o2oclinic — 주 2회 SEO 포스팅, 키워드 상위 30+', + targetGoal: '주 2회 유지 + 월 30,000 방문자 (12개월)', + contentTypes: ['SEO 시술 가이드', '환자 후기 (강남언니 리뷰 가공)', 'YouTube 영상 임베드 + 텍스트 가이드'], + postingFrequency: '주 2회', + tone: '정보성 전문가 — "강남 눈성형", "코성형 가격", "윤곽수술 후기" 키워드 중심', + formatGuidelines: [ + '2,000자 이상 SEO 최적화 + 이미지 10장 + YouTube 임베드', + 'CTA: 카카오톡 상담 우선 → 전화 백업으로 통일 (현재 불일치 수정)', + '키워드 맵: "강남 눈성형", "강남 코성형", "윤곽수술 가격", "오투오 원장"', + '월 1회 키워드 성과 분석 + 다음 달 주제 결정', + ], + priority: 'P1', + customerJourneyStage: 'consideration', + }, + { + channelId: 'gangnamunni', channelName: '강남언니', icon: 'star', + currentStatus: '9.5점 / 2,547 리뷰 — 응답률 88%, 강남 상위 10%', + targetGoal: '응답률 95%, 12개월 내 3,800 리뷰', + contentTypes: ['리뷰 응답 (일 단위)', '시술 정보 업데이트', '리뷰 SNS 콘텐츠화'], + postingFrequency: '리뷰 응답: 일 단위 / 정보 업데이트: 월 2회', + tone: '진심 어린 의료진 답변 — 형식적 답변 지양', + formatGuidelines: [ + '리뷰 응답률 88% → 95% (3개월) 단계 상향', + '2,547 리뷰 중 100개 선별 → SNS 카드뉴스 자산화', + '부정 리뷰 24시간 내 응답 원칙', + '강남언니 프로필에 다국어 시술 설명 추가', + ], + priority: 'P0', + customerJourneyStage: 'loyalty', + }, + { + channelId: 'tiktok', channelName: 'TikTok', icon: 'video', + currentStatus: '@o2oclinic — 3,400 팔로워, Pixel 미설치', + targetGoal: '12K 팔로워 + Pixel 설치 + 광고 ROAS 3x / 6개월', + contentTypes: ['YouTube Shorts 크로스포스팅', '트렌드 챌린지', '병원 비하인드'], + postingFrequency: '주 5회 (YouTube Shorts 동시 배포)', + tone: '가볍고 접근 가능한 — 20-30대 첫 수술 고민층 타겟', + formatGuidelines: [ + 'TikTok Pixel 즉시 설치 (P0) — 광고 ROAS 측정 가능화', + '280 YouTube 영상 → Shorts 추출 → TikTok 동시 배포', + '트렌딩 사운드 활용 + 자막 필수', + '의료광고법 준수 — 과장 표현 금지', + ], + priority: 'P1', + customerJourneyStage: 'awareness', + }, + { + channelId: 'kakaotalk', channelName: 'KakaoTalk', icon: 'messageSquare', + currentStatus: '카카오 채널 친구 4,200+, 자동응답 운영', + targetGoal: '친구 10,000+ + 상담 전환율 35%', + contentTypes: ['시술별 자동응답 시나리오', '예약 리마인더', '월 1회 시술 정보 발송'], + postingFrequency: '주 1-2회 메시지 발송', + tone: '따뜻하고 전문적인 1:1 상담 톤', + formatGuidelines: [ + '자동응답 시나리오 — 눈/코/윤곽 시술별 분기', + '예약 리마인더 자동 발송', + '한국어 + 영문/중문 옵션 (의료관광 대비)', + ], + priority: 'P1', + customerJourneyStage: 'conversion', + }, + ], + + // ─── Section 3: Content Strategy ─── + contentStrategy: { + pillars: [ + { + title: '9년 임상의 디테일', + description: '2017년 개원 이래 9년간 축적한 눈·코·윤곽 임상 데이터와 수술 철학을 보여주는 콘텐츠', + relatedUSP: '9 Years of Specialized Expertise', + exampleTopics: ['오투오 원장의 자연스러운 눈성형 5원칙', '코성형 디자인의 3가지 핵심 변수', '윤곽수술이 인상에 미치는 변화', '9년간 변하지 않은 O2O의 원칙 3가지'], + color: '#1E1B4B', + }, + { + title: '글로벌 환자 여정', + description: '영문/중문/일문 콘텐츠로 의료관광 환자의 내원 전후 여정을 다큐멘터리화 — 정보 + 신뢰', + relatedUSP: 'Multilingual Medical Tourism Care', + exampleTopics: ['From Bangkok to Seoul — Eye Surgery Journey', '中国患者ソウル鼻整形体験記', '강남에서 회복하기 — 외국인 환자 가이드', 'O2O 외국인 환자 케어 시스템 공개'], + color: '#06B6D4', + }, + { + title: '2,547 리뷰의 진심', + description: '강남언니 9.5점 / 2,547 실사용 후기를 콘텐츠 자산으로 전환 — 신뢰 증거 극대화', + relatedUSP: 'Patient-Validated 9.5 Stars', + exampleTopics: ['"눈성형 후 진짜 자연스럽다" — 강남언니 베스트 리뷰 5', '2,547개 리뷰 공통 키워드 분석', '리뷰 만족도 Top 3 시술 — 데이터로 보는 O2O', '리뷰 작성 후기자 인터뷰'], + color: '#0F172A', + }, + { + title: '인플루언서 컬래버 시리즈', + description: '뷰티/메디컬 크리에이터 협업 콘텐츠로 신규 환자 도달 — 분기별 5~8명 정기 협업', + relatedUSP: 'Trusted by Beauty Creators', + exampleTopics: ['뷰티 크리에이터 A의 O2O 코성형 후기', '메디컬 크리에이터 B의 윤곽수술 다큐멘터리', '크리에이터 라이브 Q&A', '협업 콘텐츠 비하인드'], + color: '#64748B', + }, + ], + typeMatrix: [ + { format: 'YouTube Long-form', channels: ['YouTube'], frequency: '주 1회', purpose: '오투오 원장 권위 + 9년 임상 증명' }, + { format: 'Shorts / Reels', channels: ['YouTube', 'Instagram KR', 'Instagram Global', 'TikTok'], frequency: '주 5개', purpose: '280 영상 자산 재활용, 다채널 도달 확대' }, + { format: 'Carousel (리뷰 스토리)', channels: ['Instagram KR'], frequency: '주 2회', purpose: '2,547 리뷰 → 사회적 증거화' }, + { format: 'Multilingual Subtitled Reels', channels: ['Instagram Global'], frequency: '일 1회', purpose: '글로벌 환자 도달 + WhatsApp 전환' }, + { format: 'Blog Post (SEO)', channels: ['Naver Blog'], frequency: '주 2회', purpose: '강남 눈/코/윤곽 검색 상위 노출' }, + { format: 'Influencer Collab Carousel', channels: ['Instagram KR'], frequency: '월 2회', purpose: '신규 팔로워 유입 + 권위 강화' }, + { format: 'Retargeting Ad Creative', channels: ['Facebook Global', 'Instagram Global'], frequency: '월 4-6개', purpose: '글로벌 의료관광 ROAS 향상' }, + ], + workflow: [ + { step: 1, name: '주제 발굴', description: '시술별 검색 키워드 + 콘텐츠 필러 매칭 + 인플루언서 협업 브리핑', owner: '마케팅 매니저', duration: '2일' }, + { step: 2, name: '제작 / 추출', description: 'AI 초안 + 280 영상 아카이브에서 Shorts 추출 + 인플루언서 컬래버 촬영', owner: 'AI + 콘텐츠팀', duration: '3-5일' }, + { step: 3, name: '의료 검수', description: '오투오 원장 + 의료진 검토 (의료광고법 포함)', owner: '의료진', duration: '1일' }, + { step: 4, name: '다국어 번역', description: 'EN/ZH/JP 자막·캡션 (Global 계정 동시 배포용)', owner: '번역팀', duration: '1-2일' }, + { step: 5, name: '비주얼 마감', description: 'Indigo+Cyan 워터마크 통일 + 채널별 포맷 최적화', owner: '디자인팀', duration: '1일' }, + { step: 6, name: '배포 & 추적', description: '전 채널 동시 배포 + UTM/픽셀 추적 + 강남언니 상담 연계', owner: '마케팅 매니저', duration: '당일' }, + ], + repurposingSource: '1개 오투오 원장 롱폼 영상 (10분) 또는 인플루언서 협업 콘텐츠 1편', + repurposingOutputs: [ + { format: 'YouTube Long-form', channel: 'YouTube', description: '원본 풀 영상 (KR 기본 + EN/ZH/JP 자막)' }, + { format: 'Shorts 5개', channel: 'YouTube / TikTok', description: '핵심 구간 30-60초 추출 → 동시 배포' }, + { format: 'Reels 5개', channel: 'Instagram KR + Global', description: 'Shorts → KR 원본 + 다국어 자막 버전 동시 배포' }, + { format: 'Carousel 2개', channel: 'Instagram KR', description: '시술 가이드 카드뉴스로 재구성' }, + { format: 'Blog Post 1개', channel: 'Naver Blog', description: '영상 스크립트 → 2,000자 SEO 포스트 (영상 임베드)' }, + { format: 'Stories 5개', channel: 'Instagram KR + Global', description: '촬영 비하인드 + Q&A 스니펫' }, + { format: 'Ad Creative 2개', channel: 'Facebook Global', description: '글로벌 리타겟팅용 영문/중문 광고 소재' }, + ], + }, + + // ─── Section 4: Content Calendar ─── + calendar: { + weeks: [ + { + weekNumber: 1, label: 'Week 1: 9년 임상 — 눈성형 집중', + entries: [ + { dayOfWeek: 0, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: '롱폼: 오투오 원장의 자연스러운 눈성형 5원칙' }, + { dayOfWeek: 1, channel: 'Instagram KR', channelIcon: 'instagram', contentType: 'social', title: 'Reel: 눈성형 Before/After 30대 케이스' }, + { dayOfWeek: 2, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: 'Shorts: 쌍수 vs 눈매교정 60초 비교' }, + { dayOfWeek: 2, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: '강남 눈성형 추천 기준 — 9년 임상이 알려줍니다' }, + { dayOfWeek: 3, channel: 'Instagram Global', channelIcon: 'instagram', contentType: 'social', title: 'Reels (EN/ZH): Eye Surgery Recovery Timeline' }, + { dayOfWeek: 4, channel: 'Instagram KR', channelIcon: 'instagram', contentType: 'social', title: 'Carousel: 강남언니 베스트 리뷰 5선 — 눈성형' }, + { dayOfWeek: 5, channel: 'Facebook', channelIcon: 'facebook', contentType: 'ad', title: '광고(EN): Global 리타겟팅 — Eye Surgery 캠페인 런칭' }, + ], + }, + { + weekNumber: 2, label: 'Week 2: 코성형 + 인플루언서 컬래버 1차', + entries: [ + { dayOfWeek: 0, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: '롱폼: 코성형 디자인의 3가지 핵심 변수' }, + { dayOfWeek: 1, channel: 'Instagram KR', channelIcon: 'instagram', contentType: 'social', title: '인플루언서 컬래버 1편: 뷰티 크리에이터 A의 O2O 코성형' }, + { dayOfWeek: 2, channel: 'Instagram Global', channelIcon: 'instagram', contentType: 'social', title: 'Reels (JP): 鼻整形のリカバリータイムライン' }, + { dayOfWeek: 2, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: 'Shorts: 코성형 붓기 30일 타임랩스' }, + { dayOfWeek: 3, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: '코성형 가격 vs 가치 — 9년 임상 기준 가이드' }, + { dayOfWeek: 4, channel: 'Instagram KR', channelIcon: 'instagram', contentType: 'social', title: 'Reel: 코성형 디자인 시뮬레이션 비하인드' }, + { dayOfWeek: 5, channel: 'Facebook', channelIcon: 'facebook', contentType: 'ad', title: '광고(EN/ZH): Nose Surgery 패키지 광고' }, + ], + }, + { + weekNumber: 3, label: 'Week 3: 윤곽수술 + 글로벌 환자 여정', + entries: [ + { dayOfWeek: 0, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: '롱폼: 윤곽수술이 인상에 미치는 변화 — Real Cases' }, + { dayOfWeek: 1, channel: 'Instagram Global', channelIcon: 'instagram', contentType: 'social', title: 'Carousel (EN): From Bangkok to Seoul — Patient Journey' }, + { dayOfWeek: 2, channel: 'Instagram KR', channelIcon: 'instagram', contentType: 'social', title: 'Reel: V라인 윤곽수술 회복 일기 (동의 케이스)' }, + { dayOfWeek: 3, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: 'Shorts: 윤곽수술 Q&A — 가장 많이 묻는 질문 5' }, + { dayOfWeek: 3, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: '윤곽수술 후기 가이드 — 강남언니 2,547 리뷰가 알려준 것' }, + { dayOfWeek: 4, channel: 'Instagram Global', channelIcon: 'instagram', contentType: 'social', title: 'Story (JP): O2O予約フロー — 日本語ご相談' }, + { dayOfWeek: 5, channel: 'Facebook', channelIcon: 'facebook', contentType: 'ad', title: '광고(JP): Facial Contouring Japan 타겟팅' }, + ], + }, + { + weekNumber: 4, label: 'Week 4: 리뷰 자산 + 인플루언서 2차 + 월간 정리', + entries: [ + { dayOfWeek: 0, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: '롱폼: 9년간 변하지 않은 O2O의 원칙 3가지 — 오투오 원장 인터뷰' }, + { dayOfWeek: 1, channel: 'Instagram KR', channelIcon: 'instagram', contentType: 'social', title: 'Carousel: 2,547 리뷰 공통 키워드 분석 — 자연스럽다 / 디테일 / 친절' }, + { dayOfWeek: 2, channel: 'Instagram KR', channelIcon: 'instagram', contentType: 'social', title: '인플루언서 컬래버 2편: 메디컬 크리에이터 B의 윤곽수술 다큐' }, + { dayOfWeek: 3, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: 'Shorts: 강남언니 9.5점 달성 감사 — 30초 메시지' }, + { dayOfWeek: 3, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: '월간 리뷰 — 4월 O2O Clinic 콘텐츠 베스트 7선' }, + { dayOfWeek: 4, channel: 'Instagram KR', channelIcon: 'instagram', contentType: 'social', title: 'Reel: 다음 달 예고 — 5월 O2O 콘텐츠 시리즈 오픈' }, + { dayOfWeek: 5, channel: 'Facebook', channelIcon: 'facebook', contentType: 'ad', title: '광고(Multi): 월말 글로벌 상담 CTA 캠페인' }, + ], + }, + ], + monthlySummary: [ + { type: 'video', label: '영상 (롱폼+Shorts)', count: 12, color: '#1E1B4B' }, + { type: 'blog', label: '블로그', count: 4, color: '#06B6D4' }, + { type: 'social', label: 'Instagram KR/Global', count: 12, color: '#0F172A' }, + { type: 'ad', label: '광고 (Facebook Global)', count: 4, color: '#64748B' }, + ], + }, + + // ─── Section 5: Asset Collection ─── + assetCollection: { + assets: [ + { id: 'o2o-a1', source: 'youtube', sourceLabel: 'YouTube', type: 'video', title: 'YouTube 영상 280개 아카이브 (@o2oclinic)', description: '9년간 누적 280개 영상 — Shorts 추출 + 다국어 자막 추가 우선 자산', repurposingSuggestions: ['Shorts 100개 추출 (P0)', 'EN/ZH/JP 자막 50개 추가', 'Instagram Reels 변환', 'Blog 임베드'], status: 'collected' }, + { id: 'o2o-a2', source: 'social', sourceLabel: '강남언니', type: 'text', title: '강남언니 환자 리뷰 2,547건 (9.5점)', description: '2,547개 검증된 후기 — 시술별 분류 후 SNS 콘텐츠 자산화', repurposingSuggestions: ['리뷰 100개 → Carousel 시리즈', 'Story 카드 자동 발행 시스템', '광고 소셜프루프', 'Blog 환자 스토리'], status: 'pending' }, + { id: 'o2o-a3', source: 'social', sourceLabel: 'Instagram KR', type: 'photo', title: 'Instagram @o2o_clinic 게시물 1,850개', description: 'KR 메인 계정 누적 1,850 게시물 — 고성과 콘텐츠 → 다국어 변환 원본', repurposingSuggestions: ['고성과 게시물 → Reel 변환', 'Global 계정 다국어 배포', '광고 소재 추출'], status: 'collected' }, + { id: 'o2o-a4', source: 'social', sourceLabel: 'Instagram Global', type: 'photo', title: 'Instagram @o2o_clinic_global 다국어 콘텐츠', description: '480개 다국어 콘텐츠 — Facebook 광고 소재 + LINE/WeChat 콘텐츠 재활용', repurposingSuggestions: ['Facebook 글로벌 광고 소재', 'LINE/WeChat 콘텐츠 재활용', 'YouTube 다국어 시리즈 소스'], status: 'collected' }, + { id: 'o2o-a5', source: 'homepage', sourceLabel: '홈페이지', type: 'photo', title: 'O2O Clinic 시설·의료진 사진', description: 'o2oclinic.com 시설 사진 + 오투오 원장 외 의료진 8명 프로필', repurposingSuggestions: ['Instagram 시설 투어 Reel', 'YouTube B-roll', '블로그 위치 안내', '광고 배경'], status: 'collected' }, + { id: 'o2o-a6', source: 'homepage', sourceLabel: '홈페이지', type: 'text', title: '시술 카테고리 3종 설명 (눈·코·윤곽)', description: 'o2oclinic.com 시술별 상세 설명 — 블로그 SEO + 다국어 카드뉴스 소스', repurposingSuggestions: ['블로그 SEO 포스트 소스', '다국어 카드뉴스 텍스트', 'WhatsApp 자동응답 FAQ 소스'], status: 'collected' }, + { id: 'o2o-a7', source: 'blog', sourceLabel: '네이버 블로그', type: 'text', title: '네이버 블로그 포스트 200+개', description: '주 2회 정기 발행 누적 — SEO 키워드 상위 노출 30+개', repurposingSuggestions: ['고트래픽 포스트 → Reel 변환', '키워드 맵 확장', '내부 링크 재구성'], status: 'collected' }, + { id: 'o2o-a8', source: 'social', sourceLabel: '인플루언서 협업', type: 'video', title: '뷰티/메디컬 크리에이터 협업 영상 (제작 필요)', description: '분기별 5~8명 정기 협업 시스템 — 신규 도달 + 권위 강화', repurposingSuggestions: ['Instagram 컬래버 카루셀', 'YouTube 협업 시리즈', 'TikTok 크로스포스팅', '광고 소셜프루프'], status: 'needs_creation' }, + ], + youtubeRepurpose: [ + { title: '오투오 원장이 알려주는 자연스러운 눈성형 5원칙', views: 84200, type: 'Long', repurposeAs: ['Shorts 5개 추출', 'Instagram Reels (KR + Global)', 'Blog 임베드', 'Carousel 2개'] }, + { title: '코성형 붓기, 솔직히 얼마나 가나요? — 30일 타임라인', views: 67500, type: 'Long', repurposeAs: ['Shorts 3개 추출', 'TikTok 크로스포스팅', 'Reels 변환', 'Blog SEO 포스트'] }, + { title: 'V라인 윤곽수술 회복 일기 — 환자 동의 케이스', views: 52300, type: 'Long', repurposeAs: ['Shorts 4개 추출', 'Carousel 시리즈', 'Global 계정 EN 자막'] }, + { title: '쌍수 vs 눈매교정 차이 60초', views: 124000, type: 'Short', repurposeAs: ['Instagram KR + Global 동시 배포', 'TikTok 크로스포스팅', 'Story 시리즈'] }, + { title: '코끝 성형 전후 — Real Case', views: 98700, type: 'Short', repurposeAs: ['Reels 변환', 'TikTok 트렌딩 사운드 추가', '광고 소재 활용'] }, + ], + }, + + // ─── Section 6: Repurposing Proposals ─── + repurposingProposals: [ + { + sourceVideo: { title: '오투오 원장 롱폼 인터뷰 (신규 제작)', views: 0, type: 'Long', repurposeAs: [] }, + estimatedEffort: 'medium', + priority: 'high', + outputs: [ + { format: 'Shorts 5개', channel: 'YouTube / TikTok', description: '"9년의 원칙" 핵심 구간 30-60초 클립' }, + { format: 'Reels 5개 (KR + Global)', channel: 'Instagram KR + Global', description: 'Shorts 다국어 자막 버전 동시 배포' }, + { format: 'Carousel 2개', channel: 'Instagram KR', description: '오투오 원장 철학 카드뉴스화' }, + { format: 'Blog Post 1개', channel: 'Naver Blog', description: '인터뷰 풀 스크립트 → 2,500자 SEO 포스트' }, + { format: '광고 소재 2개', channel: 'Facebook Global', description: '"9 Years of Excellence" 영문/중문 광고' }, + ], + }, + { + sourceVideo: { title: '강남언니 2,547 리뷰 → 콘텐츠화', views: 2547, type: 'Long', repurposeAs: [] }, + estimatedEffort: 'low', + priority: 'high', + outputs: [ + { format: 'Carousel 시리즈 (월 8회)', channel: 'Instagram KR', description: '시술별 베스트 리뷰 카드뉴스 — 3년치 콘텐츠 자산' }, + { format: 'Story 자동 발행', channel: 'Instagram KR + Global', description: '매주 새 리뷰 → Story 자동 발행 파이프라인' }, + { format: '광고 소셜프루프', channel: 'Facebook Global', description: '"2,547 verified reviews" 영문 광고 소재' }, + { format: 'Blog 환자 스토리', channel: 'Naver Blog', description: '리뷰 → 환자 여정 스토리 블로그 변환' }, + ], + }, + { + sourceVideo: { title: '인플루언서 컬래버 시리즈 (신규 제작 — 분기 5~8명)', views: 0, type: 'Long', repurposeAs: [] }, + estimatedEffort: 'high', + priority: 'high', + outputs: [ + { format: '컬래버 카루셀', channel: 'Instagram KR', description: '인플루언서별 1편 카루셀 + 비하인드 Story' }, + { format: 'YouTube 협업 시리즈', channel: 'YouTube', description: '인플루언서 게스트 인터뷰 시리즈' }, + { format: 'TikTok 크로스포스팅', channel: 'TikTok', description: '협업 영상 클립 → TikTok 노출 확대' }, + { format: '광고 소재 활용', channel: 'Facebook + Instagram', description: '컬래버 콘텐츠 → 광고 리타겟팅 소재' }, + ], + }, + { + sourceVideo: { title: '글로벌 환자 여정 다큐 (신규 제작 — 분기 1편)', views: 0, type: 'Long', repurposeAs: [] }, + estimatedEffort: 'medium', + priority: 'medium', + outputs: [ + { format: 'YouTube 다큐 (다국어 자막)', channel: 'YouTube', description: '태국·일본·중국 환자 여정 풀 영상 — 글로벌 노출' }, + { format: 'Instagram Global Reels 시리즈', channel: 'Instagram Global', description: '여정 클립 → Global Reels 5편 시리즈' }, + { format: 'Facebook 광고', channel: 'Facebook Global', description: '국가별 타겟팅 광고 소재 (TH/JP/CN)' }, + { format: 'WhatsApp 콘텐츠', channel: 'WhatsApp 자동응답', description: '여정 요약 + 상담 CTA — 글로벌 환자 1차 응대' }, + ], + }, + ], + + // ─── Section 7: Workflow Tracker ─── + workflow: { + items: [ + { + id: 'o2o-wf-001', + title: 'TikTok Pixel 설치 + 1차 광고 캠페인 런칭', + contentType: 'image-text', + channel: 'TikTok', + channelIcon: 'video', + stage: 'planning', + imageTextDraft: { + type: 'blog', + headline: 'TikTok Pixel 설치 — ROAS 측정 시작', + copy: [ + 'o2oclinic.com에 TikTok Pixel 코드 설치 (GTM 통한 배포)', + '광고 캠페인 v1: 눈성형 Before/After Shorts → Awareness', + '광고 캠페인 v2: 인플루언서 컬래버 → Consideration', + '주간 ROAS 모니터링 + 예산 재배분 SOP 문서화', + ], + }, + }, + { + id: 'o2o-wf-002', + title: 'YouTube 기존 영상 EN/ZH 자막 1차 30개 추가', + contentType: 'video', + channel: 'YouTube', + channelIcon: 'youtube', + stage: 'planning', + videoDraft: { + script: '[자막 추가 우선순위]\n1. 조회수 상위 10개 (눈성형 5원칙, 코성형 타임라인 등)\n2. 글로벌 검색 키워드 일치 영상 10개\n3. 인플루언서 컬래버 영상 10개\n\n[작업 방식]\n- EN 자막: AI 자동 → 네이티브 검수\n- ZH 자막: 중국어 전문 번역사 의뢰\n- YouTube Studio 다국어 제목·설명 동시 적용', + shootingGuide: [ + '자막 완료 영상 → 채널 플레이리스트 "Multilingual" 신규 생성', + '제목·설명에 EN/ZH 키워드 추가 (SEO)', + '월간 자막 추가 KPI: 10개 → 누적 50개 (3개월)', + ], + duration: '3개월 누적 50개', + }, + }, + { + id: 'o2o-wf-003', + title: 'Facebook Global 리타겟팅 광고 캠페인 v1', + contentType: 'image-text', + channel: 'Facebook Global', + channelIcon: 'facebook', + stage: 'planning', + imageTextDraft: { + type: 'blog', + headline: 'Facebook 리타겟팅 — Pixel 활용 즉시 ROAS 향상', + copy: [ + 'o2oclinic.com 방문자 픽셀 데이터 활용 — 30일 lookback', + '광고 소재 4종: 눈/코/윤곽/Multi', + '타겟팅: 영문 페이지 방문자 + Instagram Global 팔로워', + 'WhatsApp CTA 우선 + Messenger 백업', + '주간 ROAS 리뷰 + 소재 A/B 테스트 운영', + ], + }, + }, + { + id: 'o2o-wf-004', + title: '인플루언서 협업 SOP 문서화 + 1차 5명 컨택', + contentType: 'image-text', + channel: 'Instagram KR', + channelIcon: 'instagram', + stage: 'planning', + imageTextDraft: { + type: 'blog', + headline: '인플루언서 협업 시스템화 — 분기 5~8명 정기 협업', + copy: [ + '협업 SOP: 후보 선정 → 컨택 → 계약 → 촬영 → 콘텐츠 발행 → 성과 측정', + '1차 후보군: 뷰티 크리에이터 3명 + 메디컬 크리에이터 2명', + '협업 콘텐츠 패키지: Instagram 카루셀 + Story + Reel 1세트', + '계약: 의료광고법 준수 가이드 사전 공유 필수', + ], + }, + }, + { + id: 'o2o-wf-005', + title: '강남언니 2,547 리뷰 자동 카드뉴스 시스템', + contentType: 'image-text', + channel: 'Instagram KR', + channelIcon: 'instagram', + stage: 'ai-draft', + imageTextDraft: { + type: 'cardnews', + headline: '2,547개의 진심 — 강남언니 9.5점이 증명합니다', + copy: [ + '슬라이드 1: "강남언니 9.5점 / 2,547 리뷰 — 감사합니다"', + '슬라이드 2-5: 시술별 베스트 리뷰 4개 발췌 (익명화 처리)', + '슬라이드 6: "리뷰 작성 → 강남언니 프로필 링크"', + '주 2회 자동 발행 — 신규 리뷰 RSS 모니터링', + ], + layoutHint: 'Indigo Deep 배경, Cyan 강조 텍스트, O2O 워드마크 하단 고정', + }, + }, + ], + }, +}; diff --git a/src/data/mockReport_o2o.ts b/src/data/mockReport_o2o.ts new file mode 100644 index 0000000..6b9a492 --- /dev/null +++ b/src/data/mockReport_o2o.ts @@ -0,0 +1,392 @@ +import type { MarketingReport } from '../types/report'; +import { mockReport } from './mockReport'; + +/** + * O2O Clinic — 가상 데모 리포트 (마케팅·광고 소재용) + * + * 실제 병원이 아닌 가상 클리닉. 의료광고법·개인정보 우려 없이 + * 자유롭게 외부 노출 가능한 INFINITH 솔루션 데모 자산. + * + * 설정: + * - 이름: O2O Clinic (오투오 클리닉) + * - 원장: 오투오 (Dr. O2O) + * - 개원: 2017년 (9년차) + * - 시술: 눈·코·윤곽 전문 + * - 컬러: Indigo Deep (#1E1B4B) + Cyan (#06B6D4) + * + * 6개 실제 병원 분석 패턴에서 흥미로운 요소를 발췌·재구성: + * - 균형 잡힌 채널 운영 점수 (78/100) + * - 다국어 Instagram 운영 (원진/이룸 패턴) + * - YouTube 콘텐츠 아카이브 (바노바기/티에스 패턴) + * - 강남언니 9.5점 + 2,547 리뷰 + * - 명확한 강점 + 개선 기회 균형 — 솔루션 가치를 가장 잘 보여줄 사례 + */ +export const mockReportO2O: MarketingReport = { + ...mockReport, + id: 'o2o', + createdAt: '2026-04-14', + targetUrl: 'https://www.o2oclinic.com', + overallScore: 78, + + clinicSnapshot: { + ...mockReport.clinicSnapshot, + name: 'O2O Clinic', + nameEn: 'O2O Plastic Surgery Clinic', + established: '2017', + yearsInBusiness: 9, + staffCount: 8, + leadDoctor: { + name: '오투오', + credentials: 'O2O Clinic 대표원장 · 눈·코·윤곽 전문', + rating: 9.6, + reviewCount: 2547, + }, + overallRating: 9.5, + totalReviews: 2547, + priceRange: { min: '300,000', max: '15,000,000+', currency: '₩' }, + certifications: [ + '성형외과 전문의', + '대한성형외과학회 정회원', + '안면윤곽·코성형 다년 임상', + '국제 환자 영문/중문 상담', + ], + mediaAppearances: ['강남언니 9.5점 / 2,547 리뷰', '국제 환자 의료관광 인증'], + medicalTourism: ['영어·중국어·일본어 코디네이터 상주', '의료관광 인증 클리닉'], + location: '서울 강남구 (강남역 인근)', + nearestStation: '2호선 강남역', + phone: '02-2020-2020', + domain: 'o2oclinic.com', + source: 'registry' as const, + registryData: { + district: '강남', + branches: '본원 1개', + brandGroup: '눈·코·윤곽 전문 · 글로벌', + gangnamUnniUrl: 'https://www.gangnamunni.com/hospitals/o2o', + googleMapsUrl: 'https://maps.google.com/?q=O2O+Clinic', + }, + logoImages: { + circle: '/assets/clients/o2o/logo-circle.png', + horizontal: '/assets/clients/o2o/logo-horizontal.png', + korean: '/assets/clients/o2o/logo-korean.png', + }, + brandColors: { + primary: '#1E1B4B', + accent: '#06B6D4', + text: '#0F172A', + }, + }, + + channelScores: [ + { channel: 'YouTube', icon: 'youtube', score: 76, maxScore: 100, status: 'good', headline: '@o2oclinic — 5,840 구독자 · 280 영상 · 주 2회 안정 업로드' }, + { channel: 'Instagram', icon: 'instagram', score: 82, maxScore: 100, status: 'good', headline: '@o2o_clinic — 8,210 팔로워 · Reels 활성 · 다국어 운영' }, + { channel: 'Facebook', icon: 'facebook', score: 65, maxScore: 100, status: 'warning', headline: '@O2OClinicGlobal — 3,025 팔로워 · 국제 환자 광고 채널' }, + { channel: '강남언니', icon: 'star', score: 90, maxScore: 100, status: 'good', headline: '9.5점 / 2,547 리뷰 — 응답률 88% · 강남 상위 10%' }, + { channel: 'Website', icon: 'globe', score: 78, maxScore: 100, status: 'good', headline: 'o2oclinic.com — 다국어 랜딩 · 픽셀 설치 완료' }, + { channel: '네이버 블로그', icon: 'globe', score: 72, maxScore: 100, status: 'good', headline: 'blog.naver.com/o2oclinic — 주 2회 SEO 포스팅' }, + ], + + youtubeAudit: { + ...mockReport.youtubeAudit, + channelName: 'O2O Clinic', + handle: '@o2oclinic', + subscribers: 5840, + totalVideos: 280, + totalViews: 1240000, + weeklyViewGrowth: { absolute: 4200, percentage: 3.4 }, + estimatedMonthlyRevenue: { min: 50, max: 180 }, + avgVideoLength: '6분', + uploadFrequency: '주 2회 (Long 1 + Shorts 1)', + channelCreatedDate: '2017-08-15', + subscriberRank: '강남 성형외과 채널 상위 25%', + channelDescription: 'O2O Clinic — 눈·코·윤곽 전문. 9년의 임상, 2,547개의 검증된 후기. 국제 환자 환영.', + linkedUrls: [ + { label: 'O2O Clinic 공식 홈페이지', url: 'o2oclinic.com' }, + { label: '강남언니 프로필', url: 'gangnamunni.com/hospitals/o2o' }, + ], + playlists: ['눈성형 가이드', '코성형 시리즈', '윤곽수술 케이스', '오투오 원장 Q&A', '국제 환자 브이로그', 'Shorts'], + topVideos: [ + { title: '오투오 원장이 알려주는 자연스러운 눈성형 5원칙', views: 84200, uploadedAgo: '3개월 전', type: 'Long', duration: '8:42' }, + { title: '코성형 붓기, 솔직히 얼마나 가나요? — 30일 타임라인', views: 67500, uploadedAgo: '1개월 전', type: 'Long', duration: '6:15' }, + { title: 'V라인 윤곽수술 회복 일기 — 환자 동의 케이스', views: 52300, uploadedAgo: '2주 전', type: 'Long', duration: '12:08' }, + { title: '쌍수 vs 눈매교정 차이 60초', views: 124000, uploadedAgo: '2개월 전', type: 'Short', duration: '0:60' }, + { title: '코끝 성형 전후 — Real Case', views: 98700, uploadedAgo: '3주 전', type: 'Short', duration: '0:45' }, + ], + diagnosis: [ + { category: '안정적 업로드 빈도 — 강점', detail: '주 2회 정기 업로드로 알고리즘 신호 양호. 9년간 누적 280개 영상 = 콘텐츠 자산 풍부', severity: 'good' }, + { category: 'Shorts 활용 우수', detail: 'Long-form 영상에서 Shorts 추출 비율 35% — 평균 (15%) 대비 2배 이상', severity: 'good' }, + { category: '다국어 자막 추가 권장', detail: '영문/중문 자막을 추가하면 글로벌 도달 즉시 1.8~2.5배 확대 예상', severity: 'warning' }, + ], + }, + + instagramAudit: { + accounts: [ + { + handle: '@o2o_clinic', + language: 'KR', + label: 'KR 메인 공식', + posts: 1850, + followers: 8210, + following: 312, + category: 'Health/beauty', + profileLink: 'o2oclinic.com', + highlights: ['눈성형', '코성형', '윤곽수술', '리뷰', '글로벌'], + reelsCount: 142, + contentFormat: 'Reels (50%) + Carousel (30%) + Story (20%)', + profilePhoto: 'O2O 로고 (Indigo + Cyan)', + bio: 'O2O Clinic 공식 · 눈·코·윤곽 전문 · 강남역 · 영문/중문 상담 가능 · o2oclinic.com', + }, + { + handle: '@o2o_clinic_global', + language: 'EN', + label: 'Global 공식', + posts: 480, + followers: 6320, + following: 215, + category: 'Health/beauty', + profileLink: 'o2oclinic.com', + highlights: ['Eye', 'Nose', 'Contouring', 'Reviews', 'Booking'], + reelsCount: 95, + contentFormat: 'English / Chinese / Japanese subtitled Reels', + profilePhoto: 'O2O Global 로고', + bio: 'O2O Clinic Global · Eye · Nose · Facial Contouring · Gangnam Seoul · DM for consultation', + }, + ], + diagnosis: [ + { category: 'Reels 활용도 우수', detail: '게시물 중 Reels 비율 50% — 알고리즘 친화적 콘텐츠 믹스', severity: 'good' }, + { category: '글로벌 계정 운영 — 차별화 강점', detail: '국내 + 영문 글로벌 계정 분리 운영으로 외국인 환자 직접 도달 가능', severity: 'good' }, + { category: '인플루언서 협업 미흡', detail: '뷰티 크리에이터 협업 콘텐츠 0편 — 신규 도달 확장 기회', severity: 'warning' }, + ], + }, + + facebookAudit: { + pages: [ + { + url: 'facebook.com/O2OClinicGlobal', + pageName: 'O2O Clinic Global', + language: 'EN', + label: 'Global 공식', + followers: 3025, + following: 0, + category: 'Plastic Surgeon', + bio: 'O2O Clinic — Eye, Nose, Facial Contouring | Gangnam Seoul | Multilingual Consultation', + logo: 'O2O Global 로고', + logoDescription: 'Indigo + Cyan O2O 워드마크', + link: 'o2oclinic.com', + linkedDomain: 'o2oclinic.com', + reviews: 142, + recentPostAge: '5일 전', + hasWhatsApp: true, + postFrequency: '주 2~3회', + topContentType: 'Patient journey + Before/After (consent verified)', + engagement: '게시물당 평균 좋아요 80~150 / 댓글 10~25', + }, + ], + diagnosis: [ + { category: '국제 환자 광고 채널로 활성화 양호', detail: 'WhatsApp 연동 + 영문 콘텐츠 정기 업로드로 글로벌 환자 직접 상담 경로 확보', severity: 'good' }, + { category: '리타겟팅 광고 운영 부재', detail: 'Pixel은 설치되어 있으나 리타겟팅 캠페인 미운영 — 즉시 ROAS 기회', severity: 'warning' }, + ], + brandInconsistencies: [], + consolidationRecommendation: 'Facebook은 글로벌 채널로 명확히 포지셔닝되어 운영 중. 리타겟팅 캠페인 도입 시 ROAS 즉시 개선 가능.', + }, + + otherChannels: [ + { name: '네이버 블로그', status: 'active', details: '주 2회 SEO 포스팅 · 키워드 상위 노출 30+', url: 'https://blog.naver.com/o2oclinic' }, + { name: '네이버 카페', status: 'active', details: 'O2O Clinic 카페 운영 중 · 회원 1,200+', url: 'https://cafe.naver.com/o2oclinic' }, + { name: '강남언니', status: 'active', details: '9.5점 / 2,547 리뷰 · 응답률 88%', url: 'https://www.gangnamunni.com/hospitals/o2o' }, + { name: '네이버 플레이스', status: 'active', details: '플레이스 운영 · 사진 80+ · 별점 4.8', url: 'https://map.naver.com/v5/search/O2O+Clinic' }, + { name: '카카오톡', status: 'active', details: '카카오 채널 친구 4,200+ · 자동응답 운영', url: 'https://o2oclinic.com' }, + { name: 'TikTok', status: 'active', details: '@o2oclinic · 팔로워 3,400 · Shorts 크로스포스팅', url: 'https://www.tiktok.com/@o2oclinic' }, + ], + + websiteAudit: { + primaryDomain: 'o2oclinic.com', + additionalDomains: [{ domain: 'o2oclinic.com/en', purpose: '영문 랜딩' }, { domain: 'o2oclinic.com/zh', purpose: '중문 랜딩' }], + snsLinksOnSite: true, + snsLinksDetail: [ + { platform: 'YouTube', url: 'https://www.youtube.com/@o2oclinic', location: 'Footer + Header' }, + { platform: 'Instagram', url: 'https://www.instagram.com/o2o_clinic', location: 'Footer + Header' }, + { platform: 'Instagram Global', url: 'https://www.instagram.com/o2o_clinic_global', location: 'Footer (EN page)' }, + { platform: 'Facebook', url: 'https://www.facebook.com/O2OClinicGlobal', location: 'Footer (EN page)' }, + { platform: 'Naver Blog', url: 'https://blog.naver.com/o2oclinic', location: 'Footer' }, + { platform: 'TikTok', url: 'https://www.tiktok.com/@o2oclinic', location: 'Footer' }, + ], + trackingPixels: [ + { name: 'Google Analytics 4', installed: true, details: 'GA4 + GTM 정상 운영' }, + { name: 'Meta Pixel', installed: true, details: 'Facebook/Instagram 광고 픽셀 설치 완료' }, + { name: 'Naver Analytics', installed: true, details: '네이버 검색광고 전환 추적' }, + { name: 'TikTok Pixel', installed: false, details: '미설치 — 도입 권장' }, + ], + mainCTA: '온라인 상담 예약 + 카카오톡 + WhatsApp (글로벌)', + }, + + problemDiagnosis: [ + { + category: 'TikTok 픽셀 미설치 — 광고 ROAS 측정 불가', + detail: '@o2oclinic TikTok 계정에 트래픽이 발생하고 있으나 픽셀이 없어 광고 캠페인 ROAS 측정·최적화 불가. 즉시 설치 권장.', + severity: 'warning', + }, + { + category: '인플루언서 협업 미운영 — 신규 도달 기회 손실', + detail: '뷰티/메디컬 크리에이터 협업 콘텐츠 0편. 6개월 내 5~8명 협업 시 신규 팔로워 30~50% 증가 예상.', + severity: 'warning', + }, + { + category: '리타겟팅 광고 미운영 — Meta Pixel 설치되어 있으나 활용 부족', + detail: 'o2oclinic.com 방문자 누적 데이터가 있으나 Facebook/Instagram 리타겟팅 캠페인 미운영. ROAS 즉시 200~300% 개선 기회.', + severity: 'warning', + }, + { + category: '글로벌 콘텐츠 — 강점 확장 여지', + detail: '영문 Instagram + Global Facebook 운영 중이나, YouTube 채널은 한국어 위주. 영문/중문 자막 추가 시 도달 1.8~2.5배 확대 예상.', + severity: 'warning', + }, + ], + + transformation: { + ...mockReport.transformation, + brandIdentity: [ + { area: '브랜드 포지셔닝', asIs: '눈·코·윤곽 전문', toBe: '"O2O Clinic — 9년의 임상, 2,547개의 진심"' }, + { area: '컬러 시스템', asIs: 'Indigo Deep + Cyan 명문화 완료', toBe: '전 채널 디자인 가이드 SOP 발급' }, + { area: '글로벌 메시지', asIs: '국문/영문 분리 운영', toBe: 'YouTube 다국어 자막 추가 → 한국어 콘텐츠로 글로벌 도달' }, + ], + platformStrategies: [ + { + platform: 'YouTube', + icon: 'youtube', + currentMetric: '5,840 subscribers · 280 videos', + targetMetric: '20K / 12개월', + strategies: [ + { strategy: '다국어 자막 우선 50개', detail: '기존 영상에 EN/ZH/JP 자막 추가 → 글로벌 검색 도달 즉시 확대' }, + { strategy: '오투오 원장 Q&A 시리즈 정기화', detail: '월 2회 롱폼 + 월 4회 Shorts 추출 → 권위 콘텐츠' }, + { strategy: '인플루언서 컬래버 분기 1회', detail: '뷰티/메디컬 크리에이터 협업으로 신규 구독자 유입' }, + ], + }, + { + platform: 'Instagram', + icon: 'instagram', + currentMetric: 'KR 8,210 + Global 6,320 · Reels 활성', + targetMetric: 'KR 25K + Global 18K / 12개월', + strategies: [ + { strategy: 'Reels 주 5회로 증가', detail: 'YouTube Shorts와 동시 다국어 배포 — 자산 재활용' }, + { strategy: '인플루언서 카루셀 시리즈', detail: '월 2회 협업 콘텐츠 — 신규 팔로워 유입' }, + { strategy: '강남언니 리뷰 → Story 자동 변환', detail: '2,547개 리뷰 자산을 Story 카드로 주 2회 발행' }, + ], + }, + { + platform: 'Facebook', + icon: 'facebook', + currentMetric: 'Global 3,025 followers · WhatsApp 연동 완료', + targetMetric: 'Global 12K + 리타겟팅 ROAS 4x / 6개월', + strategies: [ + { strategy: '리타겟팅 광고 캠페인 즉시 시작', detail: 'o2oclinic.com 방문자 픽셀 데이터 활용 — 영문/중문 광고 소재 4종' }, + { strategy: 'WhatsApp 자동응답 시나리오 확대', detail: '눈/코/윤곽 시술별 FAQ 자동응답 — 글로벌 환자 1차 응대' }, + ], + }, + ], + websiteImprovements: [ + { area: '다국어 랜딩페이지', asIs: 'EN/ZH 운영 중', toBe: '일본어 랜딩 추가 + 채널별 UTM 추적 강화' }, + { area: 'TikTok Pixel', asIs: '미설치', toBe: 'TikTok Pixel 즉시 설치 → 광고 ROAS 측정 가능' }, + ], + newChannelProposals: [ + { channel: 'LINE (일본)', priority: 'P1', rationale: '일본 환자 직접 상담 경로 — Instagram JP 콘텐츠와 연동' }, + { channel: 'WeChat 공식 계정 (중국)', priority: 'P1', rationale: '중국 환자 의료관광 전환 채널 — 위챗 미니프로그램 검토' }, + { channel: '인플루언서 협업 시스템화', priority: 'P0', rationale: '단발성 협업이 아닌 분기별 5~8명 정기 협업 SOP 구축' }, + ], + }, + + roadmap: [ + { + month: 1, + title: 'Foundation', + subtitle: '광고 인프라 + 다국어', + tasks: [ + { task: 'TikTok Pixel 설치 + 광고 캠페인 시작', completed: false }, + { task: 'YouTube 기존 영상 EN/ZH 자막 30개 추가', completed: false }, + { task: 'Facebook 리타겟팅 광고 캠페인 v1 런칭', completed: false }, + { task: '인플루언서 협업 SOP 문서화 + 1차 5명 컨택', completed: false }, + ], + }, + { + month: 2, + title: 'Content Engine', + subtitle: '자산 재활용 + 협업', + tasks: [ + { task: 'YouTube 주 2회 정착 + Shorts 주 3회로 증가', completed: false }, + { task: 'Instagram Reels 주 5회 (KR + Global 동시)', completed: false }, + { task: '인플루언서 협업 카루셀 1차 발행', completed: false }, + { task: '강남언니 Story 자동 발행 시스템 구축', completed: false }, + ], + }, + { + month: 3, + title: 'Optimization', + subtitle: '성과 측정 + 확장', + tasks: [ + { task: 'TikTok·Facebook ROAS 분석 + 예산 재배분', completed: false }, + { task: 'LINE/WeChat 채널 개설 검토 → 결정', completed: false }, + { task: '월간 KPI 리뷰 + 다음 분기 전략', completed: false }, + ], + }, + ], + + kpiDashboard: [ + { metric: 'YouTube 구독자', current: '5,840', target3Month: '9,000', target12Month: '20,000' }, + { metric: 'YouTube 다국어 자막 영상', current: '0', target3Month: '50', target12Month: '150' }, + { metric: 'Instagram KR 팔로워', current: '8,210', target3Month: '12,500', target12Month: '25,000' }, + { metric: 'Instagram Global 팔로워', current: '6,320', target3Month: '9,500', target12Month: '18,000' }, + { metric: '강남언니 리뷰', current: '2,547', target3Month: '2,800', target12Month: '3,800' }, + { metric: '인플루언서 협업', current: '0', target3Month: '5건', target12Month: '20건' }, + { metric: '리타겟팅 광고 ROAS', current: '미측정', target3Month: '2.5x', target12Month: '4.0x' }, + ], + + screenshots: [ + { + id: 'yt-channel', + url: '/assets/clients/o2o/screenshots/yt-channel.png', + channel: 'YouTube', + capturedAt: '2026-04-14T10:00:00Z', + caption: 'O2O Clinic @o2oclinic — 5,840 구독자, 280 영상', + sourceUrl: 'https://www.youtube.com/@o2oclinic', + }, + { + id: 'ig-profile', + url: '/assets/clients/o2o/screenshots/ig-profile.png', + channel: 'Instagram', + capturedAt: '2026-04-14T10:02:00Z', + caption: 'Instagram @o2o_clinic — 8,210 팔로워 (KR 메인)', + sourceUrl: 'https://www.instagram.com/o2o_clinic', + }, + { + id: 'ig-global', + url: '/assets/clients/o2o/screenshots/ig-global.png', + channel: 'Instagram Global', + capturedAt: '2026-04-14T10:03:00Z', + caption: 'Instagram @o2o_clinic_global — 6,320 팔로워 (영문)', + sourceUrl: 'https://www.instagram.com/o2o_clinic_global', + }, + { + id: 'fb-page', + url: '/assets/clients/o2o/screenshots/fb-page.png', + channel: 'Facebook', + capturedAt: '2026-04-14T10:04:00Z', + caption: 'Facebook O2O Clinic Global — 3,025 팔로워 + WhatsApp', + sourceUrl: 'https://www.facebook.com/O2OClinicGlobal', + }, + { + id: 'gangnamunni', + url: '/assets/clients/o2o/screenshots/gangnamunni.png', + channel: '강남언니', + capturedAt: '2026-04-14T10:05:00Z', + caption: '강남언니 — O2O Clinic 9.5점, 2,547 리뷰', + sourceUrl: 'https://www.gangnamunni.com/hospitals/o2o', + }, + { + id: 'website-homepage', + url: '/assets/clients/o2o/screenshots/website-homepage.png', + channel: 'Website', + capturedAt: '2026-04-14T10:06:00Z', + caption: 'o2oclinic.com — 다국어 공식 홈페이지', + sourceUrl: 'https://www.o2oclinic.com', + }, + ], +}; diff --git a/src/hooks/useMarketingPlan.ts b/src/hooks/useMarketingPlan.ts index d156e38..e354360 100644 --- a/src/hooks/useMarketingPlan.ts +++ b/src/hooks/useMarketingPlan.ts @@ -9,6 +9,7 @@ import { mockPlanGrand } from '../data/mockPlan_grand'; import { mockPlanWonjin } from '../data/mockPlan_wonjin'; import { mockPlanTs } from '../data/mockPlan_ts'; import { mockPlanIrum } from '../data/mockPlan_irum'; +import { mockPlanO2O } from '../data/mockPlan_o2o'; const DEMO_PLANS: Record = { 'view-clinic': mockPlan, @@ -17,6 +18,7 @@ const DEMO_PLANS: Record = { 'wonjin': mockPlanWonjin, 'ts': mockPlanTs, 'irum': mockPlanIrum, + 'o2o': mockPlanO2O, }; interface UseMarketingPlanResult { diff --git a/src/hooks/useReport.ts b/src/hooks/useReport.ts index f537316..15e214a 100644 --- a/src/hooks/useReport.ts +++ b/src/hooks/useReport.ts @@ -10,6 +10,7 @@ import { mockReportGrand } from '../data/mockReport_grand'; import { mockReportWonjin } from '../data/mockReport_wonjin'; import { mockReportTs } from '../data/mockReport_ts'; import { mockReportIrum } from '../data/mockReport_irum'; +import { mockReportO2O } from '../data/mockReport_o2o'; const DEMO_REPORTS: Record = { 'view-clinic': mockReport, @@ -18,6 +19,7 @@ const DEMO_REPORTS: Record = { 'wonjin': mockReportWonjin, 'ts': mockReportTs, 'irum': mockReportIrum, + 'o2o': mockReportO2O, }; const DEMO_HANDLES: Record> = { @@ -27,6 +29,7 @@ const DEMO_HANDLES: Record> = { 'wonjin': { instagram: '@wonjin_official', youtube: '@wjwonjin', facebook: 'KwonjinPS' }, 'ts': { instagram: '@tsprs_official', youtube: '@TV-jm9dy', facebook: 'tsprs' }, 'irum': { instagram: '@seoulips', youtube: '@SEOULiPS.', facebook: null }, + 'o2o': { instagram: '@o2o_clinic', youtube: '@o2oclinic', facebook: 'O2OClinicGlobal' }, }; interface UseReportResult {