diff --git a/public/assets/clients/banobagi/screenshots/fb-page.png b/public/assets/clients/banobagi/screenshots/fb-page.png new file mode 100644 index 0000000..15a7475 Binary files /dev/null and b/public/assets/clients/banobagi/screenshots/fb-page.png differ diff --git a/public/assets/clients/banobagi/screenshots/gangnamunni.png b/public/assets/clients/banobagi/screenshots/gangnamunni.png new file mode 100644 index 0000000..0f6779f Binary files /dev/null and b/public/assets/clients/banobagi/screenshots/gangnamunni.png differ diff --git a/public/assets/clients/banobagi/screenshots/ig-profile.png b/public/assets/clients/banobagi/screenshots/ig-profile.png new file mode 100644 index 0000000..a587d4f Binary files /dev/null and b/public/assets/clients/banobagi/screenshots/ig-profile.png differ diff --git a/public/assets/clients/banobagi/screenshots/naver-blog.png b/public/assets/clients/banobagi/screenshots/naver-blog.png new file mode 100644 index 0000000..b20869e Binary files /dev/null and b/public/assets/clients/banobagi/screenshots/naver-blog.png differ diff --git a/public/assets/clients/banobagi/screenshots/website-homepage.png b/public/assets/clients/banobagi/screenshots/website-homepage.png new file mode 100644 index 0000000..ed8bd6d Binary files /dev/null and b/public/assets/clients/banobagi/screenshots/website-homepage.png differ diff --git a/public/assets/clients/banobagi/screenshots/yt-channel.png b/public/assets/clients/banobagi/screenshots/yt-channel.png new file mode 100644 index 0000000..e438282 Binary files /dev/null and b/public/assets/clients/banobagi/screenshots/yt-channel.png differ diff --git a/public/assets/clients/grand/screenshots/fb-page.png b/public/assets/clients/grand/screenshots/fb-page.png new file mode 100644 index 0000000..a848990 Binary files /dev/null and b/public/assets/clients/grand/screenshots/fb-page.png differ diff --git a/public/assets/clients/grand/screenshots/gangnamunni.png b/public/assets/clients/grand/screenshots/gangnamunni.png new file mode 100644 index 0000000..e9d0ccd Binary files /dev/null and b/public/assets/clients/grand/screenshots/gangnamunni.png differ diff --git a/public/assets/clients/grand/screenshots/ig-profile.png b/public/assets/clients/grand/screenshots/ig-profile.png new file mode 100644 index 0000000..ad5665c Binary files /dev/null and b/public/assets/clients/grand/screenshots/ig-profile.png differ diff --git a/public/assets/clients/grand/screenshots/naver-blog.png b/public/assets/clients/grand/screenshots/naver-blog.png new file mode 100644 index 0000000..6d20dab Binary files /dev/null and b/public/assets/clients/grand/screenshots/naver-blog.png differ diff --git a/public/assets/clients/grand/screenshots/website-homepage.png b/public/assets/clients/grand/screenshots/website-homepage.png new file mode 100644 index 0000000..6d8404f Binary files /dev/null and b/public/assets/clients/grand/screenshots/website-homepage.png differ diff --git a/public/assets/clients/grand/screenshots/yt-channel.png b/public/assets/clients/grand/screenshots/yt-channel.png new file mode 100644 index 0000000..2a2976b Binary files /dev/null and b/public/assets/clients/grand/screenshots/yt-channel.png differ diff --git a/public/assets/clients/irum/screenshots/fb-page.png b/public/assets/clients/irum/screenshots/fb-page.png new file mode 100644 index 0000000..4c47c15 Binary files /dev/null and b/public/assets/clients/irum/screenshots/fb-page.png differ diff --git a/public/assets/clients/irum/screenshots/gangnamunni.png b/public/assets/clients/irum/screenshots/gangnamunni.png new file mode 100644 index 0000000..6615bd5 Binary files /dev/null and b/public/assets/clients/irum/screenshots/gangnamunni.png differ diff --git a/public/assets/clients/irum/screenshots/ig-profile.png b/public/assets/clients/irum/screenshots/ig-profile.png new file mode 100644 index 0000000..9b0f836 Binary files /dev/null and b/public/assets/clients/irum/screenshots/ig-profile.png differ diff --git a/public/assets/clients/irum/screenshots/naver-blog.png b/public/assets/clients/irum/screenshots/naver-blog.png new file mode 100644 index 0000000..dfc2364 Binary files /dev/null and b/public/assets/clients/irum/screenshots/naver-blog.png differ diff --git a/public/assets/clients/irum/screenshots/website-homepage.png b/public/assets/clients/irum/screenshots/website-homepage.png new file mode 100644 index 0000000..c3a3578 Binary files /dev/null and b/public/assets/clients/irum/screenshots/website-homepage.png differ diff --git a/public/assets/clients/irum/screenshots/yt-channel.png b/public/assets/clients/irum/screenshots/yt-channel.png new file mode 100644 index 0000000..80153c9 Binary files /dev/null and b/public/assets/clients/irum/screenshots/yt-channel.png differ diff --git a/public/assets/clients/ts/screenshots/fb-page.png b/public/assets/clients/ts/screenshots/fb-page.png new file mode 100644 index 0000000..6267d86 Binary files /dev/null and b/public/assets/clients/ts/screenshots/fb-page.png differ diff --git a/public/assets/clients/ts/screenshots/gangnamunni.png b/public/assets/clients/ts/screenshots/gangnamunni.png new file mode 100644 index 0000000..54a00da Binary files /dev/null and b/public/assets/clients/ts/screenshots/gangnamunni.png differ diff --git a/public/assets/clients/ts/screenshots/ig-profile.png b/public/assets/clients/ts/screenshots/ig-profile.png new file mode 100644 index 0000000..26f1c98 Binary files /dev/null and b/public/assets/clients/ts/screenshots/ig-profile.png differ diff --git a/public/assets/clients/ts/screenshots/naver-blog.png b/public/assets/clients/ts/screenshots/naver-blog.png new file mode 100644 index 0000000..0ae9551 Binary files /dev/null and b/public/assets/clients/ts/screenshots/naver-blog.png differ diff --git a/public/assets/clients/ts/screenshots/website-homepage.png b/public/assets/clients/ts/screenshots/website-homepage.png new file mode 100644 index 0000000..86d797b Binary files /dev/null and b/public/assets/clients/ts/screenshots/website-homepage.png differ diff --git a/public/assets/clients/ts/screenshots/yt-channel.png b/public/assets/clients/ts/screenshots/yt-channel.png new file mode 100644 index 0000000..668a5f4 Binary files /dev/null and b/public/assets/clients/ts/screenshots/yt-channel.png differ diff --git a/public/assets/clients/wonjin/screenshots/fb-page.png b/public/assets/clients/wonjin/screenshots/fb-page.png new file mode 100644 index 0000000..6672a74 Binary files /dev/null and b/public/assets/clients/wonjin/screenshots/fb-page.png differ diff --git a/public/assets/clients/wonjin/screenshots/gangnamunni.png b/public/assets/clients/wonjin/screenshots/gangnamunni.png new file mode 100644 index 0000000..c7e34cb Binary files /dev/null and b/public/assets/clients/wonjin/screenshots/gangnamunni.png differ diff --git a/public/assets/clients/wonjin/screenshots/ig-profile.png b/public/assets/clients/wonjin/screenshots/ig-profile.png new file mode 100644 index 0000000..cf3fbf9 Binary files /dev/null and b/public/assets/clients/wonjin/screenshots/ig-profile.png differ diff --git a/public/assets/clients/wonjin/screenshots/naver-blog.png b/public/assets/clients/wonjin/screenshots/naver-blog.png new file mode 100644 index 0000000..de5c6d2 Binary files /dev/null and b/public/assets/clients/wonjin/screenshots/naver-blog.png differ diff --git a/public/assets/clients/wonjin/screenshots/website-homepage.png b/public/assets/clients/wonjin/screenshots/website-homepage.png new file mode 100644 index 0000000..68acaed Binary files /dev/null and b/public/assets/clients/wonjin/screenshots/website-homepage.png differ diff --git a/public/assets/clients/wonjin/screenshots/yt-channel.png b/public/assets/clients/wonjin/screenshots/yt-channel.png new file mode 100644 index 0000000..b9d9614 Binary files /dev/null and b/public/assets/clients/wonjin/screenshots/yt-channel.png differ diff --git a/src/data/mockPlan_banobagi.ts b/src/data/mockPlan_banobagi.ts new file mode 100644 index 0000000..4082785 --- /dev/null +++ b/src/data/mockPlan_banobagi.ts @@ -0,0 +1,46 @@ +import type { MarketingPlan } from '../types/plan'; +import { mockPlan } from './mockPlan'; + +/** + * 바노바기성형외과 — 데모 마케팅 플랜 + * view-clinic mockPlan 을 base 로 바노바기 맞춤 override. + */ +export const mockPlanBanobagi: MarketingPlan = { + ...mockPlan, + id: 'banobagi', + reportId: 'banobagi', + clinicName: '바노바기성형외과의원', + clinicNameEn: 'Banobagi Plastic Surgery Clinic', + createdAt: '2026-04-14', + targetUrl: 'https://www.banobagi.com', + + brandGuide: { + ...mockPlan.brandGuide, + colors: [ + { name: 'Banobagi Black', hex: '#1A1A1A', usage: '공식 로고 메인, 헤딩, 강조 텍스트' }, + { name: 'Banobagi Gold', hex: '#C8A96A', usage: '로고 악센트, CTA 포인트, 구분선' }, + { name: 'Ivory White', hex: '#FAF7F2', usage: '배경, 카드, 여백' }, + { name: 'Deep Charcoal', hex: '#2D2D2D', usage: '본문 텍스트' }, + { name: 'Soft Gray', hex: '#6B6B6B', usage: '서브 텍스트, 메타 정보' }, + ], + fonts: [ + { family: 'Pretendard', weight: 'Bold 700', usage: '헤딩, 섹션 타이틀', sampleText: '26년 강남 대표 성형외과' }, + { family: 'Pretendard', weight: 'Regular 400', usage: '본문 텍스트', sampleText: '바노바기성형외과 — 안전과 자연스러움' }, + { family: 'Playfair Display', weight: 'Bold 700', usage: '영문 헤딩', sampleText: 'BANOBAGI' }, + ], + toneOfVoice: { + personality: ['신뢰감 있는', '전문적', '차분한', '결과 중심', '절제된 럭셔리'], + communicationStyle: '26년 축적된 임상 경험을 바탕으로, 과장 없이 결과와 원칙으로 설득합니다. 환자의 관점에서 생각하되 의료 전문성을 잃지 않는 톤.', + doExamples: [ + '"자연스러움이 보일 때까지, 디테일에 디테일을 더합니다"', + '"26년 임상 경험, 6,853개의 진솔한 후기"', + '"바노바기의 원칙: 결과로 증명합니다"', + ], + dontExamples: [ + '"강남 최고! 파격 할인!"', + '"연예인이 선택한 병원"', + '"100% 만족 보장"', + ], + }, + }, +}; diff --git a/src/data/mockPlan_grand.ts b/src/data/mockPlan_grand.ts new file mode 100644 index 0000000..f25adb2 --- /dev/null +++ b/src/data/mockPlan_grand.ts @@ -0,0 +1,43 @@ +import type { MarketingPlan } from '../types/plan'; +import { mockPlan } from './mockPlan'; + +/** + * 그랜드성형외과 — 데모 마케팅 플랜 + */ +export const mockPlanGrand: MarketingPlan = { + ...mockPlan, + id: 'grand', + reportId: 'grand', + clinicName: '그랜드성형외과', + clinicNameEn: 'Grand Plastic Surgery', + createdAt: '2026-04-14', + targetUrl: 'https://www.grandps.com', + + brandGuide: { + ...mockPlan.brandGuide, + colors: [ + { name: 'Grand Navy', hex: '#1B3A6B', usage: '공식 로고, 헤딩, 강조 텍스트' }, + { name: 'Grand Blue', hex: '#4A90D9', usage: '액센트, CTA, 구분선' }, + { name: 'Pure White', hex: '#FFFFFF', usage: '배경, 카드' }, + { name: 'Light Gray', hex: '#F5F5F5', usage: '섹션 배경' }, + { name: 'Dark Text', hex: '#1A1A1A', usage: '본문' }, + ], + fonts: [ + { family: 'Pretendard', weight: 'Bold 700', usage: '헤딩', sampleText: '압구정 안면거상 전문' }, + { family: 'Pretendard', weight: 'Regular 400', usage: '본문', sampleText: '그랜드성형외과 — 21년 전문 경험' }, + { family: 'Playfair Display', weight: 'Bold 700', usage: '영문 헤딩', sampleText: 'GRAND PS' }, + ], + toneOfVoice: { + personality: ['전문적', '신뢰감 있는', '결과 중심', '차분한'], + communicationStyle: '21년 압구정 성형외과 경험을 바탕으로 전문성 위주로 소통합니다.', + doExamples: [ + '"안면거상, 결과가 증명합니다"', + '"21년 임상, 이세환 원장이 직접 집도합니다"', + ], + dontExamples: [ + '"파격 할인"', + '"무조건 예뻐집니다"', + ], + }, + }, +}; diff --git a/src/data/mockPlan_irum.ts b/src/data/mockPlan_irum.ts new file mode 100644 index 0000000..948a7ec --- /dev/null +++ b/src/data/mockPlan_irum.ts @@ -0,0 +1,43 @@ +import type { MarketingPlan } from '../types/plan'; +import { mockPlan } from './mockPlan'; + +/** + * 이룸성형외과 (서울아이) — 데모 마케팅 플랜 + */ +export const mockPlanIrum: MarketingPlan = { + ...mockPlan, + id: 'irum', + reportId: 'irum', + clinicName: '이룸성형외과 (서울아이)', + clinicNameEn: 'Seoul i Plastic Surgery', + createdAt: '2026-04-14', + targetUrl: 'https://www.seoulips.com', + + brandGuide: { + ...mockPlan.brandGuide, + colors: [ + { name: 'Seoul i Green', hex: '#0D4F3C', usage: '공식 로고, 헤딩' }, + { name: 'Seoul i Mint', hex: '#2ECC71', usage: '액센트, CTA' }, + { name: 'Pure White', hex: '#FFFFFF', usage: '배경' }, + { name: 'Soft Mint', hex: '#F0FFF4', usage: '섹션 배경' }, + { name: 'Dark Text', hex: '#1A1A1A', usage: '본문' }, + ], + fonts: [ + { family: 'Pretendard', weight: 'Bold 700', usage: '헤딩', sampleText: '안전하고 바른 성형' }, + { family: 'Pretendard', weight: 'Regular 400', usage: '본문', sampleText: '서울아이성형외과 — 글로벌 K-Beauty' }, + { family: 'Playfair Display', weight: 'Bold 700', usage: '영문 헤딩', sampleText: 'SEOUL i PS' }, + ], + toneOfVoice: { + personality: ['안전 중심', '글로벌', '전문적', '따뜻한'], + communicationStyle: '안전하고 바른 성형이라는 철학을 태국·일본·한국 환자 모두에게 다국어로 전달합니다.', + doExamples: [ + '"안전하고 바른 성형, 서울아이가 약속합니다"', + '"세계가 찾는 강남 코성형 — Seoul i"', + ], + dontExamples: [ + '"가장 저렴한 성형"', + '"부작용 없음 보장"', + ], + }, + }, +}; diff --git a/src/data/mockPlan_ts.ts b/src/data/mockPlan_ts.ts new file mode 100644 index 0000000..6002c85 --- /dev/null +++ b/src/data/mockPlan_ts.ts @@ -0,0 +1,43 @@ +import type { MarketingPlan } from '../types/plan'; +import { mockPlan } from './mockPlan'; + +/** + * 티에스성형외과 — 데모 마케팅 플랜 + */ +export const mockPlanTs: MarketingPlan = { + ...mockPlan, + id: 'ts', + reportId: 'ts', + clinicName: '티에스성형외과', + clinicNameEn: 'TS Plastic Surgery', + createdAt: '2026-04-14', + targetUrl: 'https://www.tsprs.com', + + brandGuide: { + ...mockPlan.brandGuide, + colors: [ + { name: 'TS Dark Navy', hex: '#1A1A2E', usage: '공식 로고, 헤딩' }, + { name: 'TS Crimson', hex: '#E94560', usage: '액센트, CTA' }, + { name: 'Pure White', hex: '#FFFFFF', usage: '배경' }, + { name: 'Light Pink', hex: '#FFF0F3', usage: '섹션 배경' }, + { name: 'Dark Text', hex: '#1A1A1A', usage: '본문' }, + ], + fonts: [ + { family: 'Pretendard', weight: 'Bold 700', usage: '헤딩', sampleText: '지금, 예뻐져라!' }, + { family: 'Pretendard', weight: 'Regular 400', usage: '본문', sampleText: '티에스성형외과 — 신사역 강남' }, + { family: 'Playfair Display', weight: 'Bold 700', usage: '영문 헤딩', sampleText: 'TS PLASTIC SURGERY' }, + ], + toneOfVoice: { + personality: ['활기찬', '친근한', '결과 중심', '트렌디'], + communicationStyle: '리얼모델의 생생한 경험을 중심으로, 수술 결과를 과장 없이 솔직하게 전달합니다.', + doExamples: [ + '"리얼모델이 직접 증명하는 결과"', + '"지금, 예뻐져라! 티에스에서"', + ], + dontExamples: [ + '"연예인 성형"', + '"무조건 완벽 보장"', + ], + }, + }, +}; diff --git a/src/data/mockPlan_wonjin.ts b/src/data/mockPlan_wonjin.ts new file mode 100644 index 0000000..00f3db9 --- /dev/null +++ b/src/data/mockPlan_wonjin.ts @@ -0,0 +1,43 @@ +import type { MarketingPlan } from '../types/plan'; +import { mockPlan } from './mockPlan'; + +/** + * 원진성형외과 — 데모 마케팅 플랜 + */ +export const mockPlanWonjin: MarketingPlan = { + ...mockPlan, + id: 'wonjin', + reportId: 'wonjin', + clinicName: '원진성형외과', + clinicNameEn: 'Wonjin Plastic Surgery', + createdAt: '2026-04-14', + targetUrl: 'https://www.wonjin.com', + + brandGuide: { + ...mockPlan.brandGuide, + colors: [ + { name: 'Wonjin Purple', hex: '#2C1654', usage: '공식 로고, 헤딩' }, + { name: 'Wonjin Violet', hex: '#8B5CF6', usage: '액센트, CTA' }, + { name: 'Pure White', hex: '#FFFFFF', usage: '배경' }, + { name: 'Light Lavender', hex: '#F5F3FF', usage: '섹션 배경' }, + { name: 'Dark Text', hex: '#1A1A1A', usage: '본문' }, + ], + fonts: [ + { family: 'Pretendard', weight: 'Bold 700', usage: '헤딩', sampleText: '35년 강남 코성형 전문' }, + { family: 'Pretendard', weight: 'Regular 400', usage: '본문', sampleText: '원진성형외과 — 국제 환자 환영' }, + { family: 'Playfair Display', weight: 'Bold 700', usage: '영문 헤딩', sampleText: 'WONJIN PS' }, + ], + toneOfVoice: { + personality: ['글로벌', '전문적', '따뜻한', '신뢰감 있는'], + communicationStyle: '35년 코성형 전문성을 글로벌 감각과 결합해 국내외 환자 모두에게 공감가는 메시지를 전달합니다.', + doExamples: [ + '"코성형, 35년의 경험이 보장합니다"', + '"세계 각국 환자가 찾는 강남 코성형"', + ], + dontExamples: [ + '"가장 싸게 해드립니다"', + '"100% 성공 보장"', + ], + }, + }, +}; diff --git a/src/data/mockReport_banobagi.ts b/src/data/mockReport_banobagi.ts new file mode 100644 index 0000000..45aace1 --- /dev/null +++ b/src/data/mockReport_banobagi.ts @@ -0,0 +1,384 @@ +import type { MarketingReport } from '../types/report'; +import { mockReport } from './mockReport'; + +/** + * 바노바기성형외과의원 — 데모 리포트 + * + * 실측 (2026-04-14): + * - 강남언니: 9.2/10, 6,853 리뷰, 의료진 4명, 2000년 설립 (https://www.gangnamunni.com/hospitals/23) + * - YouTube @banobagips (UC2lzYQ5kXBK0gkVDe5StZzQ): 구독자 13K, 영상 925개 + * - Naver Blog @banobagips: 마지막 포스트 2023-04-21 (사실상 방치) + * - 주소: 서울 강남구 논현로 517 + * + * Instagram @banobagi_ps · Facebook @BanobagiPlasticSurgery 는 Firecrawl 차단으로 + * 추정치 반영 (캡션에 명시). 다음 세션에서 Chrome MCP 로 실측 교체 예정. + */ +export const mockReportBanobagi: MarketingReport = { + ...mockReport, + id: 'banobagi', + createdAt: '2026-04-14', + targetUrl: 'https://www.banobagi.com', + overallScore: 58, + + clinicSnapshot: { + ...mockReport.clinicSnapshot, + name: '바노바기성형외과의원', + nameEn: 'Banobagi Plastic Surgery Clinic', + established: '2000', + yearsInBusiness: 26, + staffCount: 4, + leadDoctor: { + name: '반재중', + credentials: '바노바기성형외과 대표원장', + rating: 9.2, + reviewCount: 6853, + }, + overallRating: 9.2, + totalReviews: 6853, + priceRange: { min: '150,000', max: '12,000,000+', currency: '₩' }, + certifications: [ + '마취과 전문의 상주', + '여성 의사 진료', + '분야별 공동 진료', + '시술 후 관리', + '의료진 실명 공개', + '본관 6층 + 별관 5층 규모', + ], + mediaAppearances: ['강남언니 6,853 리뷰', '안면윤곽 전문센터'], + medicalTourism: ['외국인 전용 서비스', '영문/중문 상담 지원'], + location: '서울 강남구 논현로 517 (역삼동) 바노바기', + nearestStation: '2호선 역삼역 · 강남역', + phone: '02-1588-6508', + domain: 'banobagi.com', + source: 'registry' as const, + registryData: { + district: '강남', + branches: '본점 1개 (본관+별관)', + brandGroup: '종합 성형외과', + naverPlaceUrl: 'https://m.place.naver.com/hospital/11655270', + gangnamUnniUrl: 'https://www.gangnamunni.com/hospitals/23', + googleMapsUrl: 'https://maps.google.com/?q=바노바기성형외과', + }, + logoImages: { + circle: '/assets/clients/banobagi/logo-circle.png', + horizontal: '/assets/clients/banobagi/logo-horizontal.png', + korean: '/assets/clients/banobagi/logo-korean.png', + }, + brandColors: { + primary: '#1A1A1A', + accent: '#C8A96A', + text: '#1A1A1A', + }, + }, + + channelScores: [ + { channel: 'YouTube', icon: 'youtube', score: 45, maxScore: 100, status: 'critical', headline: '구독자 13K, 영상 925개 누적됐으나 최근 조회수 저조' }, + { channel: 'Instagram', icon: 'instagram', score: 55, maxScore: 100, status: 'warning', headline: '@banobagi_ps — 추정 30K 팔로워, 게시물 꾸준 (실측 진행 중)' }, + { channel: 'Facebook', icon: 'facebook', score: 35, maxScore: 100, status: 'critical', headline: '@BanobagiPlasticSurgery — 국제 노출 위주, KR 활성도 낮음 (실측 진행 중)' }, + { channel: '강남언니', icon: 'star', score: 88, maxScore: 100, status: 'excellent', headline: '9.2점/10, 6,853 리뷰, 강남 상위권 — 리뷰 반응 전략 필요' }, + { channel: 'Website', icon: 'globe', score: 60, maxScore: 100, status: 'warning', headline: 'banobagi.com 운영 양호, Footer SNS 연결 존재 — 트래킹 고도화 필요' }, + { channel: '네이버 블로그', icon: 'globe', score: 25, maxScore: 100, status: 'critical', headline: '마지막 포스트 2023-04-21 — 2년 이상 방치' }, + ], + + youtubeAudit: { + ...mockReport.youtubeAudit, + channelName: 'BANOBAGI PLASTIC SURGERY', + handle: '@banobagips', + subscribers: 13000, + totalVideos: 925, + totalViews: 4200000, + weeklyViewGrowth: { absolute: 1200, percentage: 0.3 }, + estimatedMonthlyRevenue: { min: 50, max: 180 }, + avgVideoLength: '3.2분', + uploadFrequency: '비정기 (최근 6개월 저조)', + channelCreatedDate: '2013-08-15', + subscriberRank: '', + channelDescription: 'Protect and nurture your true beauty. Banobagi Plastic Surgery — Board Certified Plastic Surgeon, 517 Nonhyeon-ro, Gangnam-gu, Seoul.', + linkedUrls: [ + { label: '바노바기 홈페이지', url: 'banobagi.com' }, + ], + playlists: [ + '안면윤곽', + '눈성형', + '코성형', + '가슴성형', + '지방체형', + '리프팅/동안성형', + ], + topVideos: [], + diagnosis: [ + { category: '영상 대비 구독자 전환율 낮음', detail: '925개 영상 누적됐으나 구독자 13K — 영상당 구독자 전환 매우 저조', severity: 'critical', evidenceIds: ['yt-channel'] }, + { category: '업로드 빈도 저하', detail: '최근 6개월 업로드 빈도 급감 — 알고리즘 노출 감소', severity: 'critical' }, + { category: '영문 브랜딩', detail: '채널 설명이 영문 위주 — 한국 시장 타겟팅 약함', severity: 'warning' }, + { category: '콘텐츠 카테고리화', detail: '재생목록 기본 구성 있음 — 썸네일/메타데이터 최적화 시 개선 여지', severity: 'warning' }, + ], + }, + + instagramAudit: { + accounts: [ + { + handle: '@banobagi_ps', + language: 'KR', + label: '공식 계정', + posts: 2000, + followers: 30000, + following: 150, + category: 'Health/beauty', + profileLink: 'banobagi.com', + highlights: ['안면윤곽', '눈성형', '코성형', '가슴성형', '리뷰'], + reelsCount: 10, + contentFormat: 'Before/After + 카드뉴스 혼합', + profilePhoto: '바노바기 블랙+골드 로고', + bio: '바노바기성형외과 공식 계정 · 02-1588-6508 · banobagi.com (실측치 수집 진행 중)', + }, + ], + diagnosis: [ + { category: 'Reels 활용 저조', detail: 'Reels 수가 카드뉴스 대비 현저히 적음 — 알고리즘 노출 불이익', severity: 'critical' }, + { category: 'YouTube ↔ Instagram 연동 부재', detail: 'YouTube 925개 영상 자산이 Instagram Reels 로 재활용되지 않음', severity: 'critical' }, + { category: '실측 데이터 수집 차단', detail: 'Firecrawl/공개 스크래핑 차단 — Chrome MCP 로 실측 교체 예정', severity: 'warning' }, + ], + }, + + facebookAudit: { + pages: [ + { + url: 'facebook.com/BanobagiPlasticSurgery', + pageName: 'Banobagi Plastic Surgery', + language: 'EN', + label: '국제 공식', + followers: 14000, + following: 0, + category: '성형외과 의사', + bio: 'Banobagi Plastic Surgery — Korean Premium Plastic Surgery Clinic', + logo: '공식 (블랙+골드)', + logoDescription: '블랙 배경 + 골드 "BANOBAGI" 워드마크 로고 — 공식 브랜드 자산', + link: 'banobagi.com', + linkedDomain: 'banobagi.com', + reviews: 0, + recentPostAge: '추정 1주 이내', + hasWhatsApp: true, + postFrequency: '월 2~4회 (실측 진행 중)', + topContentType: 'Before/After + 영문 시술 정보', + engagement: '게시물당 좋아요 10~80개 (추정)', + }, + ], + diagnosis: [ + { category: 'KR 네이티브 페이지 부재', detail: '국제 페이지만 운영 — 한국 사용자 접근성 낮음', severity: 'critical' }, + { category: '브랜드 콘텐츠 단조', detail: 'Before/After 위주 — 환자 여정/스토리/FAQ 콘텐츠 부족', severity: 'warning' }, + { category: '실측 데이터 수집 차단', detail: 'Firecrawl 차단 — Chrome MCP 로 실측 교체 예정', severity: 'warning' }, + ], + brandInconsistencies: [ + { + field: '로고', + values: [ + { channel: 'YouTube', value: 'BANOBAGI 영문 워드마크', isCorrect: true }, + { channel: 'Instagram', value: '바노바기 블랙+골드 로고 (실측 진행 중)', isCorrect: true }, + { channel: 'Facebook', value: '블랙+골드 워드마크', isCorrect: true }, + { channel: 'Website', value: '블랙+골드 공식 로고', isCorrect: true }, + ], + impact: '브랜드 시각 아이덴티티는 상대적으로 일관됨 — 컬러/폰트 가이드 강화 여지', + recommendation: '채널별 프로필 이미지 해상도 재검증 + 가로형/원형 버전 통일', + }, + ], + consolidationRecommendation: 'Facebook 국제 페이지(14K 추정) 유지하되, 한국 시장 전용 페이지 신규 개설 또는 Instagram KR 집중으로 전환 권장. 현재 상태는 한국 환자 유입 채널로 기능 안 함.', + }, + + otherChannels: [ + { name: '네이버 블로그', status: 'inactive', details: '공식 블로그 — 마지막 포스트 2023-04-21 (2년 이상 방치)', url: 'https://blog.naver.com/banobagips' }, + { name: '강남언니', status: 'active', details: '9.2점/10, 6,853 리뷰, 의료진 4명, 2000년 설립', url: 'https://www.gangnamunni.com/hospitals/23' }, + { name: '네이버 플레이스', status: 'active', details: '플레이스 운영 중 — 리뷰 응답률 최적화 필요', url: 'https://m.place.naver.com/hospital/11655270' }, + { name: 'TikTok', status: 'not_found', details: '계정 없음 또는 비활성' }, + { name: '카카오톡', status: 'active', details: '대표번호 02-1588-6508 연동', url: 'https://banobagi.com' }, + ], + + websiteAudit: { + primaryDomain: 'banobagi.com', + additionalDomains: [], + snsLinksOnSite: true, + snsLinksDetail: [ + { platform: 'YouTube', url: 'https://www.youtube.com/c/banobagips', location: 'Footer' }, + { platform: 'Instagram', url: 'https://www.instagram.com/banobagi_ps/', location: 'Footer' }, + { platform: 'Facebook', url: 'https://www.facebook.com/BanobagiPlasticSurgery', location: 'Footer' }, + { platform: 'Naver Blog', url: 'https://blog.naver.com/banobagips', location: 'Footer' }, + ], + trackingPixels: [ + { name: 'Facebook Pixel', installed: true, details: '설치 확인 (실측 진행 중)' }, + { name: 'Google Analytics', installed: true, details: 'GA4 추정' }, + { name: 'Naver Site Verification', installed: true }, + ], + mainCTA: '전화 상담 + 온라인 예약', + }, + + problemDiagnosis: [ + { + category: '콘텐츠 자산의 저활용', + detail: 'YouTube 925개 영상 · Instagram 2,000개 게시물 자산이 축적됐으나 채널 간 크로스포스팅·재활용 체계 부재. 영상당 평균 조회수가 구독자 대비 현저히 낮음.', + severity: 'critical', + }, + { + category: '네이버 블로그 2년 이상 방치', + detail: '마지막 포스트 2023-04-21 — SEO 자산이 완전히 잠자고 있음. 강남언니 유입 환자가 "바노바기 후기" 검색 시 공식 블로그가 노출되지 않음.', + severity: 'critical', + }, + { + category: '한국 시장용 SNS 채널 약화', + detail: 'Facebook 이 국제 페이지 위주, YouTube/Instagram 의 한국어 네이티브 콘텐츠 부족. 강남언니 6,853 리뷰 규모 대비 SNS 존재감이 비례하지 않음.', + severity: 'critical', + }, + ], + + transformation: { + ...mockReport.transformation, + brandIdentity: [ + { area: '로고', asIs: '블랙+골드 워드마크 (대체로 일관)', toBe: '가로형/원형 버전 규격화 + 고해상도 재발급' }, + { area: '컬러 팔레트', asIs: '블랙+골드 기조', toBe: 'Primary: Deep Black (#1A1A1A) + Accent Gold (#C8A96A) 체계 명문화' }, + { area: '프로필 사진', asIs: '채널별 해상도 편차', toBe: '모든 채널 동일 원형 로고 1080x1080 사용' }, + { area: '바이오 메시지', asIs: '영문 위주', toBe: '"26년 강남 대표 성형외과 — 바노바기" 한/영 통일' }, + { area: '해시태그', asIs: '비체계적', toBe: '#바노바기성형외과 #Banobagi #강남성형외과 #안면윤곽전문' }, + ], + platformStrategies: [ + { + platform: 'YouTube', + icon: 'youtube', + currentMetric: '13K subscribers · 925 videos', + targetMetric: '30K / 12개월', + strategies: [ + { strategy: 'Shorts 대량 재편집', detail: '925개 기존 영상에서 Shorts 200개 추출' }, + { strategy: '업로드 빈도 복구', detail: '주 2회 고정 (Shorts 1 + 롱폼 격주)' }, + { strategy: '썸네일 시스템화', detail: '블랙+골드 워드마크 워터마크 통일' }, + { strategy: '한글 타이틀 A/B 테스트', detail: '영문 설명 → 한글 + 영문 병기' }, + ], + }, + { + platform: 'Instagram', + icon: 'instagram', + currentMetric: '추정 30K followers (실측 진행 중)', + targetMetric: '60K / 12개월', + strategies: [ + { strategy: 'Reels 주 5개', detail: 'YouTube Shorts 와 동시 배포' }, + { strategy: '리뷰 스토리화', detail: '강남언니 6,853 리뷰 중 선별 → 카루셀 콘텐츠' }, + { strategy: 'Before/After 체계화', detail: '시술별 카테고리 하이라이트 재구성' }, + ], + }, + { + platform: '네이버 블로그', + icon: 'globe', + currentMetric: '마지막 포스트 2023-04-21', + targetMetric: '주 2회 게시', + strategies: [ + { strategy: '즉시 재가동', detail: '6월 내 주 2회 정기 포스팅 시작' }, + { strategy: 'YouTube 영상 블로그 임베드', detail: '시술별 영상 + 텍스트 가이드 구조' }, + { strategy: 'SEO 키워드 맵', detail: '"바노바기 후기/안면윤곽/V라인" 검색 상위 전략' }, + ], + }, + ], + websiteImprovements: [ + { area: 'SNS 링크', asIs: 'Footer 만 존재', toBe: 'Header 에도 주요 SNS 아이콘 추가' }, + { area: 'YouTube 임베드', asIs: '없음', toBe: '시술 페이지별 관련 영상 임베드' }, + { area: '블로그 허브', asIs: '웹사이트 ↔ 네이버블로그 연결 약함', toBe: '홈페이지에 블로그 최신 글 피드 배치' }, + ], + newChannelProposals: [ + { channel: 'TikTok', priority: 'P1', rationale: '20~30대 첫 수술 고민층 도달, YouTube Shorts 동시 배포' }, + { channel: '네이버 블로그 재가동', priority: 'P0', rationale: '2년 이상 방치 자산 — SEO 복구 최우선' }, + ], + }, + + roadmap: [ + { + month: 1, + title: 'Foundation', + subtitle: '기반 복구', + tasks: [ + { task: '브랜드 로고/컬러 가이드 명문화 (블랙+골드)', completed: false }, + { task: '전 채널 프로필/배너 고해상도 재발급', completed: false }, + { task: '네이버 블로그 재가동 — 6월 내 주 2회 시작', completed: false }, + { task: '925개 YouTube 영상 → Shorts 추출 작업 착수', completed: false }, + { task: '강남언니 리뷰 6,853개 중 50개 선별 → SNS 콘텐츠화', completed: false }, + ], + }, + { + month: 2, + title: 'Content Engine', + subtitle: '콘텐츠 엔진 가동', + tasks: [ + { task: 'YouTube Shorts 주 2회 업로드 시작', completed: false }, + { task: 'Instagram Reels 주 5회 업로드 시작', completed: false }, + { task: '네이버 블로그 시술 가이드 10편 게시', completed: false }, + { task: 'TikTok 계정 개설 + Shorts 동시 배포', completed: false }, + ], + }, + { + month: 3, + title: 'Optimization', + subtitle: '최적화 & 광고', + tasks: [ + { task: '콘텐츠 성과 분석 리포트 v1', completed: false }, + { task: '고성과 콘텐츠 기반 Instagram/Facebook 광고 세팅', completed: false }, + { task: '네이버 플레이스 리뷰 응답률 최적화', completed: false }, + { task: 'KPI 리뷰: 구독자/팔로워 성장률, 상담 전환 추적', completed: false }, + ], + }, + ], + + kpiDashboard: [ + { metric: 'YouTube 구독자', current: '13K', target3Month: '16K', target12Month: '30K' }, + { metric: 'YouTube Shorts 업로드', current: '비정기', target3Month: '주 2회', target12Month: '주 3회' }, + { metric: 'Instagram 팔로워', current: '30K (추정)', target3Month: '38K', target12Month: '60K' }, + { metric: 'Instagram Reels 평균 조회수', current: '낮음', target3Month: '5,000', target12Month: '20,000' }, + { metric: '네이버 블로그 포스팅 빈도', current: '방치 (2023-04)', target3Month: '주 2회', target12Month: '주 3회' }, + { metric: '강남언니 리뷰', current: '6,853', target3Month: '7,200', target12Month: '8,500' }, + { metric: '강남언니 리뷰 응답률', current: '미측정', target3Month: '50%', target12Month: '80%' }, + { metric: '콘텐츠 → 상담 전환', current: '측정 불가', target3Month: 'UTM 추적 시작', target12Month: '월 30건' }, + ], + + screenshots: [ + { + id: 'yt-channel', + url: '/assets/clients/banobagi/screenshots/yt-channel.png', + channel: 'YouTube', + capturedAt: '2026-04-14T10:00:00Z', + caption: 'YouTube @banobagips — 구독자 13K, 영상 925개 누적', + sourceUrl: 'https://www.youtube.com/c/banobagips', + }, + { + id: 'ig-profile', + url: '/assets/clients/banobagi/screenshots/ig-profile.png', + channel: 'Instagram', + capturedAt: '2026-04-14T10:02:00Z', + caption: 'Instagram @banobagi_ps — 공식 계정 (실측 수집 진행 중)', + sourceUrl: 'https://www.instagram.com/banobagi_ps/', + }, + { + id: 'fb-page', + url: '/assets/clients/banobagi/screenshots/fb-page.png', + channel: 'Facebook', + capturedAt: '2026-04-14T10:03:00Z', + caption: 'Facebook @BanobagiPlasticSurgery — 국제 공식 페이지 (실측 수집 진행 중)', + sourceUrl: 'https://www.facebook.com/BanobagiPlasticSurgery', + }, + { + id: 'gangnamunni', + url: '/assets/clients/banobagi/screenshots/gangnamunni.png', + channel: '강남언니', + capturedAt: '2026-04-14T10:04:00Z', + caption: '강남언니 — 9.2점/10, 6,853 리뷰, 의료진 4명, 2000년 설립', + sourceUrl: 'https://www.gangnamunni.com/hospitals/23', + }, + { + id: 'website-homepage', + url: '/assets/clients/banobagi/screenshots/website-homepage.png', + channel: 'Website', + capturedAt: '2026-04-14T10:05:00Z', + caption: 'banobagi.com — 공식 홈페이지', + sourceUrl: 'https://www.banobagi.com', + }, + { + id: 'naver-blog', + url: '/assets/clients/banobagi/screenshots/naver-blog.png', + channel: '네이버 블로그', + capturedAt: '2026-04-14T10:06:00Z', + caption: '네이버 블로그 @banobagips — 마지막 포스트 2023-04-21 (2년 이상 방치)', + sourceUrl: 'https://blog.naver.com/banobagips', + }, + ], +}; diff --git a/src/data/mockReport_grand.ts b/src/data/mockReport_grand.ts new file mode 100644 index 0000000..9b0c0bb --- /dev/null +++ b/src/data/mockReport_grand.ts @@ -0,0 +1,339 @@ +import type { MarketingReport } from '../types/report'; +import { mockReport } from './mockReport'; + +/** + * 그랜드성형외과 — 데모 리포트 + * + * 실측 (2026-04-14): + * - YouTube @grandsurgery_QnA: 구독자 2.37K, 영상 332개, 업로드 ~0/week + * - 주력: 안면거상·리프팅·코성형 Q&A 콘텐츠, 이세환 원장 + * - 강남구 압구정 위치 (압구정로) + * - Instagram @grand_korea · Facebook @grandps.korea · Blog grandprs + * - 강남언니 평점/리뷰 수 실측 예정 + */ +export const mockReportGrand: MarketingReport = { + ...mockReport, + id: 'grand', + createdAt: '2026-04-14', + targetUrl: 'https://www.grandps.com', + overallScore: 42, + + clinicSnapshot: { + ...mockReport.clinicSnapshot, + name: '그랜드성형외과', + nameEn: 'Grand Plastic Surgery', + established: '2005', + yearsInBusiness: 21, + staffCount: 3, + leadDoctor: { + name: '이세환', + credentials: '그랜드성형외과 대표원장 · 안면거상 전문', + rating: 8.7, + reviewCount: 1450, + }, + overallRating: 8.7, + totalReviews: 1450, + priceRange: { min: '200,000', max: '15,000,000+', currency: '₩' }, + certifications: [ + '성형외과 전문의', + '안면거상·리프팅 전문센터', + '분야별 집중 수술', + ], + mediaAppearances: ['강남언니 1,450 리뷰 (추정)', '유튜브 Q&A 전문 채널'], + medicalTourism: ['외국인 상담 지원'], + location: '서울 강남구 압구정로 (압구정역)', + nearestStation: '3호선 압구정역', + phone: '02-547-5100', + domain: 'grandps.com', + source: 'registry' as const, + registryData: { + district: '강남', + branches: '본점 1개', + brandGroup: '안면거상·리프팅 전문', + gangnamUnniUrl: 'https://www.gangnamunni.com/search?keyword=그랜드성형외과', + googleMapsUrl: 'https://maps.google.com/?q=그랜드성형외과', + }, + logoImages: { + circle: '/assets/clients/grand/logo-circle.png', + horizontal: '/assets/clients/grand/logo-horizontal.png', + korean: '/assets/clients/grand/logo-korean.png', + }, + brandColors: { + primary: '#1B3A6B', + accent: '#4A90D9', + text: '#1B3A6B', + }, + }, + + channelScores: [ + { channel: 'YouTube', icon: 'youtube', score: 28, maxScore: 100, status: 'critical', headline: '구독자 2.37K — 332개 영상 대비 전환율 매우 저조, 업로드 사실상 중단' }, + { channel: 'Instagram', icon: 'instagram', score: 40, maxScore: 100, status: 'critical', headline: '@grand_korea — 운영 중이나 Reels 활용 미흡 (실측 진행 중)' }, + { channel: 'Facebook', icon: 'facebook', score: 30, maxScore: 100, status: 'critical', headline: '@grandps.korea — 활성도 낮음 (실측 진행 중)' }, + { channel: '강남언니', icon: 'star', score: 72, maxScore: 100, status: 'warning', headline: '8.7점/10, 1,450 리뷰 — 응답 전략 부재' }, + { channel: 'Website', icon: 'globe', score: 55, maxScore: 100, status: 'warning', headline: 'grandps.com 운영 중 — SNS 연동·트래킹 고도화 필요' }, + { channel: '네이버 블로그', icon: 'globe', score: 35, maxScore: 100, status: 'critical', headline: 'blog.naver.com/grandprs — 최근 업로드 저조' }, + ], + + youtubeAudit: { + ...mockReport.youtubeAudit, + channelName: '그랜드성형외과Q&A', + handle: '@grandsurgery_QnA', + subscribers: 2370, + totalVideos: 332, + totalViews: 850000, + weeklyViewGrowth: { absolute: 400, percentage: 0.1 }, + estimatedMonthlyRevenue: { min: 5, max: 25 }, + avgVideoLength: '3.6분', + uploadFrequency: '~0/week (사실상 중단)', + channelCreatedDate: '2017-03-01', + subscriberRank: '', + channelDescription: '그랜드성형외과 Q&A 채널 — 안면거상·코성형·가슴성형 전문 의료 콘텐츠', + linkedUrls: [{ label: '그랜드성형외과', url: 'grandps.com' }], + playlists: ['그랜드 성형Q&A', '그랜드한 성형 정보', '성형 브이로그', '수술 후 주의사항'], + topVideos: [], + diagnosis: [ + { category: '구독자 전환율 극히 낮음', detail: '332개 영상 누적, 구독자 2.37K — 영상 1개당 평균 구독자 7명 수준', severity: 'critical', evidenceIds: ['yt-channel'] }, + { category: '업로드 사실상 중단', detail: '최근 업로드 빈도 주 0회 — YouTube 알고리즘 완전 이탈', severity: 'critical' }, + { category: 'Q&A 포맷 과다', detail: '짧은 Q&A 위주로 Shorts·Before/After 포맷 전환 필요', severity: 'warning' }, + ], + }, + + instagramAudit: { + accounts: [ + { + handle: '@grand_korea', + language: 'KR', + label: '공식 계정', + posts: 800, + followers: 12000, + following: 200, + category: 'Health/beauty', + profileLink: 'grandps.com', + highlights: ['안면거상', '코성형', '가슴성형', '눈성형', '후기'], + reelsCount: 20, + contentFormat: '시술 설명 + Q&A 카드뉴스', + profilePhoto: '그랜드성형외과 공식 로고', + bio: '그랜드성형외과 공식 계정 · 압구정 · grandps.com (실측 진행 중)', + }, + ], + diagnosis: [ + { category: 'Reels 비중 낮음', detail: '카드뉴스·이미지 위주 — Reels 알고리즘 혜택 미활용', severity: 'critical' }, + { category: 'YouTube 자산 미활용', detail: '332개 영상이 Instagram Reels로 재편집되지 않음', severity: 'critical' }, + ], + }, + + facebookAudit: { + pages: [ + { + url: 'facebook.com/grandps.korea', + pageName: 'Grand Plastic Surgery', + language: 'KR', + label: '공식', + followers: 5000, + following: 0, + category: '성형외과', + bio: '그랜드성형외과 공식 Facebook', + logo: '공식 로고', + logoDescription: '그랜드성형외과 공식 로고', + link: 'grandps.com', + linkedDomain: 'grandps.com', + reviews: 0, + recentPostAge: '추정 수주 이내', + hasWhatsApp: false, + postFrequency: '월 2~4회 (실측 진행 중)', + topContentType: '시술 정보 + 이벤트', + engagement: '게시물당 좋아요 5~30개 (추정)', + }, + ], + diagnosis: [ + { category: '낮은 Facebook 존재감', detail: '팔로워 5K 수준 — 콘텐츠 일관성 및 빈도 강화 필요', severity: 'warning' }, + ], + brandInconsistencies: [], + consolidationRecommendation: 'Facebook을 유지하되 YouTube·Instagram 우선 집중 권장.', + }, + + otherChannels: [ + { name: '네이버 블로그', status: 'unknown', details: '공식 블로그 운영 중 — 최근 업로드 저조', url: 'https://blog.naver.com/grandprs' }, + { name: '강남언니', status: 'active', details: '8.7점/10, 1,450 리뷰 (추정) · 안면거상 전문병원', url: 'https://www.gangnamunni.com/search?keyword=그랜드성형외과' }, + { name: '네이버 플레이스', status: 'active', details: '플레이스 운영 중', url: 'https://map.naver.com/v5/search/그랜드성형외과' }, + { name: 'TikTok', status: 'not_found', details: '계정 없음 또는 비활성' }, + ], + + websiteAudit: { + primaryDomain: 'grandps.com', + additionalDomains: [], + snsLinksOnSite: true, + snsLinksDetail: [ + { platform: 'YouTube', url: 'https://www.youtube.com/channel/UCU2o_aHqsNFuqwtdzVM3xbQ', location: 'Footer' }, + { platform: 'Instagram', url: 'https://www.instagram.com/grand_korea', location: 'Footer' }, + { platform: 'Facebook', url: 'https://www.facebook.com/grandps.korea', location: 'Footer' }, + { platform: 'Naver Blog', url: 'https://blog.naver.com/grandprs', location: 'Footer' }, + ], + trackingPixels: [ + { name: 'Google Analytics', installed: true, details: 'GA4 추정' }, + { name: 'Naver Site Verification', installed: true }, + ], + mainCTA: '전화 상담 + 온라인 예약', + }, + + problemDiagnosis: [ + { + category: 'YouTube 332개 영상 자산 완전 방치', + detail: '6년간 누적된 332개 Q&A 영상이 구독자 2.37K에 그침. 업로드 중단 상태로 알고리즘 완전 이탈. Shorts 재편집 시 즉시 노출 회복 가능성.', + severity: 'critical', + }, + { + category: '전 채널 콘텐츠 빈도 급감', + detail: 'YouTube·Instagram·Blog 모두 업로드 빈도가 현저히 줄어 신규 환자 유입 경로가 거의 없는 상태.', + severity: 'critical', + }, + { + category: '안면거상 전문성이 SNS에 미반영', + detail: '이세환 원장의 안면거상 전문성은 오프라인에서 입증됐으나 SNS/YouTube에서 전문가 포지셔닝 콘텐츠가 부족.', + severity: 'critical', + }, + ], + + transformation: { + ...mockReport.transformation, + brandIdentity: [ + { area: '로고', asIs: '공식 로고 존재', toBe: '가로형/원형 고해상도 버전 표준화' }, + { area: '컬러', asIs: '블루 계열', toBe: 'Primary: Navy Blue (#1B3A6B) + Accent: Sky Blue (#4A90D9) 명문화' }, + { area: '전문성 포지셔닝', asIs: '일반 성형외과', toBe: '"압구정 안면거상·리프팅 전문" 명확화' }, + ], + platformStrategies: [ + { + platform: 'YouTube', + icon: 'youtube', + currentMetric: '2.37K subscribers · 332 videos', + targetMetric: '10K / 12개월', + strategies: [ + { strategy: 'Shorts 재편집 즉시 시작', detail: '332개 영상에서 Shorts 100개 추출 · 안면거상 특화' }, + { strategy: '주 2회 업로드 재개', detail: 'Q&A Shorts + 롱폼 안면거상 케이스 교차' }, + { strategy: '이세환 원장 전문가 시리즈', detail: '"압구정 안면거상 전문의가 말하는" 브랜디드 시리즈' }, + ], + }, + { + platform: 'Instagram', + icon: 'instagram', + currentMetric: '추정 12K followers (실측 진행 중)', + targetMetric: '25K / 12개월', + strategies: [ + { strategy: 'Before/After Reels 주 4회', detail: 'YouTube Shorts와 동시 배포' }, + { strategy: '강남언니 리뷰 스토리화', detail: '1,450 리뷰 중 선별 → 카루셀' }, + ], + }, + { + platform: '네이버 블로그', + icon: 'globe', + currentMetric: '업로드 저조', + targetMetric: '주 2회 게시', + strategies: [ + { strategy: '안면거상 SEO 전략', detail: '"압구정 안면거상", "딥플레인 거상" 키워드 집중' }, + { strategy: 'YouTube 임베드 블로그', detail: '영상 + 텍스트 설명 구조' }, + ], + }, + ], + websiteImprovements: [ + { area: 'YouTube 임베드', asIs: '없음', toBe: '시술 페이지별 관련 Q&A 영상 임베드' }, + { area: 'SNS 링크', asIs: 'Footer만', toBe: 'Header에 YouTube 아이콘 추가' }, + ], + newChannelProposals: [ + { channel: 'TikTok', priority: 'P1', rationale: '30~40대 안면거상 고민층, YouTube Shorts 동시 배포' }, + ], + }, + + roadmap: [ + { + month: 1, + title: 'Foundation', + subtitle: '채널 재가동', + tasks: [ + { task: 'YouTube Shorts 재편집 착수 (332개 → Shorts 50개)', completed: false }, + { task: '이세환 원장 전문가 시리즈 기획', completed: false }, + { task: 'Instagram Reels 주 3회 업로드 시작', completed: false }, + { task: '네이버 블로그 주 2회 재가동', completed: false }, + ], + }, + { + month: 2, + title: 'Content Engine', + subtitle: '콘텐츠 엔진', + tasks: [ + { task: 'YouTube Shorts 주 3회 업로드', completed: false }, + { task: '안면거상 Before/After 시리즈 10편', completed: false }, + { task: '강남언니 리뷰 응답률 50% 달성', completed: false }, + ], + }, + { + month: 3, + title: 'Optimization', + subtitle: '최적화', + tasks: [ + { task: '성과 리포트 v1 — 구독자·팔로워 성장률 측정', completed: false }, + { task: 'Instagram·Facebook 유료 광고 세팅', completed: false }, + { task: 'KPI 리뷰 및 전략 조정', completed: false }, + ], + }, + ], + + kpiDashboard: [ + { metric: 'YouTube 구독자', current: '2.37K', target3Month: '4K', target12Month: '10K' }, + { metric: 'YouTube Shorts 업로드', current: '사실상 0/week', target3Month: '주 3회', target12Month: '주 4회' }, + { metric: 'Instagram 팔로워', current: '12K (추정)', target3Month: '15K', target12Month: '25K' }, + { metric: '네이버 블로그 포스팅', current: '저조', target3Month: '주 2회', target12Month: '주 3회' }, + { metric: '강남언니 리뷰', current: '1,450 (추정)', target3Month: '1,700', target12Month: '2,500' }, + { metric: '강남언니 리뷰 응답률', current: '미측정', target3Month: '50%', target12Month: '80%' }, + ], + + screenshots: [ + { + id: 'yt-channel', + url: '/assets/clients/grand/screenshots/yt-channel.png', + channel: 'YouTube', + capturedAt: '2026-04-14T10:00:00Z', + caption: '그랜드성형외과Q&A @grandsurgery_QnA — 구독자 2.37K, 영상 332개, 업로드 ~0/week', + sourceUrl: 'https://www.youtube.com/channel/UCU2o_aHqsNFuqwtdzVM3xbQ', + }, + { + id: 'ig-profile', + url: '/assets/clients/grand/screenshots/ig-profile.png', + channel: 'Instagram', + capturedAt: '2026-04-14T10:02:00Z', + caption: 'Instagram @grand_korea — 공식 계정 (실측 진행 중)', + sourceUrl: 'https://www.instagram.com/grand_korea/', + }, + { + id: 'fb-page', + url: '/assets/clients/grand/screenshots/fb-page.png', + channel: 'Facebook', + capturedAt: '2026-04-14T10:03:00Z', + caption: 'Facebook @grandps.korea — 공식 페이지 (실측 진행 중)', + sourceUrl: 'https://www.facebook.com/grandps.korea', + }, + { + id: 'gangnamunni', + url: '/assets/clients/grand/screenshots/gangnamunni.png', + channel: '강남언니', + capturedAt: '2026-04-14T10:04:00Z', + caption: '강남언니 — 그랜드성형외과 (실측 진행 중)', + sourceUrl: 'https://www.gangnamunni.com/search?keyword=그랜드성형외과', + }, + { + id: 'website-homepage', + url: '/assets/clients/grand/screenshots/website-homepage.png', + channel: 'Website', + capturedAt: '2026-04-14T10:05:00Z', + caption: 'grandps.com — 공식 홈페이지', + sourceUrl: 'https://www.grandps.com', + }, + { + id: 'naver-blog', + url: '/assets/clients/grand/screenshots/naver-blog.png', + channel: '네이버 블로그', + capturedAt: '2026-04-14T10:06:00Z', + caption: '네이버 블로그 @grandprs — 최근 업로드 저조', + sourceUrl: 'https://blog.naver.com/grandprs', + }, + ], +}; diff --git a/src/data/mockReport_irum.ts b/src/data/mockReport_irum.ts new file mode 100644 index 0000000..af1cf2a --- /dev/null +++ b/src/data/mockReport_irum.ts @@ -0,0 +1,347 @@ +import type { MarketingReport } from '../types/report'; +import { mockReport } from './mockReport'; + +/** + * 이룸성형외과 (서울아이) — 데모 리포트 + * + * 실측 (2026-04-14): + * - YouTube @SEOULiPS. (서울아이 Seoul i Plastic Surgery): 구독자 322명, 영상 155개 + * - Instagram: @seoulips (KR) · @seouli_ps_th (태국) · @seouli_jp (일본) + * - Facebook: 서울아이성형외과 페이지 + * - Blog: blog.naver.com/seoulips · 카페: cafe.naver.com/seoulips + * - 홈페이지: seoulips.com (seoulipsmedical.com도 운영) + * - 특징: 코성형·눈밑지방·실리프팅 전문, KR/TH/JP 3개국 다국어 계정 + */ +export const mockReportIrum: MarketingReport = { + ...mockReport, + id: 'irum', + createdAt: '2026-04-14', + targetUrl: 'https://www.seoulips.com', + overallScore: 35, + + clinicSnapshot: { + ...mockReport.clinicSnapshot, + name: '이룸성형외과 (서울아이)', + nameEn: 'Seoul i Plastic Surgery', + established: '2015', + yearsInBusiness: 11, + staffCount: 3, + leadDoctor: { + name: '서울아이 의료진', + credentials: '서울아이성형외과 · 코성형·눈밑지방·리프팅 전문', + rating: 8.3, + reviewCount: 820, + }, + overallRating: 8.3, + totalReviews: 820, + priceRange: { min: '100,000', max: '8,000,000+', currency: '₩' }, + certifications: [ + '성형외과 전문의', + '코성형·눈밑지방 전문', + '한·태·일 다국어 상담', + '리팟레이저 도입', + ], + mediaAppearances: ['강남언니 820 리뷰 (추정)', '태국·일본 외국인 환자 특화'], + medicalTourism: ['태국어·일본어 Instagram 계정 운영', '외국인 전용 코디네이터'], + location: '서울 강남구 (강남역 인근)', + nearestStation: '2호선 강남역', + phone: '02-555-0900', + domain: 'seoulips.com', + source: 'registry' as const, + registryData: { + district: '강남', + branches: '본점 1개', + brandGroup: '코성형·외국인 환자 특화', + gangnamUnniUrl: 'https://www.gangnamunni.com/search?keyword=이룸성형외과', + googleMapsUrl: 'https://maps.google.com/?q=서울아이성형외과', + }, + logoImages: { + circle: '/assets/clients/irum/logo-circle.png', + horizontal: '/assets/clients/irum/logo-horizontal.png', + korean: '/assets/clients/irum/logo-korean.png', + }, + brandColors: { + primary: '#0D4F3C', + accent: '#2ECC71', + text: '#0D4F3C', + }, + }, + + channelScores: [ + { channel: 'YouTube', icon: 'youtube', score: 18, maxScore: 100, status: 'critical', headline: '@SEOULiPS. — 구독자 322명 · 155개 영상 · 성장 정체' }, + { channel: 'Instagram', icon: 'instagram', score: 52, maxScore: 100, status: 'warning', headline: '3개국 계정 운영 (KR/TH/JP) — 강점, 채널간 연계 전략 부재' }, + { channel: 'Facebook', icon: 'facebook', score: 25, maxScore: 100, status: 'critical', headline: '서울아이성형외과 페이지 — 활성도 낮음 (실측 진행 중)' }, + { channel: '강남언니', icon: 'star', score: 65, maxScore: 100, status: 'warning', headline: '8.3점/10, 820 리뷰 — 리뷰 응답·마케팅 활용 미흡' }, + { channel: 'Website', icon: 'globe', score: 45, maxScore: 100, status: 'warning', headline: 'seoulips.com 운영 — 다국어 랜딩 최적화 필요' }, + { channel: '네이버 블로그', icon: 'globe', score: 38, maxScore: 100, status: 'critical', headline: 'blog.naver.com/seoulips — 업로드 저조' }, + ], + + youtubeAudit: { + ...mockReport.youtubeAudit, + channelName: '서울아이 Seoul i Plastic Surgery', + handle: '@SEOULiPS.', + subscribers: 322, + totalVideos: 155, + totalViews: 180000, + weeklyViewGrowth: { absolute: 200, percentage: 0.1 }, + estimatedMonthlyRevenue: { min: 0, max: 10 }, + avgVideoLength: '4.5분', + uploadFrequency: '비정기 (월 1~2회)', + channelCreatedDate: '2019-06-01', + subscriberRank: '', + channelDescription: '안전하고 바른 성형을 위해 서울아이는 항상 노력합니다. — 코성형·눈밑지방·실리프팅', + linkedUrls: [{ label: '서울아이성형외과', url: 'seoulipsmedical.com' }], + playlists: ['Before & After', '리얼모델', '1분 지식', '전문의가 알려주는 성형'], + topVideos: [], + diagnosis: [ + { category: 'YouTube 성장 사실상 정체', detail: '155개 영상, 구독자 322명 — 영상당 평균 구독자 2명 미만. YouTube 전략 전면 재설계 필요', severity: 'critical', evidenceIds: ['yt-channel'] }, + { category: '다국어 YouTube 콘텐츠 부재', detail: '태국·일본 Instagram 계정 운영 중이나 YouTube에는 다국어 자막/콘텐츠 없음', severity: 'critical' }, + { category: '전문의 Q&A 콘텐츠 발굴 필요', detail: '코성형·눈밑지방 전문성을 YouTube에서 전달하는 교육 콘텐츠 부재', severity: 'warning' }, + ], + }, + + instagramAudit: { + accounts: [ + { + handle: '@seoulips', + language: 'KR', + label: 'KR 공식', + posts: 600, + followers: 15000, + following: 200, + category: 'Health/beauty', + profileLink: 'seoulips.com', + highlights: ['코성형', '눈밑지방', '리프팅', '후기', '이벤트'], + reelsCount: 30, + contentFormat: 'Before/After + 시술 설명', + profilePhoto: '서울아이 공식 로고', + bio: '서울아이성형외과 KR 공식 (실측 진행 중)', + }, + { + handle: '@seouli_ps_th', + language: 'EN', + label: '태국', + posts: 200, + followers: 5000, + following: 100, + category: 'Health/beauty', + profileLink: 'seoulips.com', + highlights: [], + reelsCount: 15, + contentFormat: '태국어 시술 정보', + profilePhoto: '서울아이 로고', + bio: '서울아이성형외과 태국 채널 (실측 진행 중)', + }, + ], + diagnosis: [ + { category: 'Instagram 다국어 강점 미최적화', detail: 'KR/TH/JP 3개 계정 운영은 강점이나 채널 간 콘텐츠 공유 체계 없음', severity: 'warning' }, + { category: 'Reels 부족', detail: '국제 계정에서 Reels 활용이 낮아 알고리즘 노출 손실', severity: 'critical' }, + ], + }, + + facebookAudit: { + pages: [ + { + url: 'facebook.com/서울아이성형외과-105199207892670', + pageName: '서울아이성형외과', + language: 'KR', + label: '공식', + followers: 2500, + following: 0, + category: '성형외과', + bio: '서울아이성형외과 공식 Facebook', + logo: '공식 로고', + logoDescription: '서울아이성형외과 로고', + link: 'seoulips.com', + linkedDomain: 'seoulips.com', + reviews: 0, + recentPostAge: '추정 수주 이내', + hasWhatsApp: false, + postFrequency: '월 1~3회 (실측 진행 중)', + topContentType: '시술 정보', + engagement: '게시물당 좋아요 5~20개 (추정)', + }, + ], + diagnosis: [ + { category: 'Facebook 존재감 극히 낮음', detail: '팔로워 2.5K — 외국인 환자 타겟 FB 광고 전혀 미활용', severity: 'critical' }, + ], + brandInconsistencies: [], + consolidationRecommendation: 'Facebook 외국인 환자 광고 채널로 재정의 — 태국·일본어 타겟 광고 세팅 우선.', + }, + + otherChannels: [ + { name: '네이버 블로그', status: 'unknown', details: '공식 블로그 운영 중 — 업로드 저조', url: 'https://blog.naver.com/seoulips' }, + { name: '네이버 카페', status: 'active', details: '서울아이 카페 운영 중', url: 'https://cafe.naver.com/seoulips' }, + { name: '강남언니', status: 'unknown', details: '8.3점/10, 820 리뷰 (추정)', url: 'https://www.gangnamunni.com/search?keyword=이룸성형외과' }, + { name: '네이버 플레이스', status: 'active', details: '플레이스 운영 중', url: 'https://map.naver.com/v5/search/서울아이성형외과' }, + ], + + websiteAudit: { + primaryDomain: 'seoulips.com', + additionalDomains: [{ domain: 'seoulipsmedical.com', purpose: '영문 홈페이지' }], + snsLinksOnSite: true, + snsLinksDetail: [ + { platform: 'YouTube', url: 'https://www.youtube.com/channel/UCYcssdFunRLmD8b376Y6ykg', location: 'Footer' }, + { platform: 'Instagram', url: 'https://www.instagram.com/seoulips/', location: 'Footer' }, + { platform: 'Facebook', url: 'https://www.facebook.com/서울아이성형외과-105199207892670/', location: 'Footer' }, + { platform: 'Naver Blog', url: 'https://blog.naver.com/seoulips', location: 'Footer' }, + ], + trackingPixels: [ + { name: 'Google Analytics', installed: true, details: 'GA4 추정' }, + ], + mainCTA: '전화 상담 + 카카오톡', + }, + + problemDiagnosis: [ + { + category: 'YouTube 성장 완전 정체 — 즉각적 전략 재설계 필요', + detail: '155개 영상 누적, 구독자 322명. 태국·일본 인스타그램 계정을 운영하는 글로벌 강점이 YouTube에 전혀 반영 안 됨. 다국어 자막 추가만으로도 즉시 도달 확장 가능.', + severity: 'critical', + }, + { + category: '다국어 SNS 강점의 크로스채널 미연계', + detail: 'KR·TH·JP 3개 Instagram 계정이라는 희귀한 강점이 있으나 YouTube·Blog·강남언니와 연동 없음. 채널 간 시너지 0% 상태.', + severity: 'critical', + }, + { + category: '외국인 환자 디지털 전환 경로 부재', + detail: '태국·일본 계정 팔로워가 있으나 예약·상담으로 이어지는 랜딩 경로가 다국어로 준비되지 않음. 유입 대비 전환 극히 낮을 것으로 추정.', + severity: 'critical', + }, + ], + + transformation: { + ...mockReport.transformation, + brandIdentity: [ + { area: '브랜드 아이덴티티', asIs: '서울아이 / 이룸 혼용', toBe: '"Seoul i Plastic Surgery" 영문 브랜드 통일 + 다국어 로고 버전 제작' }, + { area: '컬러', asIs: '미확인', toBe: 'Primary: Forest Green (#0D4F3C) + Accent: Mint (#2ECC71) 명문화' }, + { area: '글로벌 포지셔닝', asIs: '국내 위주', toBe: '"서울 강남 K-Beauty 전문 — 태국·일본 환자 환영"' }, + ], + platformStrategies: [ + { + platform: 'YouTube', + icon: 'youtube', + currentMetric: '322 subscribers · 155 videos', + targetMetric: '3K / 12개월', + strategies: [ + { strategy: '다국어 자막 추가', detail: '기존 155개 영상에 EN/TH/JP 자막 추가 → 즉시 글로벌 노출' }, + { strategy: '주 2회 업로드 정착', detail: '코성형·눈밑지방 전문의 Q&A + 외국인 환자 브이로그' }, + { strategy: 'Shorts 전환', detail: '기존 영상에서 Shorts 50개 추출' }, + ], + }, + { + platform: 'Instagram', + icon: 'instagram', + currentMetric: '3개국 계정 합산 ~20K (추정)', + targetMetric: '@seoulips KR 30K / 12개월', + strategies: [ + { strategy: '계정 간 콘텐츠 연계 자동화', detail: 'KR → TH/JP 번역 배포 파이프라인 구축' }, + { strategy: 'Reels 주 5회 (전 계정)', detail: 'YouTube Shorts 동시 다국어 배포' }, + { strategy: '820 리뷰 콘텐츠화', detail: '강남언니 리뷰 → Instagram Story' }, + ], + }, + ], + websiteImprovements: [ + { area: '다국어 랜딩페이지', asIs: '한국어 위주', toBe: 'TH·JP 전용 랜딩페이지 제작' }, + { area: 'YouTube 임베드', asIs: '없음', toBe: '시술 페이지별 다국어 자막 영상 임베드' }, + ], + newChannelProposals: [ + { channel: 'LINE (일본)', priority: 'P0', rationale: '일본 환자 전환 채널 — 현재 일본 인스타는 있으나 직접 상담 경로 없음' }, + { channel: 'TikTok', priority: 'P1', rationale: '태국/동남아 10~20대 도달, Shorts 동시 배포' }, + ], + }, + + roadmap: [ + { + month: 1, + title: 'Foundation', + subtitle: '다국어 기반', + tasks: [ + { task: '브랜드 아이덴티티 통일 (Seoul i 영문 브랜드)', completed: false }, + { task: '기존 YouTube 영상 EN/TH 자막 추가 (우선 30개)', completed: false }, + { task: 'Instagram KR/TH/JP 크로스 배포 루틴 구축', completed: false }, + { task: '강남언니 820 리뷰 SNS 콘텐츠화', completed: false }, + ], + }, + { + month: 2, + title: 'Content Engine', + subtitle: '글로벌 노출', + tasks: [ + { task: 'YouTube 주 2회 업로드 정착 (다국어 자막 포함)', completed: false }, + { task: 'TikTok 계정 개설 + Shorts 동시 배포', completed: false }, + { task: '태국·일본어 랜딩페이지 v1 제작', completed: false }, + ], + }, + { + month: 3, + title: 'Optimization', + subtitle: '전환 추적', + tasks: [ + { task: '국가별 환자 유입·전환율 분석', completed: false }, + { task: 'Facebook 태국·일본 광고 캠페인 시작', completed: false }, + { task: 'KPI 리뷰', completed: false }, + ], + }, + ], + + kpiDashboard: [ + { metric: 'YouTube 구독자', current: '322', target3Month: '800', target12Month: '3,000' }, + { metric: 'YouTube 업로드 빈도', current: '월 1~2회', target3Month: '주 2회', target12Month: '주 3회' }, + { metric: 'Instagram @seoulips 팔로워', current: '15K (추정)', target3Month: '19K', target12Month: '30K' }, + { metric: 'Instagram 태국(@seouli_ps_th) 팔로워', current: '5K (추정)', target3Month: '8K', target12Month: '15K' }, + { metric: '강남언니 리뷰', current: '820 (추정)', target3Month: '1,000', target12Month: '1,500' }, + { metric: '외국인 환자 전환', current: '측정 불가', target3Month: '랜딩 UTM 시작', target12Month: '월 15건' }, + ], + + screenshots: [ + { + id: 'yt-channel', + url: '/assets/clients/irum/screenshots/yt-channel.png', + channel: 'YouTube', + capturedAt: '2026-04-14T10:00:00Z', + caption: '서울아이 Seoul i @SEOULiPS. — 구독자 322명, 영상 155개', + sourceUrl: 'https://www.youtube.com/channel/UCYcssdFunRLmD8b376Y6ykg', + }, + { + id: 'ig-profile', + url: '/assets/clients/irum/screenshots/ig-profile.png', + channel: 'Instagram', + capturedAt: '2026-04-14T10:02:00Z', + caption: 'Instagram @seoulips — KR 공식 (실측 진행 중)', + sourceUrl: 'https://www.instagram.com/seoulips/', + }, + { + id: 'fb-page', + url: '/assets/clients/irum/screenshots/fb-page.png', + channel: 'Facebook', + capturedAt: '2026-04-14T10:03:00Z', + caption: 'Facebook 서울아이성형외과 — 공식 페이지 (실측 진행 중)', + sourceUrl: 'https://www.facebook.com/서울아이성형외과-105199207892670/', + }, + { + id: 'gangnamunni', + url: '/assets/clients/irum/screenshots/gangnamunni.png', + channel: '강남언니', + capturedAt: '2026-04-14T10:04:00Z', + caption: '강남언니 — 이룸(서울아이)성형외과 (실측 진행 중)', + sourceUrl: 'https://www.gangnamunni.com/search?keyword=이룸성형외과', + }, + { + id: 'website-homepage', + url: '/assets/clients/irum/screenshots/website-homepage.png', + channel: 'Website', + capturedAt: '2026-04-14T10:05:00Z', + caption: 'seoulips.com — 공식 홈페이지', + sourceUrl: 'https://www.seoulips.com', + }, + { + id: 'naver-blog', + url: '/assets/clients/irum/screenshots/naver-blog.png', + channel: '네이버 블로그', + capturedAt: '2026-04-14T10:06:00Z', + caption: '네이버 블로그 @seoulips — 업로드 저조', + sourceUrl: 'https://blog.naver.com/seoulips', + }, + ], +}; diff --git a/src/data/mockReport_ts.ts b/src/data/mockReport_ts.ts new file mode 100644 index 0000000..ddea283 --- /dev/null +++ b/src/data/mockReport_ts.ts @@ -0,0 +1,331 @@ +import type { MarketingReport } from '../types/report'; +import { mockReport } from './mockReport'; + +/** + * 티에스성형외과 — 데모 리포트 + * + * 실측 (2026-04-14): + * - YouTube 티에스TV (@TV-jm9dy): 구독자 8K, 영상 715개, 주 1~2회 업로드 + * - 주력: 눈·코·가슴 종합, 신사역 강남구 + * - Instagram: @tsprs_official · Facebook: @tsprs + * - Blog: blog.naver.com/tsprs + * - 홈페이지: tsprs.com (tsprs.co.kr 오류 확인 → tsprs.com이 올바른 URL) + * - 강남언니: 평점/리뷰 실측 예정 + */ +export const mockReportTs: MarketingReport = { + ...mockReport, + id: 'ts', + createdAt: '2026-04-14', + targetUrl: 'https://www.tsprs.com', + overallScore: 55, + + clinicSnapshot: { + ...mockReport.clinicSnapshot, + name: '티에스성형외과', + nameEn: 'TS Plastic Surgery', + established: '2010', + yearsInBusiness: 16, + staffCount: 5, + leadDoctor: { + name: 'TS 성형팀', + credentials: '티에스성형외과 의료진 · 눈·코·가슴 종합', + rating: 8.5, + reviewCount: 2100, + }, + overallRating: 8.5, + totalReviews: 2100, + priceRange: { min: '100,000', max: '10,000,000+', currency: '₩' }, + certifications: [ + '성형외과 전문의', + '눈·코·가슴 종합 성형', + '리얼모델 시스템', + ], + mediaAppearances: ['강남언니 2,100 리뷰 (추정)', '유튜브 리얼모델 콘텐츠'], + medicalTourism: ['외국인 상담 지원 (인도네시아 인플루언서 방문 기록)'], + location: '서울 강남구 신사동 (신사역)', + nearestStation: '3호선 신사역', + phone: '02-512-7580', + domain: 'tsprs.com', + source: 'registry' as const, + registryData: { + district: '강남', + branches: '본점 1개', + brandGroup: '눈·코·가슴 종합 성형', + gangnamUnniUrl: 'https://www.gangnamunni.com/search?keyword=티에스성형외과', + googleMapsUrl: 'https://maps.google.com/?q=티에스성형외과', + }, + logoImages: { + circle: '/assets/clients/ts/logo-circle.png', + horizontal: '/assets/clients/ts/logo-horizontal.png', + korean: '/assets/clients/ts/logo-korean.png', + }, + brandColors: { + primary: '#1A1A2E', + accent: '#E94560', + text: '#1A1A2E', + }, + }, + + channelScores: [ + { channel: 'YouTube', icon: 'youtube', score: 58, maxScore: 100, status: 'warning', headline: '티에스TV 구독자 8K · 715개 영상 — 활발하나 전환율 개선 필요' }, + { channel: 'Instagram', icon: 'instagram', score: 62, maxScore: 100, status: 'warning', headline: '@tsprs_official — 리얼모델 콘텐츠 강점, Reels 빈도 증대 필요' }, + { channel: 'Facebook', icon: 'facebook', score: 38, maxScore: 100, status: 'critical', headline: '@tsprs — 운영 중이나 활성도 낮음 (실측 진행 중)' }, + { channel: '강남언니', icon: 'star', score: 78, maxScore: 100, status: 'warning', headline: '8.5점/10, 2,100 리뷰 — 응답 전략 강화 필요' }, + { channel: 'Website', icon: 'globe', score: 60, maxScore: 100, status: 'warning', headline: 'tsprs.com 운영 — SNS 연동 및 트래킹 개선 여지' }, + { channel: '네이버 블로그', icon: 'globe', score: 45, maxScore: 100, status: 'warning', headline: 'blog.naver.com/tsprs — 업로드 있으나 빈도 보완 필요' }, + ], + + youtubeAudit: { + ...mockReport.youtubeAudit, + channelName: '티에스TV', + handle: '@TV-jm9dy', + subscribers: 8000, + totalVideos: 715, + totalViews: 5200000, + weeklyViewGrowth: { absolute: 3000, percentage: 0.6 }, + estimatedMonthlyRevenue: { min: 40, max: 150 }, + avgVideoLength: '3.2분', + uploadFrequency: '주 1~2회', + channelCreatedDate: '2018-01-01', + subscriberRank: '', + channelDescription: '지금, 예뻐져라! 티에스성형외과 — 눈·코·가슴·리프팅 전문', + linkedUrls: [{ label: '티에스성형외과', url: 'tsprs.com' }], + playlists: ['티에스 Real Model', '티에스 Lab', '티에스 Play', '티에스 소개'], + topVideos: [], + diagnosis: [ + { category: '구독자 전환율 낮음', detail: '715개 영상 대비 구독자 8K — Shorts와 롱폼 균형 재조정 필요', severity: 'warning', evidenceIds: ['yt-channel'] }, + { category: '리얼모델 콘텐츠 강점 활용 미흡', detail: '리얼모델 시리즈가 강점이나 검색 최적화·썸네일 시스템화가 부족', severity: 'warning' }, + { category: '업로드 일관성 유지', detail: '주 1~2회 업로드 — 주 3회로 상향 시 알고리즘 노출 증가 기대', severity: 'warning' }, + ], + }, + + instagramAudit: { + accounts: [ + { + handle: '@tsprs_official', + language: 'KR', + label: '공식 계정', + posts: 1500, + followers: 35000, + following: 250, + category: 'Health/beauty', + profileLink: 'tsprs.com', + highlights: ['눈성형', '코성형', '가슴성형', '리얼모델', '이벤트'], + reelsCount: 60, + contentFormat: 'Reels + 리얼모델 Before/After', + profilePhoto: '티에스성형외과 공식 로고', + bio: '지금, 예뻐져라! 티에스성형외과 @tsprs_official (실측 진행 중)', + }, + ], + diagnosis: [ + { category: 'Reels 비중 확대 여지', detail: '60개 Reels — 목표 100개+ 달성 시 알고리즘 노출 2배 기대', severity: 'warning' }, + { category: '리얼모델 계정 연계', detail: 'YouTube 리얼모델 브이로그 → Instagram 하이라이트 연계 미흡', severity: 'warning' }, + ], + }, + + facebookAudit: { + pages: [ + { + url: 'facebook.com/tsprs', + pageName: 'TS Plastic Surgery', + language: 'KR', + label: '공식', + followers: 8000, + following: 0, + category: '성형외과', + bio: '티에스성형외과 공식 Facebook — 강남 신사역', + logo: '공식 로고', + logoDescription: '티에스성형외과 공식 로고', + link: 'tsprs.com', + linkedDomain: 'tsprs.com', + reviews: 0, + recentPostAge: '추정 수주 이내', + hasWhatsApp: false, + postFrequency: '월 2~4회 (실측 진행 중)', + topContentType: '이벤트 + 시술 정보', + engagement: '게시물당 좋아요 10~50개 (추정)', + }, + ], + diagnosis: [ + { category: 'Facebook 활성도 낮음', detail: 'Instagram에 집중된 콘텐츠 전략 — Facebook 공동 배포 검토', severity: 'warning' }, + ], + brandInconsistencies: [], + consolidationRecommendation: 'Facebook은 Instagram 콘텐츠 자동 연동으로 최소 유지, 주력은 YouTube·Instagram 집중.', + }, + + otherChannels: [ + { name: '네이버 블로그', status: 'active', details: '공식 블로그 운영 중 — 빈도 보완 필요', url: 'https://blog.naver.com/tsprs' }, + { name: '강남언니', status: 'active', details: '8.5점/10, 2,100 리뷰 (추정)', url: 'https://www.gangnamunni.com/search?keyword=티에스성형외과' }, + { name: '네이버 까페', status: 'active', details: '연탐 네이버 카페 운영', url: 'https://cafe.naver.com/yeuntalk' }, + { name: '네이버 플레이스', status: 'active', details: '플레이스 운영 중', url: 'https://map.naver.com/v5/search/티에스성형외과' }, + ], + + websiteAudit: { + primaryDomain: 'tsprs.com', + additionalDomains: [], + snsLinksOnSite: true, + snsLinksDetail: [ + { platform: 'YouTube', url: 'https://www.youtube.com/@TV-jm9dy', location: 'Footer' }, + { platform: 'Instagram', url: 'https://www.instagram.com/tsprs_official/', location: 'Footer' }, + { platform: 'Facebook', url: 'https://www.facebook.com/tsprs', location: 'Footer' }, + { platform: 'Naver Blog', url: 'https://blog.naver.com/tsprs', location: 'Footer' }, + ], + trackingPixels: [ + { name: 'Google Analytics', installed: true, details: 'GA4 추정' }, + { name: 'Naver Site Verification', installed: true }, + ], + mainCTA: '전화 상담 + 카카오톡 상담', + }, + + problemDiagnosis: [ + { + category: '715개 영상 대비 구독자 전환율 낮음', + detail: 'YouTube 715개 영상 누적, 구독자 8K — 영상당 평균 구독자 11명 수준. SEO 최적화·썸네일 시스템화로 즉시 개선 가능.', + severity: 'critical', + }, + { + category: '리얼모델 콘텐츠 강점의 크로스채널 미활용', + detail: '리얼모델 브이로그가 YouTube에서 강점이나 Instagram·Blog·강남언니 리뷰 연동이 체계화되지 않아 콘텐츠 파급 효과가 제한됨.', + severity: 'critical', + }, + { + category: '네이버 카페 자산 미활용', + detail: '연탐 네이버 카페 운영 중이나 공식 채널과 연동 미흡 — 카페 리뷰/후기를 SNS 콘텐츠로 재활용하는 체계 부재.', + severity: 'warning', + }, + ], + + transformation: { + ...mockReport.transformation, + brandIdentity: [ + { area: '브랜드 슬로건', asIs: '"지금, 예뻐져라!"', toBe: '슬로건 유지 + 채널 통일 적용' }, + { area: '컬러', asIs: '다크 계열', toBe: 'Primary: Dark Navy (#1A1A2E) + Accent: Crimson (#E94560) 명문화' }, + { area: '리얼모델 포지셔닝', asIs: '일부 콘텐츠', toBe: '"리얼모델로 증명하는 티에스" 채널 전략 중심화' }, + ], + platformStrategies: [ + { + platform: 'YouTube', + icon: 'youtube', + currentMetric: '8K subscribers · 715 videos', + targetMetric: '20K / 12개월', + strategies: [ + { strategy: 'Shorts 재편집 가속', detail: '715개 영상에서 Shorts 200개 추출' }, + { strategy: '썸네일 시스템화', detail: '리얼모델 비포/애프터 통일 썸네일' }, + { strategy: 'SEO 메타데이터 일괄 최적화', detail: '"강남 눈코가슴" 타이틀 패턴 적용' }, + ], + }, + { + platform: 'Instagram', + icon: 'instagram', + currentMetric: '추정 35K followers', + targetMetric: '60K / 12개월', + strategies: [ + { strategy: 'Reels 주 5회', detail: 'YouTube Shorts 동시 배포' }, + { strategy: '리얼모델 하이라이트 강화', detail: '시술별 Before/After 하이라이트 재구성' }, + { strategy: '카페 후기 → Instagram 재편집', detail: '연탐 카페 후기 → 카루셀 콘텐츠' }, + ], + }, + ], + websiteImprovements: [ + { area: 'YouTube 임베드', asIs: '없음', toBe: '시술 페이지별 리얼모델 영상 임베드' }, + { area: '카카오톡 상담 버튼', asIs: '일부 페이지', toBe: '전 페이지 플로팅 버튼' }, + ], + newChannelProposals: [ + { channel: 'TikTok', priority: 'P1', rationale: '20~30대 첫 수술 고민층, Shorts 동시 배포' }, + ], + }, + + roadmap: [ + { + month: 1, + title: 'Foundation', + subtitle: 'SEO & 썸네일', + tasks: [ + { task: 'YouTube 715개 영상 SEO 메타데이터 일괄 최적화', completed: false }, + { task: '리얼모델 썸네일 통일 디자인 시스템 구축', completed: false }, + { task: 'Instagram Reels 주 5회 업로드 시작', completed: false }, + { task: '연탐 카페 후기 SNS 콘텐츠화 착수', completed: false }, + ], + }, + { + month: 2, + title: 'Content Engine', + subtitle: '리얼모델 확장', + tasks: [ + { task: 'YouTube Shorts 200개 추출 완료', completed: false }, + { task: 'Instagram 리얼모델 Before/After 하이라이트 재구성', completed: false }, + { task: '강남언니 리뷰 응답률 50% 달성', completed: false }, + ], + }, + { + month: 3, + title: 'Optimization', + subtitle: '광고 & 전환', + tasks: [ + { task: '고성과 리얼모델 콘텐츠 유료 광고 세팅', completed: false }, + { task: '전환 추적 체계 구축 (UTM + GA4)', completed: false }, + { task: 'KPI 리뷰', completed: false }, + ], + }, + ], + + kpiDashboard: [ + { metric: 'YouTube 구독자', current: '8K', target3Month: '12K', target12Month: '20K' }, + { metric: 'YouTube Shorts 업로드', current: '주 1~2회', target3Month: '주 3회', target12Month: '주 5회' }, + { metric: 'Instagram 팔로워', current: '35K (추정)', target3Month: '44K', target12Month: '60K' }, + { metric: 'Instagram Reels 평균 조회수', current: '낮음', target3Month: '8,000', target12Month: '25,000' }, + { metric: '강남언니 리뷰', current: '2,100 (추정)', target3Month: '2,500', target12Month: '3,500' }, + { metric: '카카오톡 상담 전환', current: '측정 불가', target3Month: 'UTM 시작', target12Month: '월 50건' }, + ], + + screenshots: [ + { + id: 'yt-channel', + url: '/assets/clients/ts/screenshots/yt-channel.png', + channel: 'YouTube', + capturedAt: '2026-04-14T10:00:00Z', + caption: '티에스TV @TV-jm9dy — 구독자 8K, 영상 715개', + sourceUrl: 'https://www.youtube.com/channel/UCgnizu8p7lbCnfIs76O8J-A', + }, + { + id: 'ig-profile', + url: '/assets/clients/ts/screenshots/ig-profile.png', + channel: 'Instagram', + capturedAt: '2026-04-14T10:02:00Z', + caption: 'Instagram @tsprs_official — 리얼모델 콘텐츠 강점 (실측 진행 중)', + sourceUrl: 'https://www.instagram.com/tsprs_official/', + }, + { + id: 'fb-page', + url: '/assets/clients/ts/screenshots/fb-page.png', + channel: 'Facebook', + capturedAt: '2026-04-14T10:03:00Z', + caption: 'Facebook @tsprs — 공식 페이지 (실측 진행 중)', + sourceUrl: 'https://www.facebook.com/tsprs', + }, + { + id: 'gangnamunni', + url: '/assets/clients/ts/screenshots/gangnamunni.png', + channel: '강남언니', + capturedAt: '2026-04-14T10:04:00Z', + caption: '강남언니 — 티에스성형외과 (실측 진행 중)', + sourceUrl: 'https://www.gangnamunni.com/search?keyword=티에스성형외과', + }, + { + id: 'website-homepage', + url: '/assets/clients/ts/screenshots/website-homepage.png', + channel: 'Website', + capturedAt: '2026-04-14T10:05:00Z', + caption: 'tsprs.com — 공식 홈페이지', + sourceUrl: 'https://www.tsprs.com', + }, + { + id: 'naver-blog', + url: '/assets/clients/ts/screenshots/naver-blog.png', + channel: '네이버 블로그', + capturedAt: '2026-04-14T10:06:00Z', + caption: '네이버 블로그 @tsprs — 업로드 중', + sourceUrl: 'https://blog.naver.com/tsprs', + }, + ], +}; diff --git a/src/data/mockReport_wonjin.ts b/src/data/mockReport_wonjin.ts new file mode 100644 index 0000000..5125e11 --- /dev/null +++ b/src/data/mockReport_wonjin.ts @@ -0,0 +1,347 @@ +import type { MarketingReport } from '../types/report'; +import { mockReport } from './mockReport'; + +/** + * 원진성형외과 — 데모 리포트 + * + * 실측 (2026-04-14): + * - YouTube @wjwonjin (WJ원진성형외과): 구독자 1.41만 (14,100), Shorts 매우 활발 + * - Instagram: @wonjin_official (KR) · @wonjin_ps · @wj_cosmetic (3개 계정) + * - Facebook: @KwonjinPS + * - Blog: blog.naver.com/popokpop + * - 홈페이지: k-wonjin.co.kr + * - 강남언니: 평점/리뷰 실측 예정 + */ +export const mockReportWonjin: MarketingReport = { + ...mockReport, + id: 'wonjin', + createdAt: '2026-04-14', + targetUrl: 'https://www.wonjin.com', + overallScore: 62, + + clinicSnapshot: { + ...mockReport.clinicSnapshot, + name: '원진성형외과', + nameEn: 'Wonjin Plastic Surgery', + established: '1991', + yearsInBusiness: 35, + staffCount: 10, + leadDoctor: { + name: '권진', + credentials: '원진성형외과 대표원장 · 코성형 전문', + rating: 8.9, + reviewCount: 4200, + }, + overallRating: 8.9, + totalReviews: 4200, + priceRange: { min: '100,000', max: '20,000,000+', currency: '₩' }, + certifications: [ + '성형외과 전문의', + '코성형·눈성형 전문', + '국제 의료 관광 인증', + '다국어 상담 지원 (한/영/중/일/태)', + ], + mediaAppearances: ['강남언니 4,200 리뷰 (추정)', '국제 성형 의료 관광 병원'], + medicalTourism: ['영어·중국어·일어·태국어 상담', '외국인 전용 코디네이터'], + location: '서울 강남구 강남대로 (강남역)', + nearestStation: '2호선 강남역', + phone: '02-544-0404', + domain: 'wonjin.com', + source: 'registry' as const, + registryData: { + district: '강남', + branches: '본점 1개', + brandGroup: '코성형·국제환자 특화', + gangnamUnniUrl: 'https://www.gangnamunni.com/search?keyword=원진성형외과', + googleMapsUrl: 'https://maps.google.com/?q=원진성형외과', + }, + logoImages: { + circle: '/assets/clients/wonjin/logo-circle.png', + horizontal: '/assets/clients/wonjin/logo-horizontal.png', + korean: '/assets/clients/wonjin/logo-korean.png', + }, + brandColors: { + primary: '#2C1654', + accent: '#8B5CF6', + text: '#2C1654', + }, + }, + + channelScores: [ + { channel: 'YouTube', icon: 'youtube', score: 68, maxScore: 100, status: 'warning', headline: '@wjwonjin — 구독자 1.41만, Shorts 매우 활발, 롱폼 전략 보완 필요' }, + { channel: 'Instagram', icon: 'instagram', score: 72, maxScore: 100, status: 'warning', headline: '3개 계정 운영 — KR/글로벌 분리, 채널 간 연계 전략 부재' }, + { channel: 'Facebook', icon: 'facebook', score: 45, maxScore: 100, status: 'warning', headline: '@KwonjinPS — 운영 중이나 국내 도달 낮음' }, + { channel: '강남언니', icon: 'star', score: 85, maxScore: 100, status: 'good', headline: '8.9점/10, 4,200 리뷰 — 강남 상위 5% 수준, 리뷰 리마케팅 미활용' }, + { channel: 'Website', icon: 'globe', score: 65, maxScore: 100, status: 'warning', headline: 'wonjin.com 다국어 운영 양호 — 전환 추적 고도화 필요' }, + { channel: '네이버 블로그', icon: 'globe', score: 40, maxScore: 100, status: 'critical', headline: 'blog.naver.com/popokpop — 업로드 빈도 저조' }, + ], + + youtubeAudit: { + ...mockReport.youtubeAudit, + channelName: 'WJ원진성형외과', + handle: '@wjwonjin', + subscribers: 14100, + totalVideos: 350, + totalViews: 8500000, + weeklyViewGrowth: { absolute: 5000, percentage: 0.8 }, + estimatedMonthlyRevenue: { min: 80, max: 300 }, + avgVideoLength: '4.2분', + uploadFrequency: '주 3~5회 (Shorts 중심)', + channelCreatedDate: '2018-05-01', + subscriberRank: '', + channelDescription: 'WJ원진성형외과 — 코성형·눈성형·국제환자 전문 성형외과', + linkedUrls: [{ label: '원진성형외과', url: 'k-wonjin.co.kr' }], + playlists: ['코성형', '눈성형', '브이로그', '해외환자'], + topVideos: [], + diagnosis: [ + { category: 'Shorts 과다 집중', detail: 'Shorts 위주 업로드로 채널 전문성 희석 — 롱폼 Before/After 강화 필요', severity: 'warning', evidenceIds: ['yt-channel'] }, + { category: '3개 Instagram 계정 연계 부재', detail: '@wonjin_official · @wonjin_ps · @wj_cosmetic 간 콘텐츠 연계 전략 없음', severity: 'warning' }, + { category: '구독자 대비 조회수 잠재력', detail: '1.41만 구독자 — 적극적 롱폼 + SEO 최적화 시 30K 달성 가능', severity: 'warning' }, + ], + }, + + instagramAudit: { + accounts: [ + { + handle: '@wonjin_official', + language: 'KR', + label: 'KR 공식', + posts: 1200, + followers: 45000, + following: 300, + category: 'Health/beauty', + profileLink: 'wonjin.com', + highlights: ['코성형', '눈성형', '후기', '이벤트', '글로벌'], + reelsCount: 80, + contentFormat: 'Reels + Before/After', + profilePhoto: '원진성형외과 공식 로고', + bio: '원진성형외과 공식 KR 계정 (실측 진행 중)', + }, + { + handle: '@wonjin_ps', + language: 'KR', + label: 'KR 서브', + posts: 500, + followers: 18000, + following: 150, + category: 'Health/beauty', + profileLink: 'wonjin.com', + highlights: [], + reelsCount: 30, + contentFormat: 'Before/After + 시술 정보', + profilePhoto: '원진 로고', + bio: '원진성형외과 서브 계정 (실측 진행 중)', + }, + ], + diagnosis: [ + { category: '다계정 전략 비효율', detail: '3개 계정 분산으로 팔로워·콘텐츠 파편화 — 통합 또는 역할 명확화 필요', severity: 'critical' }, + { category: '글로벌 계정 활용도 낮음', detail: '@wj_cosmetic 글로벌 계정이 국제 환자 유입에 충분히 활용되지 않음', severity: 'warning' }, + ], + }, + + facebookAudit: { + pages: [ + { + url: 'facebook.com/KwonjinPS', + pageName: 'Wonjin Plastic Surgery', + language: 'EN', + label: '국제', + followers: 22000, + following: 0, + category: '성형외과', + bio: 'Wonjin Plastic Surgery — International Patients Welcome', + logo: '공식 로고', + logoDescription: '원진성형외과 공식 로고', + link: 'wonjin.com', + linkedDomain: 'wonjin.com', + reviews: 0, + recentPostAge: '추정 1주 이내', + hasWhatsApp: true, + postFrequency: '주 2~4회 (실측 진행 중)', + topContentType: 'Before/After + 국제 환자 후기', + engagement: '게시물당 좋아요 20~150개 (추정)', + }, + ], + diagnosis: [ + { category: 'KR 전용 페이지 부재', detail: '국제 페이지만 운영 — 국내 환자용 KR 콘텐츠 별도 필요', severity: 'warning' }, + ], + brandInconsistencies: [], + consolidationRecommendation: '국제 페이지 유지 + 국내 콘텐츠 강화를 위한 Instagram KR 집중 권장.', + }, + + otherChannels: [ + { name: '네이버 블로그', status: 'unknown', details: '공식 블로그 운영 중 — 최근 업로드 저조', url: 'https://blog.naver.com/popokpop' }, + { name: '강남언니', status: 'active', details: '8.9점/10, 4,200 리뷰 (추정) · 코성형 강남 상위', url: 'https://www.gangnamunni.com/search?keyword=원진성형외과' }, + { name: '네이버 플레이스', status: 'active', details: '플레이스 운영 중', url: 'https://map.naver.com/v5/search/원진성형외과' }, + { name: '카카오톡', status: 'active', details: '채널 운영 중', url: 'https://wonjin.com' }, + ], + + websiteAudit: { + primaryDomain: 'wonjin.com', + additionalDomains: [{ domain: 'k-wonjin.co.kr', purpose: '서브 도메인' }], + snsLinksOnSite: true, + snsLinksDetail: [ + { platform: 'YouTube', url: 'https://www.youtube.com/@wjwonjin', location: 'Footer' }, + { platform: 'Instagram', url: 'https://www.instagram.com/wonjin_official/', location: 'Footer' }, + { platform: 'Facebook', url: 'https://www.facebook.com/KwonjinPS', location: 'Footer' }, + { platform: 'Naver Blog', url: 'https://blog.naver.com/popokpop', location: 'Footer' }, + ], + trackingPixels: [ + { name: 'Facebook Pixel', installed: true, details: '설치 확인 (추정)' }, + { name: 'Google Analytics', installed: true, details: 'GA4 추정' }, + ], + mainCTA: '전화 상담 + 다국어 온라인 예약', + }, + + problemDiagnosis: [ + { + category: '3개 Instagram 계정 분산으로 브랜드 파워 희석', + detail: '@wonjin_official(45K) + @wonjin_ps(18K) + @wj_cosmetic 3개 계정이 분산 운영돼 팔로워 합산 대비 실제 도달이 낮음. 통합 또는 역할 명확화 필수.', + severity: 'critical', + }, + { + category: 'Shorts 과다 의존 — 롱폼 전문성 콘텐츠 부족', + detail: 'YouTube Shorts 위주 업로드로 알고리즘 노출은 높으나, 코성형 전문 병원으로서의 신뢰도를 높이는 롱폼 Before/After·수술 과정 영상이 부족.', + severity: 'critical', + }, + { + category: '국제 환자 디지털 여정 미설계', + detail: '글로벌 Instagram · Facebook 영문 페이지가 있으나 랜딩페이지 다국어 전환 추적 체계 없음. 외국인 유입 대비 전환율 측정 불가.', + severity: 'critical', + }, + ], + + transformation: { + ...mockReport.transformation, + brandIdentity: [ + { area: '다계정 전략', asIs: 'Instagram 3개 계정 역할 불명확', toBe: '@wonjin_official KR 메인 · @wj_cosmetic 글로벌 전용으로 역할 명확화' }, + { area: '컬러', asIs: '퍼플 계열 추정', toBe: 'Primary: Deep Purple (#2C1654) + Accent: Violet (#8B5CF6) 명문화' }, + { area: '전문성 포지셔닝', asIs: '종합 성형외과', toBe: '"35년 강남 코성형 전문 · 국제 환자 1위"' }, + ], + platformStrategies: [ + { + platform: 'YouTube', + icon: 'youtube', + currentMetric: '14.1K subscribers · Shorts 활발', + targetMetric: '30K / 12개월', + strategies: [ + { strategy: '롱폼 Before/After 시리즈 강화', detail: '코성형 케이스 스터디 월 4편 — Shorts와 균형' }, + { strategy: '외국인 환자 브이로그 시리즈', detail: '영어·중국어 자막 추가 — 글로벌 노출' }, + { strategy: '원장 전문의 해설 시리즈', detail: '"코성형 전문의가 말하는" 롱폼 에듀케이션 콘텐츠' }, + ], + }, + { + platform: 'Instagram', + icon: 'instagram', + currentMetric: '3개 계정 합산 ~63K (추정)', + targetMetric: '@wonjin_official 80K / 12개월', + strategies: [ + { strategy: '계정 역할 재정의', detail: '@wonjin_official KR 메인, @wj_cosmetic 글로벌 전용' }, + { strategy: '4,200 리뷰 콘텐츠화', detail: '강남언니 리뷰 → Instagram Story/Highlight' }, + { strategy: '다국어 캡션 시스템', detail: 'KR + EN 이중 캡션으로 글로벌 도달' }, + ], + }, + ], + websiteImprovements: [ + { area: '다국어 랜딩 UTM 추적', asIs: '전환 추적 없음', toBe: '언어별 UTM 파라미터 + GA4 이벤트 세팅' }, + { area: 'YouTube 임베드', asIs: '없음', toBe: '시술 페이지별 관련 YouTube 영상 임베드' }, + ], + newChannelProposals: [ + { channel: 'TikTok', priority: 'P1', rationale: '국제 환자 10~30대, YouTube Shorts 동시 배포' }, + { channel: 'LINE (일본)', priority: 'P2', rationale: '일본인 환자 유입 채널 확장' }, + ], + }, + + roadmap: [ + { + month: 1, + title: 'Foundation', + subtitle: '계정 구조 재편', + tasks: [ + { task: 'Instagram 3개 계정 역할 재정의 (KR/글로벌 분리)', completed: false }, + { task: 'YouTube 롱폼 Before/After 시리즈 기획 시작', completed: false }, + { task: '강남언니 4,200 리뷰 SNS 콘텐츠화 50개', completed: false }, + { task: 'UTM 추적 체계 구축', completed: false }, + ], + }, + { + month: 2, + title: 'Content Engine', + subtitle: '글로벌 콘텐츠', + tasks: [ + { task: 'YouTube 롱폼 월 4편 + Shorts 주 3회 병행', completed: false }, + { task: 'Instagram @wj_cosmetic 글로벌 콘텐츠 주 3회', completed: false }, + { task: 'Facebook 국제 광고 캠페인 세팅', completed: false }, + ], + }, + { + month: 3, + title: 'Optimization', + subtitle: '전환 최적화', + tasks: [ + { task: '국가별 환자 유입 채널 분석', completed: false }, + { task: '고성과 콘텐츠 유료 광고 전환', completed: false }, + { task: 'KPI 리뷰 및 조정', completed: false }, + ], + }, + ], + + kpiDashboard: [ + { metric: 'YouTube 구독자', current: '14.1K', target3Month: '18K', target12Month: '30K' }, + { metric: 'YouTube 롱폼 업로드', current: '불규칙', target3Month: '월 4편', target12Month: '월 8편' }, + { metric: 'Instagram @wonjin_official 팔로워', current: '45K (추정)', target3Month: '55K', target12Month: '80K' }, + { metric: '강남언니 리뷰', current: '4,200 (추정)', target3Month: '4,700', target12Month: '6,000' }, + { metric: '외국인 환자 전환율', current: '측정 불가', target3Month: 'UTM 추적 시작', target12Month: '월 20건' }, + ], + + screenshots: [ + { + id: 'yt-channel', + url: '/assets/clients/wonjin/screenshots/yt-channel.png', + channel: 'YouTube', + capturedAt: '2026-04-14T10:00:00Z', + caption: 'WJ원진성형외과 @wjwonjin — 구독자 1.41만, Shorts 활발', + sourceUrl: 'https://www.youtube.com/@wjwonjin', + }, + { + id: 'ig-profile', + url: '/assets/clients/wonjin/screenshots/ig-profile.png', + channel: 'Instagram', + capturedAt: '2026-04-14T10:02:00Z', + caption: 'Instagram @wonjin_official — KR 공식 계정 (실측 진행 중)', + sourceUrl: 'https://www.instagram.com/wonjin_official/', + }, + { + id: 'fb-page', + url: '/assets/clients/wonjin/screenshots/fb-page.png', + channel: 'Facebook', + capturedAt: '2026-04-14T10:03:00Z', + caption: 'Facebook @KwonjinPS — 국제 공식 페이지 (실측 진행 중)', + sourceUrl: 'https://www.facebook.com/KwonjinPS', + }, + { + id: 'gangnamunni', + url: '/assets/clients/wonjin/screenshots/gangnamunni.png', + channel: '강남언니', + capturedAt: '2026-04-14T10:04:00Z', + caption: '강남언니 — 원진성형외과 (실측 진행 중)', + sourceUrl: 'https://www.gangnamunni.com/search?keyword=원진성형외과', + }, + { + id: 'website-homepage', + url: '/assets/clients/wonjin/screenshots/website-homepage.png', + channel: 'Website', + capturedAt: '2026-04-14T10:05:00Z', + caption: 'wonjin.com — 다국어 공식 홈페이지', + sourceUrl: 'https://www.wonjin.com', + }, + { + id: 'naver-blog', + url: '/assets/clients/wonjin/screenshots/naver-blog.png', + channel: '네이버 블로그', + capturedAt: '2026-04-14T10:06:00Z', + caption: '네이버 블로그 @popokpop — 최근 업로드 저조', + sourceUrl: 'https://blog.naver.com/popokpop', + }, + ], +}; diff --git a/src/hooks/useMarketingPlan.ts b/src/hooks/useMarketingPlan.ts index e6f77dc..d156e38 100644 --- a/src/hooks/useMarketingPlan.ts +++ b/src/hooks/useMarketingPlan.ts @@ -4,6 +4,20 @@ import type { MarketingPlan, ChannelStrategyCard, CalendarData, ContentStrategyD import { fetchReportById, fetchActiveContentPlan, supabase } from '../lib/supabase'; import { transformReportToPlan } from '../lib/transformPlan'; import { mockPlan } from '../data/mockPlan'; +import { mockPlanBanobagi } from '../data/mockPlan_banobagi'; +import { mockPlanGrand } from '../data/mockPlan_grand'; +import { mockPlanWonjin } from '../data/mockPlan_wonjin'; +import { mockPlanTs } from '../data/mockPlan_ts'; +import { mockPlanIrum } from '../data/mockPlan_irum'; + +const DEMO_PLANS: Record = { + 'view-clinic': mockPlan, + 'banobagi': mockPlanBanobagi, + 'grand': mockPlanGrand, + 'wonjin': mockPlanWonjin, + 'ts': mockPlanTs, + 'irum': mockPlanIrum, +}; interface UseMarketingPlanResult { data: MarketingPlan | null; @@ -89,11 +103,16 @@ export function useMarketingPlan(id: string | undefined): UseMarketingPlanResult async function loadPlan() { try { // ─── Dev / Demo: return mock data immediately ─── - if (id === 'demo' || id === 'view-clinic') { + if (id === 'demo') { setData(mockPlan); setIsLoading(false); return; } + if (id && id in DEMO_PLANS) { + setData(DEMO_PLANS[id]); + setIsLoading(false); + return; + } // ─── Source 1: Try content_plans table (AI-generated strategy) ─── // First, resolve clinicId from navigation state or analysis_runs diff --git a/src/hooks/useReport.ts b/src/hooks/useReport.ts index 0ab16b9..f537316 100644 --- a/src/hooks/useReport.ts +++ b/src/hooks/useReport.ts @@ -5,6 +5,29 @@ import { fetchReportById } from '../lib/supabase'; import { transformApiReport, mergeEnrichment, type EnrichmentData } from '../lib/transformReport'; import { normalizeInstagramHandle } from '../lib/normalizeHandles'; import { mockReport } from '../data/mockReport'; +import { mockReportBanobagi } from '../data/mockReport_banobagi'; +import { mockReportGrand } from '../data/mockReport_grand'; +import { mockReportWonjin } from '../data/mockReport_wonjin'; +import { mockReportTs } from '../data/mockReport_ts'; +import { mockReportIrum } from '../data/mockReport_irum'; + +const DEMO_REPORTS: Record = { + 'view-clinic': mockReport, + 'banobagi': mockReportBanobagi, + 'grand': mockReportGrand, + 'wonjin': mockReportWonjin, + 'ts': mockReportTs, + 'irum': mockReportIrum, +}; + +const DEMO_HANDLES: Record> = { + 'view-clinic': { instagram: '@viewplastic', youtube: '@ViewclinicKR', facebook: 'viewps1' }, + 'banobagi': { instagram: '@banobagi_ps', youtube: '@banobagips', facebook: 'BanobagiPlasticSurgery' }, + 'grand': { instagram: '@grand_korea', youtube: '@grandsurgery_QnA', facebook: 'grandps.korea' }, + 'wonjin': { instagram: '@wonjin_official', youtube: '@wjwonjin', facebook: 'KwonjinPS' }, + 'ts': { instagram: '@tsprs_official', youtube: '@TV-jm9dy', facebook: 'tsprs' }, + 'irum': { instagram: '@seoulips', youtube: '@SEOULiPS.', facebook: null }, +}; interface UseReportResult { data: MarketingReport | null; @@ -39,10 +62,10 @@ export function useReport(id: string | undefined): UseReportResult { useEffect(() => { // Source 0: Demo mode — ALWAYS takes priority over any other source - if (id === 'view-clinic') { - setData(mockReport); + if (id && id in DEMO_REPORTS) { + setData(DEMO_REPORTS[id]); setIsEnriched(true); - setSocialHandles({ instagram: '@viewplastic', youtube: '@ViewclinicKR', facebook: 'viewps1' }); + setSocialHandles(DEMO_HANDLES[id] ?? null); setIsLoading(false); return; }