Compare commits
19 Commits
claude/bol
...
main
| Author | SHA1 | Date |
|---|---|---|
|
|
41577391d5 | |
|
|
f2441de0bf | |
|
|
d816bb2d13 | |
|
|
281efac932 | |
|
|
6b3b950ad0 | |
|
|
eaf215ea6d | |
|
|
aac1367808 | |
|
|
5f7d58c490 | |
|
|
7dfa416089 | |
|
|
d66bc7b8f8 | |
|
|
6b2cc7ef79 | |
|
|
274fca48ea | |
|
|
d03f3fe9c9 | |
|
|
b079aec0be | |
|
|
56f98b717c | |
|
|
be240f721b | |
|
|
f0bf3bb9b0 | |
|
|
cd2463fb2d | |
|
|
e81c4cfee9 |
|
|
@ -9,7 +9,8 @@
|
|||
"preview": "vite preview",
|
||||
"clean": "rm -rf dist",
|
||||
"lint": "tsc --noEmit",
|
||||
"db:sync": "tsx scripts/sync-db-local.ts"
|
||||
"db:sync": "tsx scripts/sync-db-local.ts",
|
||||
"sync-registry": "tsx scripts/import-registry.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@google/genai": "^1.29.0",
|
||||
|
|
|
|||
|
After Width: | Height: | Size: 175 KiB |
|
After Width: | Height: | Size: 357 KiB |
|
After Width: | Height: | Size: 156 KiB |
|
After Width: | Height: | Size: 602 KiB |
|
After Width: | Height: | Size: 517 KiB |
|
After Width: | Height: | Size: 397 KiB |
|
After Width: | Height: | Size: 146 KiB |
|
After Width: | Height: | Size: 404 KiB |
|
After Width: | Height: | Size: 198 KiB |
|
After Width: | Height: | Size: 103 KiB |
|
After Width: | Height: | Size: 131 KiB |
|
After Width: | Height: | Size: 314 KiB |
|
After Width: | Height: | Size: 41 KiB |
|
After Width: | Height: | Size: 403 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 620 KiB |
|
After Width: | Height: | Size: 684 KiB |
|
After Width: | Height: | Size: 331 KiB |
|
After Width: | Height: | Size: 183 KiB |
|
After Width: | Height: | Size: 403 KiB |
|
After Width: | Height: | Size: 192 KiB |
|
After Width: | Height: | Size: 919 KiB |
|
After Width: | Height: | Size: 832 KiB |
|
After Width: | Height: | Size: 343 KiB |
|
After Width: | Height: | Size: 172 KiB |
|
After Width: | Height: | Size: 404 KiB |
|
After Width: | Height: | Size: 181 KiB |
|
After Width: | Height: | Size: 642 KiB |
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 607 KiB |
|
|
@ -14,7 +14,8 @@ import { createClient } from "@supabase/supabase-js";
|
|||
import { readFileSync } from "fs";
|
||||
import { config } from "dotenv";
|
||||
|
||||
config({ path: ".env.local" });
|
||||
config({ path: ".env" }); // base env (service role key lives here)
|
||||
config({ path: ".env.local" }); // local overrides (takes precedence)
|
||||
|
||||
const SUPABASE_URL = process.env.SUPABASE_URL || process.env.VITE_SUPABASE_URL;
|
||||
const SUPABASE_KEY = process.env.SUPABASE_SERVICE_ROLE_KEY;
|
||||
|
|
@ -113,8 +114,6 @@ async function main() {
|
|||
naver_blog_url: cols[COL.naver_blog_url]?.trim() || null,
|
||||
naver_place_url: cols[COL.naver_place_url]?.trim() || null,
|
||||
google_maps_url: cols[COL.google_maps_url]?.trim() || null,
|
||||
verified_by: "scrape",
|
||||
is_active: true,
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import { motion } from 'motion/react';
|
|||
|
||||
export default function Navbar() {
|
||||
return (
|
||||
<nav className="fixed top-0 left-0 right-0 z-50 bg-white/70 backdrop-blur-lg border-b border-white/20">
|
||||
<nav className="fixed top-0 left-0 right-0 z-50 bg-white/95 border-b border-slate-100">
|
||||
<div className="max-w-7xl mx-auto px-6 h-20 flex items-center justify-between">
|
||||
<Link to="/" className="flex items-center gap-2">
|
||||
<span className="font-serif text-3xl font-black tracking-[0.05em] bg-gradient-to-r from-[#4F1DA1] to-[#021341] bg-clip-text text-transparent">INFINITH</span>
|
||||
|
|
|
|||
|
|
@ -91,9 +91,7 @@ export default function AssetCollection({ data }: AssetCollectionProps) {
|
|||
key={asset.id}
|
||||
className="rounded-2xl border border-slate-100 bg-white shadow-sm p-5 cursor-pointer hover:shadow-[3px_4px_12px_rgba(0,0,0,0.06)] hover:border-[#D5CDF5] transition-all"
|
||||
onClick={() => setSelectedAsset({ kind: 'asset', data: asset })}
|
||||
initial={{ opacity: 0, y: 20 }}
|
||||
whileInView={{ opacity: 1, y: 0 }}
|
||||
viewport={{ once: true }}
|
||||
animate={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.4, delay: i * 0.05 }}
|
||||
>
|
||||
{/* Top badges row */}
|
||||
|
|
@ -154,9 +152,7 @@ export default function AssetCollection({ data }: AssetCollectionProps) {
|
|||
key={video.title}
|
||||
className="min-w-[280px] rounded-2xl border border-slate-100 bg-white shadow-sm p-5 shrink-0 cursor-pointer hover:shadow-[3px_4px_12px_rgba(0,0,0,0.06)] hover:border-[#D5CDF5] transition-all"
|
||||
onClick={() => setSelectedAsset({ kind: 'youtube', data: video })}
|
||||
initial={{ opacity: 0, x: 20 }}
|
||||
whileInView={{ opacity: 1, x: 0 }}
|
||||
viewport={{ once: true }}
|
||||
animate={{ opacity: 1, x: 0 }}
|
||||
transition={{ duration: 0.4, delay: i * 0.1 }}
|
||||
>
|
||||
<div className="flex items-start gap-2 mb-3">
|
||||
|
|
|
|||
|
|
@ -157,7 +157,6 @@ function VisualIdentityTab({ data }: { data: BrandGuide }) {
|
|||
|
||||
return (
|
||||
<motion.div
|
||||
initial={{ opacity: 0, y: 20 }}
|
||||
animate={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.4 }}
|
||||
className="space-y-8"
|
||||
|
|
@ -268,7 +267,6 @@ function VisualIdentityTab({ data }: { data: BrandGuide }) {
|
|||
function ToneVoiceTab({ tone }: { tone: BrandGuide['toneOfVoice'] }) {
|
||||
return (
|
||||
<motion.div
|
||||
initial={{ opacity: 0, y: 20 }}
|
||||
animate={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.4 }}
|
||||
className="space-y-6"
|
||||
|
|
@ -339,7 +337,6 @@ function ToneVoiceTab({ tone }: { tone: BrandGuide['toneOfVoice'] }) {
|
|||
function ChannelRulesTab({ channels }: { channels: BrandGuide['channelBranding'] }) {
|
||||
return (
|
||||
<motion.div
|
||||
initial={{ opacity: 0, y: 20 }}
|
||||
animate={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.4 }}
|
||||
>
|
||||
|
|
@ -396,7 +393,6 @@ function BrandConsistencyTab({ inconsistencies }: { inconsistencies: BrandIncons
|
|||
|
||||
return (
|
||||
<motion.div
|
||||
initial={{ opacity: 0, y: 20 }}
|
||||
animate={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.4 }}
|
||||
>
|
||||
|
|
|
|||
|
|
@ -53,9 +53,7 @@ export default function ChannelStrategy({ channels }: ChannelStrategyProps) {
|
|||
<motion.div
|
||||
key={ch.channelId}
|
||||
className="bg-white rounded-2xl p-6 shadow-[3px_4px_12px_rgba(0,0,0,0.06)] hover:shadow-[4px_6px_16px_rgba(0,0,0,0.09)] transition-shadow"
|
||||
initial={{ opacity: 0, y: 20 }}
|
||||
whileInView={{ opacity: 1, y: 0 }}
|
||||
viewport={{ once: true }}
|
||||
animate={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.5, delay: index * 0.1 }}
|
||||
>
|
||||
{/* Header */}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
import React, { useState, useCallback } from 'react';
|
||||
import { exportCalendarToICS } from '../../lib/calendarExport';
|
||||
import { motion } from 'motion/react';
|
||||
import {
|
||||
VideoFilled,
|
||||
FileTextFilled,
|
||||
|
|
@ -25,10 +24,10 @@ interface ContentCalendarProps {
|
|||
}
|
||||
|
||||
const contentTypeColors: Record<ContentCategory, { bg: string; text: string; entry: string; border: string; shadow: string }> = {
|
||||
video: { bg: 'bg-[#F3F0FF]', text: 'text-[#6C5CE7]', entry: 'bg-[#F3F0FF] border-[#D5CDF5]', border: 'border-[#D5CDF5]', shadow: 'shadow-[2px_3px_8px_rgba(155,138,212,0.15)]' },
|
||||
blog: { bg: 'bg-[#EFF0FF]', text: 'text-[#3A3F7C]', entry: 'bg-[#EFF0FF] border-[#C5CBF5]', border: 'border-[#C5CBF5]', shadow: 'shadow-[2px_3px_8px_rgba(122,132,212,0.15)]' },
|
||||
social: { bg: 'bg-[#FFF6ED]', text: 'text-[#7C5C3A]', entry: 'bg-[#FFF6ED] border-[#F5E0C5]', border: 'border-[#F5E0C5]', shadow: 'shadow-[2px_3px_8px_rgba(212,168,114,0.15)]' },
|
||||
ad: { bg: 'bg-[#FFF0F0]', text: 'text-[#7C3A4B]', entry: 'bg-[#FFF0F0] border-[#F5D5DC]', border: 'border-[#F5D5DC]', shadow: 'shadow-[2px_3px_8px_rgba(212,136,154,0.15)]' },
|
||||
video: { bg: 'bg-[#F3F0FF]', text: 'text-[#6C5CE7]', entry: 'bg-[#EDE5FF] border-[#B8A8E8]', border: 'border-[#D5CDF5]', shadow: 'shadow-[2px_3px_8px_rgba(155,138,212,0.15)]' },
|
||||
blog: { bg: 'bg-[#EFF0FF]', text: 'text-[#3A3F7C]', entry: 'bg-[#E2E5FF] border-[#A8B0E8]', border: 'border-[#C5CBF5]', shadow: 'shadow-[2px_3px_8px_rgba(122,132,212,0.15)]' },
|
||||
social: { bg: 'bg-[#FFF6ED]', text: 'text-[#7C5C3A]', entry: 'bg-[#FFEED9] border-[#E8C896]', border: 'border-[#F5E0C5]', shadow: 'shadow-[2px_3px_8px_rgba(212,168,114,0.15)]' },
|
||||
ad: { bg: 'bg-[#FFF0F0]', text: 'text-[#7C3A4B]', entry: 'bg-[#FFE0E0] border-[#E8A8B4]', border: 'border-[#F5D5DC]', shadow: 'shadow-[2px_3px_8px_rgba(212,136,154,0.15)]' },
|
||||
};
|
||||
|
||||
const contentTypeLabels: Record<ContentCategory, string> = {
|
||||
|
|
@ -204,8 +203,8 @@ export default function ContentCalendar({ data, planId, onEntryUpdate }: Content
|
|||
key={dayIdx}
|
||||
className={`min-h-[100px] rounded-xl p-1.5 ${
|
||||
entries.length > 0
|
||||
? 'bg-slate-50/50 border border-slate-100'
|
||||
: 'border border-dashed border-slate-200/60'
|
||||
? ''
|
||||
: 'border border-dashed border-slate-200'
|
||||
}`}
|
||||
>
|
||||
{entries.map((entry, entryIdx) => renderEntry(entry, entryIdx))}
|
||||
|
|
@ -221,12 +220,12 @@ export default function ContentCalendar({ data, planId, onEntryUpdate }: Content
|
|||
const ContentIcon = contentTypeIcons[entry.contentType];
|
||||
const ChannelIcon = channelIconMap[entry.channelIcon] ?? GlobeFilled;
|
||||
const statusDot = statusDotColors[entry.status ?? 'draft'];
|
||||
const isDragging = draggedEntry?.entry.id === entry.id;
|
||||
const isDragging = draggedEntry !== null && draggedEntry.entry === entry;
|
||||
|
||||
return (
|
||||
<div
|
||||
key={entry.id ?? entryIdx}
|
||||
className={`${colors.entry} border rounded-lg p-1.5 mb-1 last:mb-0 cursor-grab active:cursor-grabbing hover:ring-2 hover:ring-purple-200 transition-all group relative ${isDragging ? 'opacity-40' : ''}`}
|
||||
className={`${colors.entry} border rounded-lg p-1.5 mb-1 last:mb-0 cursor-grab active:cursor-grabbing hover:ring-2 hover:ring-[#6C5CE7]/30 hover:shadow-lg shadow-sm transition-all group relative ${isDragging ? 'opacity-40' : ''}`}
|
||||
draggable={weekNumber !== undefined}
|
||||
onDragStart={weekNumber !== undefined ? () => handleDragStart(entry, weekNumber) : undefined}
|
||||
onDragEnd={weekNumber !== undefined ? handleDragEnd : undefined}
|
||||
|
|
@ -235,9 +234,9 @@ export default function ContentCalendar({ data, planId, onEntryUpdate }: Content
|
|||
<div className="flex items-center gap-1 mb-0.5">
|
||||
<span className={`w-1.5 h-1.5 rounded-full ${statusDot} flex-shrink-0`} />
|
||||
<ChannelIcon size={10} className={colors.text} />
|
||||
<ContentIcon size={10} className={`${colors.text} opacity-60`} />
|
||||
<ContentIcon size={10} className={colors.text} />
|
||||
</div>
|
||||
<p className="text-[11px] text-slate-700 leading-tight line-clamp-2">
|
||||
<p className="text-[11px] font-medium text-[#0A1128] leading-tight line-clamp-2">
|
||||
{entry.title}
|
||||
</p>
|
||||
{entry.description && (
|
||||
|
|
@ -313,23 +312,19 @@ export default function ContentCalendar({ data, planId, onEntryUpdate }: Content
|
|||
const Icon = contentTypeIcons[item.type];
|
||||
const isActive = filterType === item.type;
|
||||
return (
|
||||
<motion.button
|
||||
<button
|
||||
key={item.type}
|
||||
className={`flex items-center gap-3 px-5 py-3 rounded-2xl border cursor-pointer transition-all ${colors.bg} ${colors.border} ${colors.shadow} ${
|
||||
isActive ? 'ring-2 ring-white/40 ring-offset-2 ring-offset-transparent' : ''
|
||||
} ${filterType && !isActive ? 'opacity-40' : ''}`}
|
||||
onClick={() => toggleFilter(item.type)}
|
||||
initial={{ opacity: 0, y: 10 }}
|
||||
whileInView={{ opacity: 1, y: 0 }}
|
||||
viewport={{ once: true }}
|
||||
transition={{ duration: 0.3, delay: i * 0.07 }}
|
||||
>
|
||||
<Icon size={16} className={`${colors.text} opacity-70`} />
|
||||
<div className="flex flex-col items-start">
|
||||
<span className={`text-2xl font-bold leading-none ${colors.text}`}>{item.count}</span>
|
||||
<span className={`text-xs font-medium ${colors.text} opacity-70 mt-0.5`}>{item.label}</span>
|
||||
</div>
|
||||
</motion.button>
|
||||
</button>
|
||||
);
|
||||
})}
|
||||
{filterType && (
|
||||
|
|
@ -358,13 +353,9 @@ export default function ContentCalendar({ data, planId, onEntryUpdate }: Content
|
|||
}
|
||||
|
||||
return (
|
||||
<motion.div
|
||||
<div
|
||||
key={week.weekNumber}
|
||||
className="bg-white rounded-2xl p-5 mb-4 shadow-[3px_4px_12px_rgba(0,0,0,0.06)]"
|
||||
initial={{ opacity: 0, y: 20 }}
|
||||
whileInView={{ opacity: 1, y: 0 }}
|
||||
viewport={{ once: true }}
|
||||
transition={{ duration: 0.4, delay: weekIdx * 0.1 }}
|
||||
>
|
||||
<p className="text-sm font-bold text-[#0A1128] mb-3">{week.label}</p>
|
||||
|
||||
|
|
@ -385,9 +376,9 @@ export default function ContentCalendar({ data, planId, onEntryUpdate }: Content
|
|||
key={dayIdx}
|
||||
className={`min-h-[80px] rounded-xl p-1.5 transition-all ${
|
||||
entries.length > 0
|
||||
? 'bg-slate-50/50 border border-slate-100'
|
||||
: 'border border-dashed border-slate-200/60'
|
||||
} ${isDropTarget ? 'ring-2 ring-[#6C5CE7]/40 bg-[#F3F0FF]/20 border-[#D5CDF5]' : ''}`}
|
||||
? ''
|
||||
: 'border border-dashed border-slate-200'
|
||||
} ${isDropTarget ? 'ring-2 ring-[#6C5CE7]/40 bg-[#F3F0FF] border-[#D5CDF5]' : ''}`}
|
||||
onDragOver={(e) => handleDragOver(e, week.weekNumber, dayIdx)}
|
||||
onDragLeave={handleDragLeave}
|
||||
onDrop={() => handleDrop(week.weekNumber, dayIdx)}
|
||||
|
|
@ -409,7 +400,7 @@ export default function ContentCalendar({ data, planId, onEntryUpdate }: Content
|
|||
</svg>
|
||||
콘텐츠 추가
|
||||
</button>
|
||||
</motion.div>
|
||||
</div>
|
||||
);
|
||||
})
|
||||
)}
|
||||
|
|
|
|||
|
|
@ -69,7 +69,6 @@ export default function ContentStrategy({ data }: ContentStrategyProps) {
|
|||
{activeTab === 'pillars' && (
|
||||
<motion.div
|
||||
className="grid md:grid-cols-2 gap-6"
|
||||
initial={{ opacity: 0, y: 20 }}
|
||||
animate={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.4 }}
|
||||
>
|
||||
|
|
@ -78,7 +77,6 @@ export default function ContentStrategy({ data }: ContentStrategyProps) {
|
|||
key={pillar.title}
|
||||
className="rounded-2xl border border-slate-100 bg-white shadow-sm p-6 border-l-4"
|
||||
style={{ borderLeftColor: pillar.color }}
|
||||
initial={{ opacity: 0, y: 20 }}
|
||||
animate={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.4, delay: i * 0.1 }}
|
||||
>
|
||||
|
|
@ -109,7 +107,6 @@ export default function ContentStrategy({ data }: ContentStrategyProps) {
|
|||
{activeTab === 'types' && (
|
||||
<motion.div
|
||||
className="rounded-2xl overflow-hidden border border-slate-100"
|
||||
initial={{ opacity: 0, y: 20 }}
|
||||
animate={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.4 }}
|
||||
>
|
||||
|
|
@ -123,7 +120,6 @@ export default function ContentStrategy({ data }: ContentStrategyProps) {
|
|||
<motion.div
|
||||
key={row.format}
|
||||
className={`grid grid-cols-4 ${i % 2 === 0 ? 'bg-white' : 'bg-slate-50'}`}
|
||||
initial={{ opacity: 0, y: 10 }}
|
||||
animate={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.3, delay: i * 0.04 }}
|
||||
>
|
||||
|
|
@ -151,7 +147,6 @@ export default function ContentStrategy({ data }: ContentStrategyProps) {
|
|||
{activeTab === 'workflow' && (
|
||||
<motion.div
|
||||
className="flex md:flex-row flex-col gap-4 items-stretch"
|
||||
initial={{ opacity: 0, y: 20 }}
|
||||
animate={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.4 }}
|
||||
>
|
||||
|
|
@ -159,7 +154,6 @@ export default function ContentStrategy({ data }: ContentStrategyProps) {
|
|||
<div key={step.step} className="flex md:flex-row flex-col items-center gap-4 flex-1">
|
||||
<motion.div
|
||||
className="flex-1 w-full rounded-2xl border border-slate-100 bg-white shadow-sm p-5"
|
||||
initial={{ opacity: 0, y: 20 }}
|
||||
animate={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.4, delay: i * 0.1 }}
|
||||
>
|
||||
|
|
@ -191,7 +185,6 @@ export default function ContentStrategy({ data }: ContentStrategyProps) {
|
|||
{/* Tab 4: Repurposing */}
|
||||
{activeTab === 'repurposing' && (
|
||||
<motion.div
|
||||
initial={{ opacity: 0, y: 20 }}
|
||||
animate={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.4 }}
|
||||
>
|
||||
|
|
@ -214,7 +207,6 @@ export default function ContentStrategy({ data }: ContentStrategyProps) {
|
|||
<motion.div
|
||||
key={`${output.format}-${i}`}
|
||||
className="rounded-xl border border-slate-100 bg-white p-4"
|
||||
initial={{ opacity: 0, y: 10 }}
|
||||
animate={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.3, delay: i * 0.05 }}
|
||||
>
|
||||
|
|
|
|||
|
|
@ -11,9 +11,7 @@ export default function PlanCTA() {
|
|||
return (
|
||||
<motion.section
|
||||
className="py-16 md:py-20 px-6"
|
||||
initial={{ opacity: 0, y: 20 }}
|
||||
whileInView={{ opacity: 1, y: 0 }}
|
||||
viewport={{ once: true }}
|
||||
animate={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.6, ease: 'easeOut' }}
|
||||
>
|
||||
<div className="max-w-7xl mx-auto">
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ export default function PlanHeader({
|
|||
}: PlanHeaderProps) {
|
||||
return (
|
||||
<section className="relative overflow-hidden bg-[radial-gradient(ellipse_at_top_left,#e0e7ff,transparent_50%),radial-gradient(ellipse_at_bottom_right,#fce7f3,transparent_50%),radial-gradient(ellipse_at_center,#f5f3ff,transparent_60%)] py-20 md:py-28 px-6">
|
||||
{/* Animated blobs */}
|
||||
{/* Animated blobs — position only, no opacity */}
|
||||
<motion.div
|
||||
className="absolute top-10 left-10 w-72 h-72 rounded-full bg-[#6C5CE7]/10 blur-3xl"
|
||||
animate={{ x: [0, 30, 0], y: [0, -20, 0] }}
|
||||
|
|
@ -47,51 +47,21 @@ export default function PlanHeader({
|
|||
|
||||
<div className="relative max-w-7xl mx-auto">
|
||||
<div className="flex flex-col md:flex-row items-center md:items-start justify-between gap-10">
|
||||
{/* Left: Text content */}
|
||||
<motion.div
|
||||
className="flex-1 text-center md:text-left"
|
||||
initial={{ opacity: 0, y: 20 }}
|
||||
whileInView={{ opacity: 1, y: 0 }}
|
||||
viewport={{ once: true }}
|
||||
transition={{ duration: 0.5 }}
|
||||
>
|
||||
<motion.p
|
||||
className="text-xs font-semibold text-[#6C5CE7] mb-4 tracking-widest uppercase"
|
||||
initial={{ opacity: 0, y: 10 }}
|
||||
whileInView={{ opacity: 1, y: 0 }}
|
||||
viewport={{ once: true }}
|
||||
transition={{ duration: 0.5, delay: 0.1 }}
|
||||
>
|
||||
{/* Left: Text content — plain div, no opacity animation */}
|
||||
<div className="flex-1 text-center md:text-left">
|
||||
<p className="text-xs font-semibold text-[#6C5CE7] mb-4 tracking-widest uppercase">
|
||||
Marketing Execution Plan
|
||||
</motion.p>
|
||||
</p>
|
||||
|
||||
<motion.h1
|
||||
className="font-serif text-4xl md:text-5xl font-bold text-[#0A1128] mb-3"
|
||||
initial={{ opacity: 0, y: 20 }}
|
||||
whileInView={{ opacity: 1, y: 0 }}
|
||||
viewport={{ once: true }}
|
||||
transition={{ duration: 0.5, delay: 0.2 }}
|
||||
>
|
||||
<h1 className="font-serif text-4xl md:text-5xl font-bold text-[#0A1128] mb-3">
|
||||
{clinicName}
|
||||
</motion.h1>
|
||||
</h1>
|
||||
|
||||
<motion.p
|
||||
className="text-xl text-slate-600 mb-8"
|
||||
initial={{ opacity: 0, y: 20 }}
|
||||
whileInView={{ opacity: 1, y: 0 }}
|
||||
viewport={{ once: true }}
|
||||
transition={{ duration: 0.5, delay: 0.3 }}
|
||||
>
|
||||
<p className="text-xl text-slate-600 mb-8">
|
||||
{clinicNameEn}
|
||||
</motion.p>
|
||||
</p>
|
||||
|
||||
<motion.div
|
||||
className="flex flex-wrap gap-3 justify-center md:justify-start"
|
||||
initial={{ opacity: 0, y: 20 }}
|
||||
whileInView={{ opacity: 1, y: 0 }}
|
||||
viewport={{ once: true }}
|
||||
transition={{ duration: 0.5, delay: 0.4 }}
|
||||
>
|
||||
<div className="flex flex-wrap gap-3 justify-center md:justify-start">
|
||||
<span className="inline-flex items-center gap-2 rounded-full bg-white/60 backdrop-blur-sm border border-white/40 px-3 py-1 text-sm font-medium text-slate-700">
|
||||
<CalendarFilled size={14} className="text-slate-400" />
|
||||
{formatDate(date)}
|
||||
|
|
@ -100,24 +70,18 @@ export default function PlanHeader({
|
|||
<GlobeFilled size={14} className="text-slate-400" />
|
||||
{targetUrl}
|
||||
</span>
|
||||
</motion.div>
|
||||
</motion.div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Right: 90 Days badge */}
|
||||
<motion.div
|
||||
className="shrink-0"
|
||||
initial={{ opacity: 0, scale: 0.8 }}
|
||||
whileInView={{ opacity: 1, scale: 1 }}
|
||||
viewport={{ once: true }}
|
||||
transition={{ duration: 0.6, delay: 0.3 }}
|
||||
>
|
||||
<div className="shrink-0">
|
||||
<div className="w-32 h-32 rounded-full bg-gradient-to-r from-[#4F1DA1] to-[#021341] flex flex-col items-center justify-center shadow-lg">
|
||||
<span className="text-4xl font-bold text-white leading-none">
|
||||
90
|
||||
</span>
|
||||
<span className="text-sm text-white/60">Days</span>
|
||||
</div>
|
||||
</motion.div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
import { useState } from 'react';
|
||||
import { motion } from 'motion/react';
|
||||
import {
|
||||
YoutubeFilled,
|
||||
InstagramFilled,
|
||||
|
|
@ -63,13 +62,9 @@ export default function RepurposingProposal({ proposals }: RepurposingProposalPr
|
|||
const isExpanded = expandedIdx === idx;
|
||||
|
||||
return (
|
||||
<motion.div
|
||||
<div
|
||||
key={item.sourceVideo.title}
|
||||
className="rounded-2xl border border-slate-100 bg-white shadow-[3px_4px_12px_rgba(0,0,0,0.06)] overflow-hidden"
|
||||
initial={{ opacity: 0, y: 20 }}
|
||||
whileInView={{ opacity: 1, y: 0 }}
|
||||
viewport={{ once: true }}
|
||||
transition={{ duration: 0.4, delay: idx * 0.08 }}
|
||||
>
|
||||
{/* Card Header — click to expand */}
|
||||
<button
|
||||
|
|
@ -121,26 +116,17 @@ export default function RepurposingProposal({ proposals }: RepurposingProposalPr
|
|||
|
||||
{/* Expanded: Repurpose outputs */}
|
||||
{isExpanded && (
|
||||
<motion.div
|
||||
initial={{ opacity: 0, height: 0 }}
|
||||
animate={{ opacity: 1, height: 'auto' }}
|
||||
exit={{ opacity: 0, height: 0 }}
|
||||
transition={{ duration: 0.2 }}
|
||||
className="border-t border-slate-100"
|
||||
>
|
||||
<div className="border-t border-slate-100">
|
||||
<div className="px-6 py-4">
|
||||
<div className="flex items-center gap-2 mb-4">
|
||||
<BoltFilled size={14} className="text-[#6C5CE7]" />
|
||||
<p className="text-xs font-semibold text-slate-500 uppercase tracking-widest">REPURPOSE AS</p>
|
||||
</div>
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 gap-3">
|
||||
{item.outputs.map((output, oIdx) => (
|
||||
<motion.div
|
||||
{item.outputs.map((output) => (
|
||||
<div
|
||||
key={output.format}
|
||||
className="flex items-start gap-3 p-4 rounded-xl bg-slate-50 border border-slate-100"
|
||||
initial={{ opacity: 0, x: -8 }}
|
||||
animate={{ opacity: 1, x: 0 }}
|
||||
transition={{ delay: oIdx * 0.06 }}
|
||||
>
|
||||
<div className="w-8 h-8 rounded-lg bg-gradient-to-br from-[#6C5CE7]/10 to-[#4F1DA1]/10 flex items-center justify-center shrink-0">
|
||||
<ChannelIcon channel={output.channel} size={16} />
|
||||
|
|
@ -150,13 +136,13 @@ export default function RepurposingProposal({ proposals }: RepurposingProposalPr
|
|||
<p className="text-xs text-[#6C5CE7] font-medium mb-1">{output.channel}</p>
|
||||
<p className="text-xs text-slate-500 leading-relaxed">{output.description}</p>
|
||||
</div>
|
||||
</motion.div>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</motion.div>
|
||||
</div>
|
||||
)}
|
||||
</motion.div>
|
||||
</div>
|
||||
);
|
||||
})}
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -176,7 +176,6 @@ export default function StrategyAdjustmentSection({ clinicId, planId }: Strategy
|
|||
{overallAssessment && (
|
||||
<motion.div
|
||||
className="bg-purple-50 border border-purple-100 rounded-2xl p-4 mb-6"
|
||||
initial={{ opacity: 0, y: 10 }}
|
||||
animate={{ opacity: 1, y: 0 }}
|
||||
>
|
||||
<p className="text-sm text-purple-800">{overallAssessment}</p>
|
||||
|
|
@ -192,7 +191,6 @@ export default function StrategyAdjustmentSection({ clinicId, planId }: Strategy
|
|||
<motion.div
|
||||
key={i}
|
||||
className="bg-white rounded-xl p-4 border border-slate-100"
|
||||
initial={{ opacity: 0, x: -10 }}
|
||||
animate={{ opacity: 1, x: 0 }}
|
||||
transition={{ delay: i * 0.05 }}
|
||||
>
|
||||
|
|
@ -237,7 +235,6 @@ export default function StrategyAdjustmentSection({ clinicId, planId }: Strategy
|
|||
<motion.div
|
||||
key={i}
|
||||
className={`${colors.bg} rounded-xl p-4 border border-slate-100`}
|
||||
initial={{ opacity: 0, y: 10 }}
|
||||
animate={{ opacity: 1, y: 0 }}
|
||||
transition={{ delay: i * 0.08 }}
|
||||
>
|
||||
|
|
|
|||
|
|
@ -101,7 +101,6 @@ function WorkflowCard({ item, onStageChange, onNotesChange }: {
|
|||
<motion.div
|
||||
layout
|
||||
className="bg-white rounded-2xl border border-slate-100 shadow-[3px_4px_12px_rgba(0,0,0,0.06)] overflow-hidden"
|
||||
initial={{ opacity: 0, y: 16 }}
|
||||
animate={{ opacity: 1, y: 0 }}
|
||||
exit={{ opacity: 0, y: -8 }}
|
||||
transition={{ duration: 0.3 }}
|
||||
|
|
@ -144,7 +143,6 @@ function WorkflowCard({ item, onStageChange, onNotesChange }: {
|
|||
<AnimatePresence>
|
||||
{expanded && (
|
||||
<motion.div
|
||||
initial={{ opacity: 0, height: 0 }}
|
||||
animate={{ opacity: 1, height: 'auto' }}
|
||||
exit={{ opacity: 0, height: 0 }}
|
||||
transition={{ duration: 0.2 }}
|
||||
|
|
@ -341,7 +339,6 @@ export default function WorkflowTracker({ data }: WorkflowTrackerProps) {
|
|||
className={`flex items-center gap-2 px-3 py-1.5 rounded-full border text-xs font-medium transition-all ${color.bg} ${color.text} ${color.border} ${
|
||||
isActive ? 'ring-2 ring-white/40' : ''
|
||||
} ${activeStageFilter && !isActive ? 'opacity-40' : ''}`}
|
||||
initial={{ opacity: 0, scale: 0.9 }}
|
||||
animate={{ opacity: 1, scale: 1 }}
|
||||
transition={{ duration: 0.2 }}
|
||||
>
|
||||
|
|
@ -366,7 +363,6 @@ export default function WorkflowTracker({ data }: WorkflowTrackerProps) {
|
|||
<AnimatePresence mode="popLayout">
|
||||
{filtered.length === 0 ? (
|
||||
<motion.div
|
||||
initial={{ opacity: 0 }}
|
||||
animate={{ opacity: 1 }}
|
||||
className="text-center py-10 text-white/30 text-sm"
|
||||
>
|
||||
|
|
|
|||
|
|
@ -97,7 +97,7 @@ export default function KPIDashboard({ metrics, clinicName }: KPIDashboardProps)
|
|||
</p>
|
||||
<div className="flex flex-col sm:flex-row items-center justify-center gap-4">
|
||||
<button
|
||||
onClick={() => navigate(`/plan/${id || 'live'}`)}
|
||||
onClick={() => navigate(`/plan/${id || 'live'}#branding-guide`)}
|
||||
className="inline-flex items-center gap-2 bg-gradient-to-r from-[#4F1DA1] to-[#021341] text-white font-semibold px-8 py-4 rounded-full hover:shadow-xl transition-all"
|
||||
>
|
||||
마케팅 기획
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ export function ReportNav({ sections }: ReportNavProps) {
|
|||
};
|
||||
|
||||
return (
|
||||
<nav data-report-nav className="sticky top-20 z-40 bg-white/80 backdrop-blur-lg border-b border-slate-100">
|
||||
<nav data-report-nav className="sticky top-20 z-40 bg-white/95 border-b border-slate-100">
|
||||
<div
|
||||
ref={navRef}
|
||||
className="max-w-7xl mx-auto flex overflow-x-auto scrollbar-hide"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
import type { ReactNode } from 'react';
|
||||
import { motion } from 'motion/react';
|
||||
|
||||
interface SectionWrapperProps {
|
||||
id: string;
|
||||
|
|
@ -19,12 +18,8 @@ export function SectionWrapper({
|
|||
className = '',
|
||||
}: SectionWrapperProps) {
|
||||
return (
|
||||
<motion.section
|
||||
<section
|
||||
id={id}
|
||||
initial={{ opacity: 0, y: 40 }}
|
||||
whileInView={{ opacity: 1, y: 0 }}
|
||||
viewport={{ once: true }}
|
||||
transition={{ duration: 0.6, ease: 'easeOut' }}
|
||||
className={`
|
||||
${dark
|
||||
? 'bg-[#0A1128] text-white relative overflow-hidden'
|
||||
|
|
@ -60,6 +55,6 @@ export function SectionWrapper({
|
|||
</div>
|
||||
{children}
|
||||
</div>
|
||||
</motion.section>
|
||||
</section>
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,517 @@
|
|||
import type { MarketingPlan } from '../types/plan';
|
||||
|
||||
/**
|
||||
* 바노바기성형외과 — 데모 마케팅 플랜
|
||||
*
|
||||
* 리포트 근거 (`mockReport_banobagi.ts` 2026-04-14 실측):
|
||||
* - YouTube @banobagips: 13K 구독자, 925 영상 (최근 6개월 업로드 저조)
|
||||
* - Instagram @banobagi_ps: 4,183 팔로워, 2,000 게시물 (Reels 10개 — 부족)
|
||||
* - Facebook @BanobagiPlasticSurgery: 16K (EN 전용 — KR 페이지 없음)
|
||||
* - 네이버 블로그 @banobagips: 2023-04-21 마지막 포스트 (2년 이상 방치)
|
||||
* - 강남언니: 9.2점 / 6,853 리뷰 (강남 상위권)
|
||||
* - 26년 (2000년 설립), 반재중 대표원장, 본관+별관 6+5층
|
||||
* - 시술군: 안면윤곽 / 눈 / 코 / 가슴 / 지방체형 / 리프팅·동안성형
|
||||
*
|
||||
* 모든 섹션을 바노바기 실측·맥락 기반으로 재구성. mockPlan(View) 의존성 제거.
|
||||
*/
|
||||
export const mockPlanBanobagi: MarketingPlan = {
|
||||
id: 'banobagi',
|
||||
reportId: 'banobagi',
|
||||
clinicName: '바노바기성형외과의원',
|
||||
clinicNameEn: 'Banobagi Plastic Surgery Clinic',
|
||||
createdAt: '2026-04-14',
|
||||
targetUrl: 'https://www.banobagi.com',
|
||||
|
||||
// ─── Section 1: Brand Guide ───
|
||||
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' },
|
||||
],
|
||||
logoRules: [
|
||||
{ rule: '블랙+골드 워드마크 통일 사용', description: '공식 BANOBAGI 워드마크(블랙 배경 + 골드 텍스트)를 모든 채널에서 동일하게 사용', correct: true },
|
||||
{ rule: '원형 로고: 블랙 배경 골드 심볼 버전', description: '프로필 사진용 원형 버전은 블랙 원형 + 골드 "B" 심볼 1080×1080 사용', correct: true },
|
||||
{ rule: '가로형 로고: 워드마크 + 한글 병기', description: '배너·헤더에는 BANOBAGI 워드마크 + "바노바기성형외과" 한글 병기', correct: true },
|
||||
{ rule: '저해상도 프로필 사진 금지', description: '채널별 프로필 해상도 편차 발견 — 1080×1080 단일 원형 로고로 통일 필요', correct: false },
|
||||
{ rule: '한글 채널 설명 우선', description: 'YouTube 채널 설명이 영문 위주 — 한국 시장 타겟팅 위해 한글 우선/영문 병기', correct: false },
|
||||
{ rule: '로고 주변 여백 확보', description: '로고 크기의 30% 이상 여백을 유지하여 가독성 확보', correct: true },
|
||||
],
|
||||
toneOfVoice: {
|
||||
personality: ['신뢰감 있는', '전문적', '차분한', '결과 중심', '절제된 럭셔리'],
|
||||
communicationStyle: '26년 축적된 임상 경험을 바탕으로, 과장 없이 결과와 원칙으로 설득합니다. 환자의 관점에서 생각하되 의료 전문성을 잃지 않는 톤.',
|
||||
doExamples: [
|
||||
'"자연스러움이 보일 때까지, 디테일에 디테일을 더합니다"',
|
||||
'"26년 임상 경험, 6,853개의 진솔한 후기"',
|
||||
'"바노바기의 원칙: 결과로 증명합니다"',
|
||||
'"분야별 전문의 공동 진료 시스템"',
|
||||
],
|
||||
dontExamples: [
|
||||
'"강남 최고! 파격 할인!"',
|
||||
'"연예인이 선택한 병원"',
|
||||
'"100% 만족 보장"',
|
||||
'"이 가격은 오늘까지만!"',
|
||||
],
|
||||
},
|
||||
channelBranding: [
|
||||
{ channel: 'YouTube', icon: 'youtube', profilePhoto: '블랙+골드 BANOBAGI 원형 로고 1080×1080', bannerSpec: '2560×1440px, 블랙 배경 + 골드 워드마크, "26년 강남 대표 성형외과" 슬로건', bioTemplate: '26년 강남 대표 성형외과 — 바노바기\n안면윤곽·눈·코·가슴·리프팅\n02-1588-6508 | banobagi.com', currentStatus: 'incorrect' },
|
||||
{ channel: 'Instagram KR', icon: 'instagram', profilePhoto: '블랙+골드 원형 로고', bannerSpec: 'N/A (하이라이트 커버: 블랙+골드 아이콘 세트 — 안면윤곽/눈/코/가슴/리뷰)', bioTemplate: '바노바기성형외과 공식 — 26년 임상\n역삼역·강남역 | 02-1588-6508\nbanobagi.com', currentStatus: 'incorrect' },
|
||||
{ channel: 'Facebook KR', icon: 'facebook', profilePhoto: '블랙+골드 원형 로고', bannerSpec: '820×312px, 블랙+골드 배너 + "26년 강남 대표 성형외과"', bioTemplate: '바노바기성형외과 한국 공식 — 26년 임상 경험', currentStatus: 'missing' },
|
||||
{ channel: 'Facebook EN', icon: 'facebook', profilePhoto: '블랙+골드 원형 로고', bannerSpec: '820×312px, 동일 디자인 시스템', bioTemplate: 'Banobagi Plastic Surgery — 26 Years of Excellence in Gangnam', currentStatus: 'correct' },
|
||||
{ channel: 'Naver Blog', icon: 'globe', profilePhoto: '블랙+골드 로고', bannerSpec: '블로그 상단: 워드마크 + 시술 카테고리 메뉴', bioTemplate: '바노바기성형외과 공식 블로그 — 26년 강남 대표\n안면윤곽·눈·코·가슴·리프팅·지방체형', currentStatus: 'incorrect' },
|
||||
{ channel: 'TikTok', icon: 'video', profilePhoto: '블랙+골드 원형 로고', bannerSpec: 'N/A', bioTemplate: '바노바기성형외과 — 26년 강남 대표\n역삼역 | 02-1588-6508', currentStatus: 'missing' },
|
||||
],
|
||||
brandInconsistencies: [
|
||||
{
|
||||
field: '로고',
|
||||
values: [
|
||||
{ channel: 'YouTube', value: 'BANOBAGI 영문 워드마크', isCorrect: true },
|
||||
{ channel: 'Instagram KR', value: '바노바기 블랙+골드 로고', isCorrect: true },
|
||||
{ channel: 'Facebook EN', value: '블랙+골드 워드마크', isCorrect: true },
|
||||
{ channel: 'Website', value: '블랙+골드 공식 로고', isCorrect: true },
|
||||
],
|
||||
impact: '브랜드 시각 아이덴티티는 비교적 일관되지만 채널별 프로필 해상도 편차 존재. 한국 시장용 Facebook KR 페이지와 TikTok 채널 자산 부재.',
|
||||
recommendation: '전 채널 1080×1080 원형 로고 재발급 + Facebook KR / TikTok 신규 채널 자산 제작',
|
||||
},
|
||||
{
|
||||
field: '바이오/소개 메시지',
|
||||
values: [
|
||||
{ channel: 'YouTube', value: 'Protect and nurture your true beauty… (영문 위주)', isCorrect: false },
|
||||
{ channel: 'Instagram KR', value: '바노바기성형외과 공식 계정 (USP 부재)', isCorrect: false },
|
||||
{ channel: 'Facebook EN', value: 'Korean Premium Plastic Surgery Clinic', isCorrect: false },
|
||||
{ channel: 'Naver Blog', value: '(설명 부실 — 2년 방치)', isCorrect: false },
|
||||
],
|
||||
impact: '4개 채널, 4개의 서로 다른 소개 — "26년 임상" 핵심 USP가 어느 곳에도 부각되지 않음',
|
||||
recommendation: '핵심 USP 통일: "26년 강남 대표 성형외과 — 바노바기" + 시술군 + 연락처 표준 포맷',
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
// ─── Section 2: Channel Strategies ───
|
||||
channelStrategies: [
|
||||
{
|
||||
channelId: 'youtube', channelName: 'YouTube', icon: 'youtube',
|
||||
currentStatus: '13K 구독자, 925 영상 누적 — 최근 6개월 업로드 저조',
|
||||
targetGoal: '30K 구독자 / 12개월, 주 2회 정기 업로드 복구',
|
||||
contentTypes: ['Shorts (기존 925 영상 재편집)', 'Long-form (원장 인터뷰·시술 가이드)', 'Community (Q&A 투표)'],
|
||||
postingFrequency: '주 2회 (Shorts 1 + 롱폼 격주)',
|
||||
tone: '차분한 전문가 — 반재중 원장 직접 설명 교육 콘텐츠',
|
||||
formatGuidelines: [
|
||||
'Shorts: 925개 기존 영상에서 핵심 15-60초 구간 추출, 후크 3초 내',
|
||||
'Long-form: 5-12분, 안면윤곽/가슴 등 시술별 시리즈',
|
||||
'썸네일: 블랙+골드 워드마크 워터마크 통일',
|
||||
'한글 타이틀 + 영문 부제 병기 (한국 시장 타겟팅 강화)',
|
||||
],
|
||||
priority: 'P0',
|
||||
customerJourneyStage: 'consideration',
|
||||
},
|
||||
{
|
||||
channelId: 'instagram_kr', channelName: 'Instagram', icon: 'instagram',
|
||||
currentStatus: '@banobagi_ps — 4,183 팔로워, 2,000 게시물, Reels 10개 (부족)',
|
||||
targetGoal: '60K 팔로워 / 12개월, Reels 주 5개',
|
||||
contentTypes: ['Reels (YouTube Shorts 동시 배포)', 'Carousel (강남언니 6,853 리뷰 스토리화)', 'Stories (병원 일상)', 'Before/After'],
|
||||
postingFrequency: '일 1회 + Stories 일 2-3개',
|
||||
tone: '차분하지만 친근한 — 26년 신뢰감 + 환자 관점 Q&A',
|
||||
formatGuidelines: [
|
||||
'Reels: YouTube Shorts 와 동시 게시 (자산 재활용 우선)',
|
||||
'Carousel: 강남언니 리뷰 50개 선별 → 카루셀 콘텐츠 시리즈',
|
||||
'Stories: 안면윤곽/눈/코/가슴 카테고리별 하이라이트 재구성',
|
||||
'해시태그: #바노바기성형외과 #Banobagi #강남안면윤곽 #26년임상',
|
||||
],
|
||||
priority: 'P0',
|
||||
customerJourneyStage: 'interest',
|
||||
},
|
||||
{
|
||||
channelId: 'facebook_en', channelName: 'Facebook EN (국제)', icon: 'facebook',
|
||||
currentStatus: '@BanobagiPlasticSurgery — 16K 팔로워, 영문 위주, 리타겟 채널로 활용 가능',
|
||||
targetGoal: '의료관광 리타겟 광고 채널로 전환, 광고 ROAS 추적 시작',
|
||||
contentTypes: ['영문 환자 여정 콘텐츠', 'Before/After (동의서 확인)', '리타겟 광고 소재'],
|
||||
postingFrequency: '주 1-2회 + 광고 캠페인 상시',
|
||||
tone: 'Professional & warm — Korea medical tourism storytelling',
|
||||
formatGuidelines: [
|
||||
'Pixel 기반 리타겟 광고 (이미 설치 확인됨)',
|
||||
'WhatsApp 연동 활용 — 해외 상담 자동 응대',
|
||||
'영문 환자 후기 인터뷰 시리즈',
|
||||
],
|
||||
priority: 'P1',
|
||||
customerJourneyStage: 'conversion',
|
||||
},
|
||||
{
|
||||
channelId: 'facebook_kr', channelName: 'Facebook KR (신규)', icon: 'facebook',
|
||||
currentStatus: '한국 전용 페이지 부재 — 한국 환자 접근성 0',
|
||||
targetGoal: '한국 페이지 신규 개설 또는 Instagram KR 집중 결정 (3개월 내)',
|
||||
contentTypes: ['(개설 시) Reels 크로스포스팅', '광고 리타겟'],
|
||||
postingFrequency: '주 2-3회 (개설 시)',
|
||||
tone: '한국 환자 친화적 — 신뢰 기반',
|
||||
formatGuidelines: [
|
||||
'한국 KR 페이지 신규 개설 vs Instagram KR 집중 ROI 비교 후 결정',
|
||||
'개설 시: Instagram Reels 와 동일 콘텐츠 크로스포스팅',
|
||||
],
|
||||
priority: 'P2',
|
||||
customerJourneyStage: 'awareness',
|
||||
},
|
||||
{
|
||||
channelId: 'naver_blog', channelName: 'Naver Blog', icon: 'globe',
|
||||
currentStatus: '@banobagips — 마지막 포스트 2023-04-21 (2년 이상 방치, SEO 자산 잠금)',
|
||||
targetGoal: '주 2회 포스팅 즉시 재가동, 12개월 내 월 20,000 방문자',
|
||||
contentTypes: ['SEO 시술 가이드', '환자 후기 (강남언니 리뷰 가공)', 'YouTube 영상 임베드 + 텍스트 가이드'],
|
||||
postingFrequency: '주 2회 (1차 6월 내 시작)',
|
||||
tone: '정보성 전문가 — "바노바기 후기/안면윤곽/V라인" 키워드 중심',
|
||||
formatGuidelines: [
|
||||
'2,000자 이상 SEO 최적화 포스트',
|
||||
'YouTube 시술 영상 + 텍스트 가이드 결합 구조',
|
||||
'SEO 키워드 맵: "바노바기 후기", "강남 안면윤곽", "사각턱 축소", "V라인"',
|
||||
'이미지 10장 이상 + 영상 임베드 1개 이상',
|
||||
],
|
||||
priority: 'P0',
|
||||
customerJourneyStage: 'consideration',
|
||||
},
|
||||
{
|
||||
channelId: 'gangnamunni', channelName: '강남언니', icon: 'star',
|
||||
currentStatus: '9.2점/10, 6,853 리뷰 — 강남 상위권, 핵심 자산',
|
||||
targetGoal: '리뷰 응답률 80% 달성, 12개월 내 8,500 리뷰',
|
||||
contentTypes: ['리뷰 응답', '시술 정보 업데이트', '이벤트/프로모션 게시'],
|
||||
postingFrequency: '리뷰 응답: 일 단위 / 정보 업데이트: 월 1-2회',
|
||||
tone: '진심 어린 의료진 답변 — 형식적 답변 지양',
|
||||
formatGuidelines: [
|
||||
'리뷰 응답률 50%(3개월) → 80%(12개월) 단계 상향',
|
||||
'6,853 리뷰 중 50개 선별 → SNS 콘텐츠로 재가공',
|
||||
'부정 리뷰 24시간 내 응답 원칙',
|
||||
],
|
||||
priority: 'P0',
|
||||
customerJourneyStage: 'loyalty',
|
||||
},
|
||||
{
|
||||
channelId: 'tiktok', channelName: 'TikTok (신규)', icon: 'video',
|
||||
currentStatus: '계정 없음',
|
||||
targetGoal: '10K 팔로워 / 12개월, 20-30대 첫 수술 고민층 도달',
|
||||
contentTypes: ['YouTube Shorts 크로스포스팅', '트렌드 챌린지', '병원 비하인드'],
|
||||
postingFrequency: '주 5회 (YouTube Shorts 동시 배포)',
|
||||
tone: '가볍고 접근 가능한 — 20-30대 타겟',
|
||||
formatGuidelines: [
|
||||
'925 YouTube 영상 → Shorts 추출 → TikTok 동시 배포',
|
||||
'트렌딩 사운드 활용 + 자막 필수',
|
||||
'의료광고법 준수 — 과장 표현 금지',
|
||||
],
|
||||
priority: 'P1',
|
||||
customerJourneyStage: 'awareness',
|
||||
},
|
||||
{
|
||||
channelId: 'kakaotalk', channelName: 'KakaoTalk', icon: 'messageSquare',
|
||||
currentStatus: '02-1588-6508 대표번호 + 카카오 채널 운영',
|
||||
targetGoal: '카카오 채널 친구 수 확보, 상담 전환율 30% 향상',
|
||||
contentTypes: ['상담 안내', '예약 확인', '월 1회 시술 정보 발송'],
|
||||
postingFrequency: '주 1-2회 메시지 발송',
|
||||
tone: '따뜻하고 전문적인 — 1:1 상담 톤',
|
||||
formatGuidelines: [
|
||||
'자동 응답 시나리오 — 안면윤곽/가슴/눈/코 시술별 분기',
|
||||
'예약 리마인더 자동 발송',
|
||||
'한국어 + 영문/중문 옵션 (의료관광 대비)',
|
||||
],
|
||||
priority: 'P1',
|
||||
customerJourneyStage: 'conversion',
|
||||
},
|
||||
],
|
||||
|
||||
// ─── Section 3: Content Strategy ───
|
||||
contentStrategy: {
|
||||
pillars: [
|
||||
{
|
||||
title: '26년 임상의 원칙',
|
||||
description: '2000년 개원 이래 26년간 축적한 임상 데이터와 수술 철학을 보여주는 콘텐츠',
|
||||
relatedUSP: '26 Years of Clinical Experience',
|
||||
exampleTopics: ['반재중 원장의 안면윤곽 철학', '26년간 변하지 않은 원칙 3가지', '바노바기의 분야별 공동 진료 시스템'],
|
||||
color: '#1A1A1A',
|
||||
},
|
||||
{
|
||||
title: '안면윤곽 전문성',
|
||||
description: '바노바기의 핵심 USP인 안면윤곽 분야의 깊이 있는 교육·기술 콘텐츠',
|
||||
relatedUSP: 'Facial Contouring Authority',
|
||||
exampleTopics: ['사각턱 축소 — 골격별 맞춤 디자인', 'V라인 자연스러움의 기준', '안면윤곽 후 회복 타임라인'],
|
||||
color: '#C8A96A',
|
||||
},
|
||||
{
|
||||
title: '6,853 리뷰의 진심',
|
||||
description: '강남언니 6,853 리뷰를 환자의 목소리로 재구성, 진솔한 후기 콘텐츠',
|
||||
relatedUSP: 'Patient-Validated Trust',
|
||||
exampleTopics: ['실제 환자 인터뷰 시리즈', '강남언니 베스트 리뷰 카루셀', '수술 결정부터 회복까지 환자 다이어리'],
|
||||
color: '#6B6B6B',
|
||||
},
|
||||
{
|
||||
title: '안전 시스템',
|
||||
description: '마취과 전문의 상주, 분야별 공동 진료 등 바노바기의 안전 인프라',
|
||||
relatedUSP: 'Safety Infrastructure',
|
||||
exampleTopics: ['마취과 전문의가 상주하는 이유', '본관+별관 시설 투어', '시술 후 관리 프로토콜'],
|
||||
color: '#FAF7F2',
|
||||
},
|
||||
],
|
||||
typeMatrix: [
|
||||
{ format: 'YouTube Long-form', channels: ['YouTube'], frequency: '격주 1회', purpose: '26년 임상 전문성 증명, 깊은 신뢰 구축' },
|
||||
{ format: 'Shorts / Reels', channels: ['YouTube', 'Instagram', 'TikTok'], frequency: '주 5개', purpose: '925 영상 자산 재활용, 도달 확대' },
|
||||
{ format: 'Carousel (리뷰 스토리)', channels: ['Instagram'], frequency: '주 2회', purpose: '강남언니 6,853 리뷰 → 사회적 증거화' },
|
||||
{ format: 'Blog Post (SEO)', channels: ['Naver Blog'], frequency: '주 2회', purpose: '2년 방치된 SEO 자산 복구, 검색 유입' },
|
||||
{ format: 'Stories', channels: ['Instagram'], frequency: '일 2-3개', purpose: '병원 일상·상담 비하인드' },
|
||||
{ format: 'Ad Creative (EN)', channels: ['Facebook EN', 'Instagram'], frequency: '월 4-6개', purpose: '의료관광 리타겟, Pixel 기반 전환' },
|
||||
],
|
||||
workflow: [
|
||||
{ step: 1, name: '기존 자산 인벤토리', description: '925 YouTube 영상 + 2,000 IG 게시물 + 6,853 강남언니 리뷰 카탈로그화', owner: '마케팅 매니저', duration: '1-2주 (1회성)' },
|
||||
{ step: 2, name: '주제 선정', description: '시술별 검색 키워드 + 콘텐츠 필러 매칭', owner: '마케팅 매니저', duration: '1일' },
|
||||
{ step: 3, name: '초안 작성/추출', description: 'AI 초안 생성 또는 기존 영상에서 Shorts 추출', owner: 'AI + 콘텐츠 팀', duration: '1-2일' },
|
||||
{ step: 4, name: '의료 검수', description: '반재중 원장 + 분야별 전문의 검토 (의료광고법 포함)', owner: '의료진', duration: '1일' },
|
||||
{ step: 5, name: '비주얼 마감', description: '블랙+골드 워터마크, 한글/영문 자막 추가', owner: '디자인 팀', duration: '1일' },
|
||||
{ step: 6, name: '배포 & 모니터링', description: '채널별 최적 시간 게시 + UTM 추적', owner: '마케팅 매니저', duration: '당일' },
|
||||
],
|
||||
repurposingSource: '1개 원장 롱폼 영상 (10분) 또는 925 영상 아카이브 1편',
|
||||
repurposingOutputs: [
|
||||
{ format: 'YouTube Long-form', channel: 'YouTube', description: '원본 풀 영상 업로드 (한글/영문 자막)' },
|
||||
{ format: 'Shorts 3-5개', channel: 'YouTube / Instagram / TikTok', description: '핵심 구간 15-60초 추출, 3채널 동시 배포' },
|
||||
{ format: 'Carousel 1-2개', channel: 'Instagram', description: '시술 가이드 카드뉴스로 재구성' },
|
||||
{ format: 'Blog Post 1개', channel: 'Naver Blog', description: '영상 스크립트 → 2,000자 SEO 포스트 (영상 임베드 포함)' },
|
||||
{ format: 'Stories 3-5개', channel: 'Instagram', description: '촬영 비하인드 + Q&A 스니펫' },
|
||||
{ format: 'Ad Creative 2개', channel: 'Facebook EN / Instagram', description: '의료관광 리타겟용 영문 광고 소재' },
|
||||
],
|
||||
},
|
||||
|
||||
// ─── Section 4: Content Calendar ───
|
||||
calendar: {
|
||||
weeks: [
|
||||
{
|
||||
weekNumber: 1, label: 'Week 1: 브랜드 정비 & 블로그 재가동',
|
||||
entries: [
|
||||
{ dayOfWeek: 0, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: '재가동 1편: 26년 바노바기, 다시 시작합니다 — 시술 카테고리 가이드' },
|
||||
{ dayOfWeek: 1, channel: 'Instagram', channelIcon: 'instagram', contentType: 'social', title: '프로필 리뉴얼 공지 + 첫 Reel (블랙+골드 통일)' },
|
||||
{ dayOfWeek: 2, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: 'Shorts: 안면윤곽 Q&A — 사각턱 축소 #1' },
|
||||
{ dayOfWeek: 3, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: '안면윤곽 수술 종류와 회복기간 — 26년 임상 기준' },
|
||||
{ dayOfWeek: 3, channel: 'Instagram', channelIcon: 'instagram', contentType: 'social', title: 'Carousel: 강남언니 6,853 리뷰 중 베스트 5' },
|
||||
{ dayOfWeek: 4, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: '롱폼: 반재중 원장 — 바노바기의 26년 원칙' },
|
||||
{ dayOfWeek: 5, channel: 'Instagram', channelIcon: 'instagram', contentType: 'social', title: 'Reel: 본관+별관 시설 투어' },
|
||||
],
|
||||
},
|
||||
{
|
||||
weekNumber: 2, label: 'Week 2: 안면윤곽 집중 주간',
|
||||
entries: [
|
||||
{ dayOfWeek: 0, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: 'V라인의 자연스러움 기준 — 골격별 맞춤 디자인' },
|
||||
{ dayOfWeek: 1, channel: 'Instagram', channelIcon: 'instagram', contentType: 'social', title: 'Reel: 안면윤곽 전후 변화 (동의 환자)' },
|
||||
{ dayOfWeek: 2, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: 'Shorts: 사각턱 축소 과정 30초' },
|
||||
{ dayOfWeek: 2, channel: 'Instagram', channelIcon: 'instagram', contentType: 'social', title: 'Carousel: 안면윤곽 후 회복 타임라인' },
|
||||
{ dayOfWeek: 3, channel: 'Facebook', channelIcon: 'facebook', contentType: 'ad', title: '광고(EN): 의료관광 안면윤곽 인콰이어리 (리타겟)' },
|
||||
{ dayOfWeek: 4, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: 'Shorts: 환자 후기 인터뷰 #1' },
|
||||
{ dayOfWeek: 4, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: '바노바기 안면윤곽 후기 — 강남언니 검증' },
|
||||
],
|
||||
},
|
||||
{
|
||||
weekNumber: 3, label: 'Week 3: 가슴·눈·코 시술 콘텐츠',
|
||||
entries: [
|
||||
{ dayOfWeek: 0, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: '롱폼: 가슴성형 — 보형물 종류와 선택 기준' },
|
||||
{ dayOfWeek: 1, channel: 'Instagram', channelIcon: 'instagram', contentType: 'social', title: 'Reel: 코성형 자연스러운 라인' },
|
||||
{ dayOfWeek: 1, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: '눈성형 쌍꺼풀 수술 FAQ — 26년 임상 답변' },
|
||||
{ dayOfWeek: 2, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: 'Shorts: 가슴성형 회복 1주 차' },
|
||||
{ dayOfWeek: 3, channel: 'Instagram', channelIcon: 'instagram', contentType: 'social', title: 'Carousel: 눈성형 4가지 디자인 비교' },
|
||||
{ dayOfWeek: 4, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: 'Shorts: 마취과 전문의가 상주합니다' },
|
||||
{ dayOfWeek: 4, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: '바노바기 안전 시스템 — 마취 전문의 상주의 의미' },
|
||||
],
|
||||
},
|
||||
{
|
||||
weekNumber: 4, label: 'Week 4: 전환 & 리뷰 응답 강화',
|
||||
entries: [
|
||||
{ dayOfWeek: 0, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: '롱폼: 분야별 공동 진료 시스템 — 4명 전문의의 협진' },
|
||||
{ dayOfWeek: 0, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: '첫 성형 상담, 이것만 준비하세요 — 바노바기 가이드' },
|
||||
{ dayOfWeek: 1, channel: 'Instagram', channelIcon: 'instagram', contentType: 'social', title: 'Reel: 상담 비하인드 — 3D 시뮬레이션 데모' },
|
||||
{ dayOfWeek: 2, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: 'Shorts: 반재중 원장 한 줄 답변 모음' },
|
||||
{ dayOfWeek: 3, channel: 'Instagram', channelIcon: 'instagram', contentType: 'social', title: 'Carousel: 카카오 상담 예약 4단계' },
|
||||
{ dayOfWeek: 3, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: '강남언니 9.2점, 6,853 리뷰의 의미 — 환자가 검증한 26년' },
|
||||
{ dayOfWeek: 4, channel: 'Facebook', channelIcon: 'facebook', contentType: 'ad', title: '광고(EN): 월말 의료관광 상담 CTA' },
|
||||
],
|
||||
},
|
||||
],
|
||||
monthlySummary: [
|
||||
{ type: 'video', label: '영상 (롱폼+Shorts)', count: 14, color: '#1A1A1A' },
|
||||
{ type: 'blog', label: '블로그', count: 8, color: '#C8A96A' },
|
||||
{ type: 'social', label: 'Instagram', count: 9, color: '#6B6B6B' },
|
||||
{ type: 'ad', label: '광고', count: 2, color: '#FAF7F2' },
|
||||
],
|
||||
},
|
||||
|
||||
// ─── Section 5: Asset Collection ───
|
||||
assetCollection: {
|
||||
assets: [
|
||||
{ id: 'a1', source: 'youtube', sourceLabel: 'YouTube', type: 'video', title: '925 영상 아카이브 (13년 누적)', description: '2013년 개설 이래 누적 925개 영상 — Shorts 추출 최우선 자산', repurposingSuggestions: ['Shorts 200개 추출 (P0)', 'Instagram Reels 변환', 'TikTok 크로스포스팅', '블로그 포스트 임베드'], status: 'collected' },
|
||||
{ id: 'a2', source: 'social', sourceLabel: '강남언니', type: 'text', title: '강남언니 환자 리뷰 6,853건', description: '9.2점/10 평균, 시술별 실 환자 후기 — 사회적 증거 핵심 자산', repurposingSuggestions: ['후기 50개 선별 → Carousel 시리즈', 'Instagram Stories 시리즈', '광고 소셜프루프', 'Blog 환자 스토리'], status: 'pending' },
|
||||
{ id: 'a3', source: 'homepage', sourceLabel: '홈페이지', type: 'photo', title: '본관+별관 시설 사진', description: '본관 6층 + 별관 5층 외관/내부 인테리어 고화질 사진', repurposingSuggestions: ['Instagram 시설 투어 Reel', '유튜브 B-roll', '블로그 위치 안내'], status: 'collected' },
|
||||
{ id: 'a4', source: 'homepage', sourceLabel: '홈페이지', type: 'photo', title: '의료진 4명 프로필', description: '반재중 대표원장 + 분야별 전문의 4명 프로필 사진·경력', repurposingSuggestions: ['원장 소개 Carousel', '유튜브 인터뷰 섬네일', '블로그 의료진 페이지'], status: 'collected' },
|
||||
{ id: 'a5', source: 'homepage', sourceLabel: '홈페이지', type: 'text', title: '시술 카테고리 6종 설명', description: '안면윤곽/눈/코/가슴/지방체형/리프팅 시술별 상세 설명', repurposingSuggestions: ['블로그 SEO 포스트 소스', 'Carousel 텍스트', '광고 카피'], status: 'collected' },
|
||||
{ id: 'a6', source: 'social', sourceLabel: 'Instagram', type: 'photo', title: 'Instagram 게시물 2,000개', description: '@banobagi_ps 누적 2,000 게시물 (B/A · 카드뉴스 혼합)', repurposingSuggestions: ['고성과 게시물 → Reel 변환', 'Carousel 재편집', '광고 소재 추출'], status: 'collected' },
|
||||
{ id: 'a7', source: 'blog', sourceLabel: '네이버 블로그', type: 'text', title: '기존 블로그 포스트 (2023-04 이전)', description: '2년 방치 전 포스트 — SEO 키워드 분석 후 리라이팅 대상', repurposingSuggestions: ['고트래픽 포스트 리라이팅', '키워드 맵 추출', '내부 링크 재구성'], status: 'pending' },
|
||||
{ id: 'a8', source: 'naver_place', sourceLabel: '네이버 플레이스', type: 'photo', title: '네이버 플레이스 사진/리뷰', description: '플레이스 등록 사진 + 리뷰 (응답률 최적화 대상)', repurposingSuggestions: ['리뷰 응답 시스템화', '플레이스 사진 업데이트', '구글 마이비즈니스 동기화'], status: 'pending' },
|
||||
{ id: 'a9', source: 'homepage', sourceLabel: '홈페이지', type: 'photo', title: '시술별 전후 사진 갤러리', description: '안면윤곽/눈/코/가슴 시술별 비포/애프터 (동의서 보유 분)', repurposingSuggestions: ['Instagram B/A 시리즈', 'Shorts 전환 소스', '상담 자료'], status: 'collected' },
|
||||
{ id: 'a10', source: 'homepage', sourceLabel: '홈페이지', type: 'video', title: '병원 소개 영상 (제작 필요)', description: '26년 역사 + 시설 + 의료진 통합 브랜드 영상 — 신규 제작', repurposingSuggestions: ['브랜드 스토리 Reel', '웹사이트 히어로 영상', 'YouTube 채널 트레일러'], status: 'needs_creation' },
|
||||
{ id: 'a11', source: 'social', sourceLabel: '의료관광', type: 'video', title: '영문 환자 인터뷰 (제작 필요)', description: '의료관광 환자 영문 인터뷰 시리즈 — Facebook EN 16K 활성화용', repurposingSuggestions: ['Facebook EN 시리즈', 'Instagram EN Reels', 'WhatsApp 상담 자료'], status: 'needs_creation' },
|
||||
],
|
||||
youtubeRepurpose: [
|
||||
{ title: '바노바기 안면윤곽 재생목록 베스트', views: 0, type: 'Long', repurposeAs: ['Shorts 5개 추출', 'Instagram Carousel', 'Blog 임베드'] },
|
||||
{ title: '눈성형 시술 가이드', views: 0, type: 'Long', repurposeAs: ['Shorts 3개 추출', 'Reels 동시 배포', 'Blog 변환'] },
|
||||
{ title: '코성형 시술 가이드', views: 0, type: 'Long', repurposeAs: ['Shorts 3개 추출', 'TikTok 크로스포스팅', 'Carousel'] },
|
||||
{ title: '가슴성형 시술 가이드', views: 0, type: 'Long', repurposeAs: ['Shorts 5개 추출', 'Instagram Reel', 'Blog 변환'] },
|
||||
{ title: '지방체형 시술 가이드', views: 0, type: 'Long', repurposeAs: ['Shorts 추출', 'Reel 시리즈'] },
|
||||
{ title: '리프팅·동안성형 가이드', views: 0, type: 'Long', repurposeAs: ['Shorts 추출', 'Carousel', 'Blog'] },
|
||||
],
|
||||
},
|
||||
|
||||
// ─── Section 6: Repurposing Proposals ───
|
||||
repurposingProposals: [
|
||||
{
|
||||
sourceVideo: { title: '925 영상 → 안면윤곽 베스트 추출', views: 0, type: 'Long', repurposeAs: [] },
|
||||
estimatedEffort: 'high',
|
||||
priority: 'high',
|
||||
outputs: [
|
||||
{ format: 'Shorts 50개 (1차)', channel: 'YouTube / Instagram / TikTok', description: '925 영상 중 안면윤곽 카테고리 우선 추출 — 3개월 분량 확보' },
|
||||
{ format: 'Carousel 10개', channel: 'Instagram', description: '시술 단계·회복 타임라인 카드뉴스화' },
|
||||
{ format: 'Blog Post 5개', channel: 'Naver Blog', description: '영상 스크립트 → SEO 포스트 변환 (재가동 콘텐츠)' },
|
||||
],
|
||||
},
|
||||
{
|
||||
sourceVideo: { title: '강남언니 6,853 리뷰 → 콘텐츠화', views: 6853, type: 'Long', repurposeAs: [] },
|
||||
estimatedEffort: 'medium',
|
||||
priority: 'high',
|
||||
outputs: [
|
||||
{ format: 'Carousel 시리즈 20개', channel: 'Instagram', description: '시술별 베스트 리뷰 카드뉴스 — 익명화 + 동의 확인' },
|
||||
{ format: 'Stories 시리즈', channel: 'Instagram', description: '환자 다이어리 형식 Stories' },
|
||||
{ format: '광고 소셜프루프', channel: 'Facebook EN / Instagram', description: '"6,853 리뷰의 진심" 메시지 광고 소재' },
|
||||
{ format: 'Blog 환자 스토리', channel: 'Naver Blog', description: '리뷰 → 환자 여정 스토리 블로그 변환' },
|
||||
],
|
||||
},
|
||||
{
|
||||
sourceVideo: { title: '반재중 원장 인터뷰 (롱폼 신규 제작)', views: 0, type: 'Long', repurposeAs: [] },
|
||||
estimatedEffort: 'medium',
|
||||
priority: 'high',
|
||||
outputs: [
|
||||
{ format: 'Shorts 5개 추출', channel: 'YouTube / TikTok', description: '"바노바기의 26년 원칙" 핵심 구간 클립' },
|
||||
{ format: 'Carousel', channel: 'Instagram', description: '원장 철학 카드뉴스' },
|
||||
{ format: 'Blog Post', channel: 'Naver Blog', description: '인터뷰 풀 스크립트 → 2,500자 SEO 포스트' },
|
||||
{ format: '광고 소재', channel: 'Facebook EN', description: '"26 Years of Excellence" 영문 광고' },
|
||||
],
|
||||
},
|
||||
{
|
||||
sourceVideo: { title: '본관+별관 시설 투어 (신규 제작)', views: 0, type: 'Short', repurposeAs: [] },
|
||||
estimatedEffort: 'low',
|
||||
priority: 'medium',
|
||||
outputs: [
|
||||
{ format: 'Instagram Reel', channel: 'Instagram', description: '시설 투어 60초 Reel' },
|
||||
{ format: 'TikTok', channel: 'TikTok', description: '동일 영상 TikTok 동시 배포' },
|
||||
{ format: 'Stories 시리즈', channel: 'Instagram', description: '구역별 Stories (대기실/상담실/수술실 외관)' },
|
||||
],
|
||||
},
|
||||
],
|
||||
|
||||
// ─── Section 7: Workflow Tracker ───
|
||||
workflow: {
|
||||
items: [
|
||||
{
|
||||
id: 'wf-001',
|
||||
title: '안면윤곽 사각턱 축소 Shorts (925 영상 추출)',
|
||||
contentType: 'video',
|
||||
channel: 'YouTube Shorts',
|
||||
channelIcon: 'youtube',
|
||||
stage: 'ai-draft',
|
||||
videoDraft: {
|
||||
script: `[인트로 — 0~3초]\n"사각턱, 깎는다고 다 V라인 되는 게 아닙니다."\n(전 사진 → 후 사진 전환)\n\n[본문 — 3~25초]\n"바노바기는 골격 분석부터 시작합니다."\n"턱 끝, 광대, 옆모습 비율을 함께 보고"\n"26년 임상 기준으로 디자인합니다."\n(수술 과정 그래픽 삽입)\n\n[CTA — 25~30초]\n"강남언니 6,853 리뷰 — 프로필 링크 확인"`,
|
||||
shootingGuide: [
|
||||
'925 영상 아카이브에서 안면윤곽 카테고리 베스트 컷 추출',
|
||||
'블랙+골드 워드마크 우측 하단 워터마크 통일',
|
||||
'한글 자막 필수 + 영문 자막 옵션',
|
||||
'환자 동의서 확인 후 비식별화 처리',
|
||||
],
|
||||
duration: '30초',
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'wf-002',
|
||||
title: '강남언니 베스트 리뷰 5선 Carousel',
|
||||
contentType: 'image-text',
|
||||
channel: 'Instagram',
|
||||
channelIcon: 'instagram',
|
||||
stage: 'review',
|
||||
userNotes: '리뷰 인용 시 환자 동의 절차 다시 확인 부탁드립니다',
|
||||
imageTextDraft: {
|
||||
type: 'cardnews',
|
||||
headline: '강남언니 6,853 리뷰 중 — 진심이 담긴 5개',
|
||||
copy: [
|
||||
'[카드 1] "26년 임상이 어떤 의미인지 상담받고 알았어요" — 안면윤곽 환자',
|
||||
'[카드 2] "마취 전문의가 상주한다는 게 이렇게 든든할 줄 몰랐습니다" — 가슴 환자',
|
||||
'[카드 3] "수술 후 케어가 오래 이어져서 안심했어요" — 눈 환자',
|
||||
'[카드 4] "분야별 전문의 협진이 결과의 디테일을 만든다" — 코 환자',
|
||||
'[카드 5] 9.2점 / 6,853 리뷰 — 강남언니에서 직접 확인하세요',
|
||||
],
|
||||
layoutHint: '5장 카드 세로형, 블랙+골드 컬러, 마지막 카드에 강남언니 링크 CTA',
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'wf-003',
|
||||
title: '네이버 블로그 재가동 1편 — 26년 인사',
|
||||
contentType: 'image-text',
|
||||
channel: 'Naver Blog',
|
||||
channelIcon: 'globe',
|
||||
stage: 'planning',
|
||||
imageTextDraft: {
|
||||
type: 'blog',
|
||||
headline: '바노바기성형외과 블로그, 다시 시작합니다 — 26년의 약속',
|
||||
copy: [
|
||||
'2년간 멈춰 있던 블로그를 다시 엽니다.',
|
||||
'바노바기는 2000년부터 26년간 강남에서 한 자리를 지켰습니다.',
|
||||
'안면윤곽·눈·코·가슴·지방체형·리프팅 6개 카테고리 가이드를 매주 두 번씩 올립니다.',
|
||||
'의료진 4명 — 분야별 공동 진료 시스템을 이 블로그에서 자세히 소개할 예정입니다.',
|
||||
'본관 6층 + 별관 5층의 시설 투어, 마취과 전문의 상주 시스템도 곧 다룹니다.',
|
||||
'강남언니에 쌓인 6,853 리뷰의 진심을 — 이 블로그에서 더 자세히 풀어드리겠습니다.',
|
||||
],
|
||||
layoutHint: '1200px 썸네일 + 본문 2,000자 이상, 키워드: 바노바기성형외과, 강남 안면윤곽, 26년 임상',
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'wf-004',
|
||||
title: '반재중 원장 26년 원칙 — YouTube 롱폼',
|
||||
contentType: 'video',
|
||||
channel: 'YouTube',
|
||||
channelIcon: 'youtube',
|
||||
stage: 'approved',
|
||||
scheduledDate: '2026-04-21',
|
||||
videoDraft: {
|
||||
script: `[오프닝]\n"안녕하세요, 바노바기성형외과 반재중입니다."\n"오늘은 26년간 변하지 않은 3가지 원칙을 말씀드립니다."\n\n[원칙 1: 골격 분석]\n"디자인은 사진이 아니라 골격에서 시작합니다."\n\n[원칙 2: 분야별 협진]\n"한 명의 의사가 모든 것을 결정하지 않습니다."\n\n[원칙 3: 회복까지의 책임]\n"수술이 끝이 아니라, 회복이 끝입니다."\n\n[클로징]\n"26년, 6,853 리뷰가 증명합니다. 바노바기성형외과."`,
|
||||
shootingGuide: [
|
||||
'본관 상담실 자연광 촬영',
|
||||
'원장 정면 + 3/4 앵글 2채널',
|
||||
'시설 B-roll: 본관/별관 외관, 수술실 입구, 마취 장비',
|
||||
'한글 자막 + 영문 자막 (의료관광 대비)',
|
||||
'블랙+골드 인트로/아웃트로 6초 통일',
|
||||
],
|
||||
duration: '8분',
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'wf-005',
|
||||
title: '본관+별관 시설 투어 TikTok',
|
||||
contentType: 'video',
|
||||
channel: 'TikTok',
|
||||
channelIcon: 'video',
|
||||
stage: 'scheduled',
|
||||
scheduledDate: '2026-04-18',
|
||||
videoDraft: {
|
||||
script: `"강남 한가운데 본관 6층 + 별관 5층."\n(시설 점프컷)\n"마취과 전문의가 상주합니다."\n"분야별 전문의 4명이 협진합니다."\n"2000년부터 26년 — 바노바기성형외과."\n#강남성형외과 #안면윤곽 #바노바기`,
|
||||
shootingGuide: [
|
||||
'세로 9:16 촬영',
|
||||
'점프컷 위주 편집 (CapCut)',
|
||||
'블랙+골드 워드마크 좌측 상단 고정',
|
||||
'트렌딩 사운드 + 자막 필수',
|
||||
],
|
||||
duration: '20초',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
|
|
@ -0,0 +1,440 @@
|
|||
import type { MarketingPlan } from '../types/plan';
|
||||
|
||||
/**
|
||||
* 그랜드성형외과 — 데모 마케팅 플랜
|
||||
*
|
||||
* 리포트 근거 (`mockReport_grand.ts` 2026-04-14 실측):
|
||||
* - YouTube @grandsurgery_QnA: 2.37K 구독자, 332 영상, 업로드 ~0/week (사실상 중단)
|
||||
* - Instagram @grand_korea: 4,013 팔로워
|
||||
* - Facebook @grandps.korea: 26,000 팔로워 (KR+EN 혼합)
|
||||
* - 네이버 블로그 @grandprs: 업로드 저조
|
||||
* - 강남언니: 9.8점/1,533 리뷰
|
||||
* - 이세환 원장, 안면거상·리프팅 전문, 압구정역, 2005년 설립 (21년)
|
||||
* - Primary: Navy Blue (#1B3A6B), Accent: Sky Blue (#4A90D9)
|
||||
*/
|
||||
export const mockPlanGrand: MarketingPlan = {
|
||||
id: 'grand',
|
||||
reportId: 'grand',
|
||||
clinicName: '그랜드성형외과',
|
||||
clinicNameEn: 'Grand Plastic Surgery',
|
||||
createdAt: '2026-04-14',
|
||||
targetUrl: 'https://www.grandps.com',
|
||||
|
||||
// ─── Section 1: Brand Guide ───
|
||||
brandGuide: {
|
||||
colors: [
|
||||
{ name: 'Grand Navy', hex: '#1B3A6B', usage: '공식 로고 메인, 헤딩, 강조 텍스트' },
|
||||
{ name: 'Grand Sky Blue', hex: '#4A90D9', usage: '로고 악센트, CTA 포인트, 링크' },
|
||||
{ name: 'Crisp White', hex: '#FAFAFA', usage: '배경, 카드, 여백' },
|
||||
{ name: 'Deep Navy Text', hex: '#1B2A4A', usage: '본문 텍스트' },
|
||||
{ name: 'Slate Gray', hex: '#5A6A7A', usage: '서브 텍스트, 메타 정보' },
|
||||
],
|
||||
fonts: [
|
||||
{ family: 'Pretendard', weight: 'Bold 700', usage: '헤딩, 섹션 타이틀', sampleText: '압구정 안면거상·리프팅 전문' },
|
||||
{ family: 'Pretendard', weight: 'Regular 400', usage: '본문 텍스트', sampleText: '그랜드성형외과 이세환 원장' },
|
||||
{ family: 'Playfair Display', weight: 'Bold 700', usage: '영문 헤딩', sampleText: 'GRAND Plastic Surgery' },
|
||||
],
|
||||
logoRules: [
|
||||
{ rule: 'Navy+Sky Blue 공식 로고 통일', description: '그랜드성형외과 공식 로고(네이비+스카이블루)를 모든 채널에서 동일하게 사용', correct: true },
|
||||
{ rule: '원형 프로필 버전 제작', description: '소셜 프로필 전용 원형 버전 1080×1080 제작 필요 (현재 미제작)', correct: false },
|
||||
{ rule: '가로형 로고: 영문+한글 병기', description: 'GRAND + "그랜드성형외과" 병기 가로형 버전 — 배너·헤더용', correct: true },
|
||||
{ rule: '전문성 태그라인 추가', description: '"압구정 안면거상·리프팅 전문" 태그라인을 로고 하단 병기 검토', correct: true },
|
||||
{ rule: '로고 주변 여백 확보', description: '로고 크기 30% 이상 여백 유지', correct: true },
|
||||
],
|
||||
toneOfVoice: {
|
||||
personality: ['전문적', '신뢰감 있는', '기술 중심', '결과 지향', '차분한 권위'],
|
||||
communicationStyle: '이세환 원장의 안면거상·리프팅 전문 기술력을 핵심으로, 과장 없이 정확한 의료 정보와 케이스 결과로 신뢰를 구축합니다.',
|
||||
doExamples: [
|
||||
'"안면거상은 피부가 아니라 근막을 바로잡는 수술입니다"',
|
||||
'"21년, 결과로 말합니다 — 그랜드성형외과"',
|
||||
'"이세환 원장의 Q&A — 궁금한 것을 직접 답합니다"',
|
||||
'"강남언니 9.8점 · 1,533건의 검증"',
|
||||
],
|
||||
dontExamples: [
|
||||
'"파격 할인! 오늘만!"',
|
||||
'"연예인 시술 병원"',
|
||||
'"100% 만족 보장"',
|
||||
],
|
||||
},
|
||||
channelBranding: [
|
||||
{ channel: 'YouTube', icon: 'youtube', profilePhoto: 'Grand Navy 원형 로고 1080×1080', bannerSpec: '2560×1440px, Navy 배경 + Sky Blue 악센트, "압구정 안면거상·리프팅 전문의 Q&A"', bioTemplate: '그랜드성형외과 Q&A — 이세환 원장\n안면거상·리프팅·코성형 전문\n02-547-5100 | grandps.com', currentStatus: 'incorrect' },
|
||||
{ channel: 'Instagram', icon: 'instagram', profilePhoto: 'Grand Navy 원형 로고', bannerSpec: 'N/A (하이라이트: Navy 톤 아이콘 — 안면거상/리프팅/코/가슴/후기)', bioTemplate: '그랜드성형외과 공식 — 이세환 원장\n압구정역 | 02-547-5100\ngrandps.com', currentStatus: 'incorrect' },
|
||||
{ channel: 'Facebook', icon: 'facebook', profilePhoto: 'Grand Navy 원형 로고', bannerSpec: '820×312px, Navy+Sky Blue 배너 + 전문성 태그라인', bioTemplate: '그랜드성형외과 공식 — 압구정 안면거상·리프팅 전문', currentStatus: 'incorrect' },
|
||||
{ channel: 'Naver Blog', icon: 'globe', profilePhoto: 'Grand 로고', bannerSpec: '블로그 상단: 로고 + "안면거상·리프팅 전문 Q&A" 카테고리 메뉴', bioTemplate: '그랜드성형외과 공식 블로그\n안면거상·리프팅·코성형·가슴성형 전문 정보', currentStatus: 'incorrect' },
|
||||
{ channel: 'TikTok', icon: 'video', profilePhoto: 'Grand Navy 원형 로고', bannerSpec: 'N/A', bioTemplate: '그랜드성형외과 — 이세환 원장 Q&A\n압구정 | 02-547-5100', currentStatus: 'missing' },
|
||||
],
|
||||
brandInconsistencies: [
|
||||
{
|
||||
field: '전문성 포지셔닝',
|
||||
values: [
|
||||
{ channel: 'YouTube', value: '그랜드성형외과Q&A (Q&A 채널명)', isCorrect: true },
|
||||
{ channel: 'Instagram', value: '그랜드성형외과 공식 계정 (전문성 USP 없음)', isCorrect: false },
|
||||
{ channel: 'Facebook', value: '그랜드성형외과 공식 Facebook', isCorrect: false },
|
||||
{ channel: 'Website', value: '안면거상·리프팅 명시 (부분)', isCorrect: true },
|
||||
],
|
||||
impact: '"압구정 안면거상·리프팅 전문"이라는 핵심 USP가 YouTube 채널명에만 일부 반영. 나머지 채널에서 전문성 포지셔닝 부재',
|
||||
recommendation: '전 채널 바이오에 "안면거상·리프팅 전문 이세환 원장" 명시',
|
||||
},
|
||||
{
|
||||
field: '업로드 빈도',
|
||||
values: [
|
||||
{ channel: 'YouTube', value: '~0/week (사실상 중단)', isCorrect: false },
|
||||
{ channel: 'Instagram', value: '저빈도', isCorrect: false },
|
||||
{ channel: 'Naver Blog', value: '저빈도', isCorrect: false },
|
||||
],
|
||||
impact: '전 채널 업로드 중단 상태 — 신규 환자 유입 경로가 거의 없음',
|
||||
recommendation: 'YouTube·Instagram·Blog 동시 재가동 — 안면거상 전문 콘텐츠 우선',
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
// ─── Section 2: Channel Strategies ───
|
||||
channelStrategies: [
|
||||
{
|
||||
channelId: 'youtube', channelName: 'YouTube', icon: 'youtube',
|
||||
currentStatus: '@grandsurgery_QnA — 2.37K 구독자, 332 영상, 업로드 사실상 중단',
|
||||
targetGoal: '10K 구독자 / 12개월, 주 2회 업로드 재개',
|
||||
contentTypes: ['Shorts (332 영상 재편집)', '안면거상 전문 롱폼', '이세환 원장 Q&A 시리즈'],
|
||||
postingFrequency: '주 2회 (Shorts 1 + 롱폼 격주)',
|
||||
tone: '전문의 직접 설명 — "이세환 원장이 말하는 안면거상"',
|
||||
formatGuidelines: [
|
||||
'Shorts: 332 Q&A 영상에서 핵심 30-60초 추출',
|
||||
'롱폼: 안면거상 케이스 스터디 월 2편 — 전후 비교 중심',
|
||||
'썸네일: Navy+Sky Blue 통일, 이세환 원장 + 케이스 사진',
|
||||
'타이틀: "압구정 안면거상 전문의가 말하는 ___" 패턴',
|
||||
],
|
||||
priority: 'P0',
|
||||
customerJourneyStage: 'consideration',
|
||||
},
|
||||
{
|
||||
channelId: 'instagram_kr', channelName: 'Instagram', icon: 'instagram',
|
||||
currentStatus: '@grand_korea — 4,013 팔로워, 카드뉴스·이미지 위주 (Reels 부족)',
|
||||
targetGoal: '25K 팔로워 / 12개월, Reels 주 4개',
|
||||
contentTypes: ['Reels (YouTube Shorts 동시)', 'Before/After Carousel', '이세환 원장 Q&A Stories'],
|
||||
postingFrequency: '일 1회 + Stories 일 2개',
|
||||
tone: '차분하고 전문적인 — 안면거상 결과로 설득',
|
||||
formatGuidelines: [
|
||||
'Reels: YouTube Shorts 동시 배포',
|
||||
'Carousel: 안면거상·리프팅 전후 케이스 5-7장',
|
||||
'Highlight: 안면거상/코성형/가슴/리프팅/후기 재구성',
|
||||
'해시태그: #그랜드성형외과 #압구정안면거상 #이세환원장 #리프팅전문',
|
||||
],
|
||||
priority: 'P0',
|
||||
customerJourneyStage: 'interest',
|
||||
},
|
||||
{
|
||||
channelId: 'facebook', channelName: 'Facebook', icon: 'facebook',
|
||||
currentStatus: '@grandps.korea — 26,000 팔로워, 콘텐츠 빈도 낮음',
|
||||
targetGoal: 'Instagram 크로스포스팅 + Pixel 리타겟 활용',
|
||||
contentTypes: ['Instagram 크로스포스팅', '리타겟 광고 소재'],
|
||||
postingFrequency: '주 2-3회 (자동 크로스포스팅 위주)',
|
||||
tone: '안면거상·리프팅 결과 중심 — 40~55세 여성 타겟',
|
||||
formatGuidelines: [
|
||||
'Instagram 콘텐츠 자동 연동 유지',
|
||||
'Pixel 광고: 안면거상 관심사 타겟 — 40~55세 여성',
|
||||
'26K 팔로워 리타겟 활용',
|
||||
],
|
||||
priority: 'P1',
|
||||
customerJourneyStage: 'conversion',
|
||||
},
|
||||
{
|
||||
channelId: 'naver_blog', channelName: 'Naver Blog', icon: 'globe',
|
||||
currentStatus: '@grandprs — 업로드 저조, SEO 자산 방치',
|
||||
targetGoal: '주 2회 포스팅 재가동, 12개월 내 월 15,000 방문자',
|
||||
contentTypes: ['안면거상 SEO 가이드', '이세환 원장 Q&A 텍스트 변환', 'YouTube 영상 임베드+설명'],
|
||||
postingFrequency: '주 2회',
|
||||
tone: '"압구정 안면거상", "강남 리프팅" 키워드 중심',
|
||||
formatGuidelines: [
|
||||
'2,000자 이상 SEO 최적화 포스트',
|
||||
'YouTube Q&A 영상 + 텍스트 답변 구조',
|
||||
'핵심 키워드: "압구정 안면거상", "강남 리프팅", "그랜드성형외과 후기"',
|
||||
],
|
||||
priority: 'P0',
|
||||
customerJourneyStage: 'consideration',
|
||||
},
|
||||
{
|
||||
channelId: 'gangnamunni', channelName: '강남언니', icon: 'star',
|
||||
currentStatus: '9.8점/10, 1,533 리뷰 — 응답 전략 부재',
|
||||
targetGoal: '리뷰 응답률 80%, 2,500 리뷰 / 12개월',
|
||||
contentTypes: ['리뷰 응답', '시술 정보 최신화'],
|
||||
postingFrequency: '리뷰 응답 일 단위',
|
||||
tone: '진심 어린 이세환 원장 답변',
|
||||
formatGuidelines: [
|
||||
'응답률 50%(3개월) → 80%(12개월)',
|
||||
'1,533 리뷰 중 30개 선별 → SNS Carousel',
|
||||
'부정 리뷰 24시간 내 응답',
|
||||
],
|
||||
priority: 'P0',
|
||||
customerJourneyStage: 'loyalty',
|
||||
},
|
||||
{
|
||||
channelId: 'tiktok', channelName: 'TikTok (신규)', icon: 'video',
|
||||
currentStatus: '계정 없음',
|
||||
targetGoal: '5K 팔로워 / 12개월 — 30~50대 안면거상 고민층',
|
||||
contentTypes: ['YouTube Shorts 크로스포스팅', '이세환 원장 숏클립 Q&A'],
|
||||
postingFrequency: '주 3-5회 (Shorts 동시 배포)',
|
||||
tone: '안면거상 궁금증 해소 — 가볍고 정확한 정보',
|
||||
formatGuidelines: [
|
||||
'332 YouTube 영상 Shorts 추출 → TikTok 동시',
|
||||
'트렌딩 사운드 + 자막 필수',
|
||||
'의료광고법 준수',
|
||||
],
|
||||
priority: 'P1',
|
||||
customerJourneyStage: 'awareness',
|
||||
},
|
||||
],
|
||||
|
||||
// ─── Section 3: Content Strategy ───
|
||||
contentStrategy: {
|
||||
pillars: [
|
||||
{
|
||||
title: '안면거상 전문 기술',
|
||||
description: '이세환 원장의 딥플레인 안면거상 전문성을 케이스와 기술 설명으로 증명',
|
||||
relatedUSP: 'Facelift Surgical Authority',
|
||||
exampleTopics: ['딥플레인 안면거상 vs 일반 리프팅 차이', '안면거상 수술 전후 케이스 스터디', '리프팅 지속 시간의 과학'],
|
||||
color: '#1B3A6B',
|
||||
},
|
||||
{
|
||||
title: '이세환 원장 Q&A',
|
||||
description: '332개 YouTube Q&A 영상 자산을 확장한 원장 직접 답변 시리즈',
|
||||
relatedUSP: 'Direct Doctor Communication',
|
||||
exampleTopics: ['안면거상 Q&A: 가장 많이 묻는 10가지', '코성형 후 리프팅 타이밍', '나이별 리프팅 권장 시술'],
|
||||
color: '#4A90D9',
|
||||
},
|
||||
{
|
||||
title: '강남언니 9.8점의 증거',
|
||||
description: '1,533 리뷰에서 추출한 환자 목소리와 결과 중심 콘텐츠',
|
||||
relatedUSP: 'Patient-Verified Excellence',
|
||||
exampleTopics: ['안면거상 후기 — 6개월 경과', '40대 환자의 리프팅 결정 스토리', '재수술 없이 자연스러운 결과'],
|
||||
color: '#5A6A7A',
|
||||
},
|
||||
{
|
||||
title: '안전한 수술 환경',
|
||||
description: '압구정 본원 시설·장비·안전 시스템 소개',
|
||||
relatedUSP: 'Safety & Environment',
|
||||
exampleTopics: ['그랜드성형외과 시설 투어', '수술 후 케어 프로토콜', '1:1 원장 책임 시스템'],
|
||||
color: '#FAFAFA',
|
||||
},
|
||||
],
|
||||
typeMatrix: [
|
||||
{ format: 'YouTube Long-form', channels: ['YouTube'], frequency: '격주 1편', purpose: '안면거상 전문성 증명, 깊은 신뢰' },
|
||||
{ format: 'Shorts / Reels', channels: ['YouTube', 'Instagram', 'TikTok'], frequency: '주 4개', purpose: '332 영상 자산 재활용, 30~55대 도달' },
|
||||
{ format: 'Carousel (Q&A)', channels: ['Instagram'], frequency: '주 2회', purpose: '안면거상 궁금증 해소, 저장 유도' },
|
||||
{ format: 'Blog Post (SEO)', channels: ['Naver Blog'], frequency: '주 2회', purpose: '"압구정 안면거상" 검색 상위 확보' },
|
||||
{ format: 'Stories', channels: ['Instagram'], frequency: '일 2개', purpose: '이세환 원장 일상·상담 친밀감' },
|
||||
{ format: 'Ad Creative', channels: ['Facebook', 'Instagram'], frequency: '월 4개', purpose: '40~55세 여성 리타겟' },
|
||||
],
|
||||
workflow: [
|
||||
{ step: 1, name: 'Q&A 아카이브 정리', description: '332개 YouTube 영상 카테고리화 — 안면거상/리프팅/코/가슴 분류', owner: '마케팅 매니저', duration: '1주 (1회성)' },
|
||||
{ step: 2, name: '주제 선정', description: '이세환 원장 Q&A 패턴 + 검색 키워드 매칭', owner: '마케팅 매니저', duration: '1일' },
|
||||
{ step: 3, name: 'Shorts 추출 / 스크립트 작성', description: '기존 영상 핵심 구간 추출 또는 AI 초안', owner: 'AI + 편집', duration: '1-2일' },
|
||||
{ step: 4, name: '원장 검수', description: '이세환 원장 의료 정확성 + 광고법 체크', owner: '이세환 원장', duration: '1일' },
|
||||
{ step: 5, name: '비주얼 마감', description: 'Navy+Sky Blue 썸네일, 한글 자막', owner: '디자인', duration: '1일' },
|
||||
{ step: 6, name: '배포', description: '채널별 최적 시간 + UTM 추적', owner: '마케팅 매니저', duration: '당일' },
|
||||
],
|
||||
repurposingSource: '이세환 원장 안면거상 롱폼 Q&A (10분)',
|
||||
repurposingOutputs: [
|
||||
{ format: 'YouTube Long-form', channel: 'YouTube', description: '원본 Q&A 풀 영상 (한글 자막)' },
|
||||
{ format: 'Shorts 3-5개', channel: 'YouTube / Instagram / TikTok', description: '핵심 Q&A 답변 30-60초, 3채널 동시' },
|
||||
{ format: 'Carousel 2개', channel: 'Instagram', description: '안면거상 Q&A 카드뉴스화' },
|
||||
{ format: 'Blog Post', channel: 'Naver Blog', description: 'Q&A 스크립트 → 2,000자 SEO 포스트 (영상 임베드)' },
|
||||
{ format: 'Stories 3개', channel: 'Instagram', description: '촬영 비하인드 스니펫' },
|
||||
{ format: 'Ad Creative', channel: 'Facebook', description: '안면거상 Before/After + CTA 광고' },
|
||||
],
|
||||
},
|
||||
|
||||
// ─── Section 4: Content Calendar ───
|
||||
calendar: {
|
||||
weeks: [
|
||||
{
|
||||
weekNumber: 1, label: 'Week 1: YouTube 재가동 & 브랜드 정비',
|
||||
entries: [
|
||||
{ dayOfWeek: 0, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: '재가동 1편: 이세환 원장의 안면거상 철학' },
|
||||
{ dayOfWeek: 1, channel: 'Instagram', channelIcon: 'instagram', contentType: 'social', title: '프로필 리뉴얼 + 첫 Reel (안면거상 전후 케이스)' },
|
||||
{ dayOfWeek: 2, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: 'Shorts: 안면거상 Q&A — 피부가 아닌 근막을 바로잡는 이유' },
|
||||
{ dayOfWeek: 3, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: '안면거상이란? — 이세환 원장이 설명하는 기초 가이드' },
|
||||
{ dayOfWeek: 3, channel: 'Instagram', channelIcon: 'instagram', contentType: 'social', title: 'Carousel: 안면거상 VS 실리프팅 차이' },
|
||||
{ dayOfWeek: 4, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: 'Shorts: 강남언니 9.8점 리뷰 하이라이트' },
|
||||
{ dayOfWeek: 5, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: '그랜드성형외과 안면거상 후기 — 강남언니 9.8점의 의미' },
|
||||
],
|
||||
},
|
||||
{
|
||||
weekNumber: 2, label: 'Week 2: 안면거상 전문성 집중',
|
||||
entries: [
|
||||
{ dayOfWeek: 0, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: '롱폼: 딥플레인 안면거상 vs 일반 리프팅 — 이세환 원장 비교' },
|
||||
{ dayOfWeek: 1, channel: 'Instagram', channelIcon: 'instagram', contentType: 'social', title: 'Reel: 안면거상 전후 케이스 #1' },
|
||||
{ dayOfWeek: 2, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: 'Shorts: 안면거상 회복 기간 Q&A' },
|
||||
{ dayOfWeek: 2, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: '딥플레인 안면거상 — 압구정 전문의가 설명하는 차이점' },
|
||||
{ dayOfWeek: 3, channel: 'Instagram', channelIcon: 'instagram', contentType: 'social', title: 'Carousel: 리프팅 시술 나이별 추천 가이드' },
|
||||
{ dayOfWeek: 4, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: 'Shorts: 이세환 원장 한 줄 Q&A' },
|
||||
{ dayOfWeek: 4, channel: 'Facebook', channelIcon: 'facebook', contentType: 'ad', title: '광고: 40~55세 여성 — 안면거상 상담 CTA' },
|
||||
],
|
||||
},
|
||||
{
|
||||
weekNumber: 3, label: 'Week 3: 코성형·가슴성형 콘텐츠',
|
||||
entries: [
|
||||
{ dayOfWeek: 0, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: '코성형 Q&A 10가지 — 그랜드 이세환 원장 답변' },
|
||||
{ dayOfWeek: 1, channel: 'Instagram', channelIcon: 'instagram', contentType: 'social', title: 'Reel: 코성형 전후 — 자연스러운 라인' },
|
||||
{ dayOfWeek: 2, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: 'Shorts: 코성형 재수술 피하는 방법' },
|
||||
{ dayOfWeek: 3, channel: 'Instagram', channelIcon: 'instagram', contentType: 'social', title: 'Carousel: 가슴성형 보형물 종류 비교' },
|
||||
{ dayOfWeek: 3, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: '그랜드성형외과 코성형 후기 — 강남언니 검증' },
|
||||
{ dayOfWeek: 4, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: 'Shorts: 가슴성형 회복 현실 Q&A' },
|
||||
],
|
||||
},
|
||||
{
|
||||
weekNumber: 4, label: 'Week 4: 전환 최적화',
|
||||
entries: [
|
||||
{ dayOfWeek: 0, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: '롱폼: 그랜드성형외과 — 21년의 기술력' },
|
||||
{ dayOfWeek: 0, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: '첫 성형 상담 준비 가이드 — 그랜드성형외과 압구정' },
|
||||
{ dayOfWeek: 1, channel: 'Instagram', channelIcon: 'instagram', contentType: 'social', title: 'Reel: 압구정 그랜드 시설 투어' },
|
||||
{ dayOfWeek: 2, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: 'Shorts: 이세환 원장 이달의 케이스' },
|
||||
{ dayOfWeek: 3, channel: 'Instagram', channelIcon: 'instagram', contentType: 'social', title: 'Carousel: 상담 예약 안내 — 압구정역 5분' },
|
||||
{ dayOfWeek: 4, channel: 'Facebook', channelIcon: 'facebook', contentType: 'ad', title: '광고: 월말 안면거상 상담 CTA' },
|
||||
{ dayOfWeek: 4, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: '그랜드성형외과 9.8점 — 1,533 리뷰의 진심' },
|
||||
],
|
||||
},
|
||||
],
|
||||
monthlySummary: [
|
||||
{ type: 'video', label: '영상 (롱폼+Shorts)', count: 12, color: '#1B3A6B' },
|
||||
{ type: 'blog', label: '블로그', count: 8, color: '#4A90D9' },
|
||||
{ type: 'social', label: 'Instagram', count: 8, color: '#5A6A7A' },
|
||||
{ type: 'ad', label: '광고', count: 2, color: '#FAFAFA' },
|
||||
],
|
||||
},
|
||||
|
||||
// ─── Section 5: Asset Collection ───
|
||||
assetCollection: {
|
||||
assets: [
|
||||
{ id: 'a1', source: 'youtube', sourceLabel: 'YouTube', type: 'video', title: '332개 Q&A 영상 아카이브', description: '2017년 이래 안면거상·코성형·가슴 Q&A 332개 — Shorts 추출 최우선', repurposingSuggestions: ['Shorts 100개 추출 (P0)', 'Instagram Reels', 'TikTok 동시', '블로그 임베드'], status: 'collected' },
|
||||
{ id: 'a2', source: 'social', sourceLabel: '강남언니', type: 'text', title: '강남언니 리뷰 1,533건', description: '9.8점/10 — 안면거상·리프팅 케이스 중심', repurposingSuggestions: ['베스트 30개 → Carousel', 'Instagram Stories', '광고 소셜프루프', 'Blog 후기'], status: 'pending' },
|
||||
{ id: 'a3', source: 'homepage', sourceLabel: '홈페이지', type: 'photo', title: '압구정 본원 시설 사진', description: '본원 내외부 고화질', repurposingSuggestions: ['Instagram 시설 Reel', 'YouTube B-roll', '블로그 위치'], status: 'collected' },
|
||||
{ id: 'a4', source: 'homepage', sourceLabel: '홈페이지', type: 'photo', title: '이세환 원장 프로필', description: '이세환 원장 고화질 프로필 + 경력', repurposingSuggestions: ['YouTube 인터뷰 섬네일', 'Carousel 원장 소개', '광고 신뢰도 소재'], status: 'collected' },
|
||||
{ id: 'a5', source: 'homepage', sourceLabel: '홈페이지', type: 'text', title: '시술 설명 텍스트', description: '안면거상·리프팅·코·가슴 시술별 상세', repurposingSuggestions: ['블로그 SEO 소스', 'Carousel', '광고 카피'], status: 'collected' },
|
||||
{ id: 'a6', source: 'social', sourceLabel: 'Instagram', type: 'photo', title: '@grand_korea 게시물 800개', description: '시술 설명·카드뉴스 누적 800개', repurposingSuggestions: ['고성과 게시물 Reel 변환', 'Carousel 재편집'], status: 'collected' },
|
||||
{ id: 'a7', source: 'homepage', sourceLabel: '홈페이지', type: 'photo', title: '안면거상 전후 사진 갤러리', description: '이세환 원장 케이스 — 동의 환자 대상', repurposingSuggestions: ['Instagram B/A 시리즈', 'Shorts 소스', '상담 자료'], status: 'collected' },
|
||||
{ id: 'a8', source: 'homepage', sourceLabel: '홈페이지', type: 'video', title: '이세환 원장 소개 영상 (제작 필요)', description: '21년 경력·전문성 브랜드 영상 신규 제작', repurposingSuggestions: ['YouTube 채널 트레일러', 'Instagram 브랜드 Reel', '웹사이트 히어로'], status: 'needs_creation' },
|
||||
],
|
||||
youtubeRepurpose: [
|
||||
{ title: '안면거상 수술 Q&A 베스트', views: 0, type: 'Long', repurposeAs: ['Shorts 5개 추출', 'Instagram Carousel', '블로그 임베드'] },
|
||||
{ title: '리프팅 지속 시간 Q&A', views: 0, type: 'Long', repurposeAs: ['Shorts 3개', 'TikTok 동시', 'Blog'] },
|
||||
{ title: '코성형 재수술 케이스', views: 0, type: 'Long', repurposeAs: ['Shorts 추출', 'Reel', 'Carousel'] },
|
||||
{ title: '가슴성형 보형물 Q&A', views: 0, type: 'Long', repurposeAs: ['Shorts 추출', 'Reel', 'Blog'] },
|
||||
],
|
||||
},
|
||||
|
||||
// ─── Section 6: Repurposing Proposals ───
|
||||
repurposingProposals: [
|
||||
{
|
||||
sourceVideo: { title: '332 Q&A 영상 → 안면거상 Shorts 추출', views: 0, type: 'Long', repurposeAs: [] },
|
||||
estimatedEffort: 'high',
|
||||
priority: 'high',
|
||||
outputs: [
|
||||
{ format: 'Shorts 50개 (1차)', channel: 'YouTube / Instagram / TikTok', description: '안면거상·리프팅 카테고리 우선 — 3채널 동시' },
|
||||
{ format: 'Carousel 10개', channel: 'Instagram', description: 'Q&A 카드뉴스화' },
|
||||
{ format: 'Blog Post 5개', channel: 'Naver Blog', description: 'Q&A 스크립트 → SEO 포스트 변환' },
|
||||
],
|
||||
},
|
||||
{
|
||||
sourceVideo: { title: '강남언니 1,533 리뷰 콘텐츠화', views: 1533, type: 'Long', repurposeAs: [] },
|
||||
estimatedEffort: 'medium',
|
||||
priority: 'high',
|
||||
outputs: [
|
||||
{ format: 'Carousel 15개', channel: 'Instagram', description: '안면거상·리프팅 후기 카드뉴스 — 익명화' },
|
||||
{ format: '광고 소재', channel: 'Facebook / Instagram', description: '"9.8점 강남언니 검증" 소셜프루프 광고' },
|
||||
{ format: 'Blog 후기 포스트', channel: 'Naver Blog', description: '케이스별 상세 후기 블로그 변환' },
|
||||
],
|
||||
},
|
||||
{
|
||||
sourceVideo: { title: '이세환 원장 인터뷰 (신규 제작)', views: 0, type: 'Long', repurposeAs: [] },
|
||||
estimatedEffort: 'medium',
|
||||
priority: 'high',
|
||||
outputs: [
|
||||
{ format: 'Shorts 5개', channel: 'YouTube / TikTok', description: '"21년 안면거상 전문의가 말하는" 핵심 구간' },
|
||||
{ format: 'Carousel', channel: 'Instagram', description: '이세환 원장 철학 카드뉴스' },
|
||||
{ format: 'Blog Post', channel: 'Naver Blog', description: '인터뷰 → SEO 포스트' },
|
||||
],
|
||||
},
|
||||
],
|
||||
|
||||
// ─── Section 7: Workflow Tracker ───
|
||||
workflow: {
|
||||
items: [
|
||||
{
|
||||
id: 'wf-001',
|
||||
title: '딥플레인 안면거상 vs 리프팅 Shorts',
|
||||
contentType: 'video',
|
||||
channel: 'YouTube Shorts',
|
||||
channelIcon: 'youtube',
|
||||
stage: 'ai-draft',
|
||||
videoDraft: {
|
||||
script: `[인트로 — 0~3초]\n"피부만 당기는 리프팅, 효과는 1년도 안 갑니다."\n\n[본문 — 3~25초]\n"그랜드성형외과는 근막층(SMAS)부터 바로잡습니다."\n"딥플레인 안면거상 — 자연스럽고 오래가는 이유입니다."\n"이세환 원장이 21년간 선택한 방식."\n\n[CTA — 25~30초]\n"강남언니 9.8점 · 1,533 리뷰 — 프로필 링크"`,
|
||||
shootingGuide: [
|
||||
'332 영상 중 안면거상 카테고리 핵심 구간 추출',
|
||||
'Navy+Sky Blue 워터마크 하단 고정',
|
||||
'한글 자막 필수',
|
||||
'환자 동의서 확인 + 비식별화',
|
||||
],
|
||||
duration: '30초',
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'wf-002',
|
||||
title: '안면거상 Q&A 5가지 Carousel',
|
||||
contentType: 'image-text',
|
||||
channel: 'Instagram',
|
||||
channelIcon: 'instagram',
|
||||
stage: 'review',
|
||||
imageTextDraft: {
|
||||
type: 'cardnews',
|
||||
headline: '안면거상, 가장 많이 묻는 5가지 — 이세환 원장 직접 답변',
|
||||
copy: [
|
||||
'[카드 1] Q. 몇 살부터? → A. 처짐의 정도가 기준. 나이보다 상태를 봅니다.',
|
||||
'[카드 2] Q. 실리프팅이랑 다른가요? → A. 실리프팅은 임시, 안면거상은 근막층 교정.',
|
||||
'[카드 3] Q. 회복 기간은? → A. 일상 복귀 1~2주, 완전 회복 3~6개월.',
|
||||
'[카드 4] Q. 흉터? → A. 귀 앞뒤 은닉 절개 — 자연스럽게.',
|
||||
'[카드 5] 강남언니 9.8점 · 그랜드성형외과 이세환 원장',
|
||||
],
|
||||
layoutHint: '5장 세로형, Navy+Sky Blue, 마지막 카드에 상담 예약 CTA',
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'wf-003',
|
||||
title: '안면거상이란? SEO 블로그 재가동 1편',
|
||||
contentType: 'image-text',
|
||||
channel: 'Naver Blog',
|
||||
channelIcon: 'globe',
|
||||
stage: 'planning',
|
||||
imageTextDraft: {
|
||||
type: 'blog',
|
||||
headline: '안면거상이란? — 압구정 전문의 이세환 원장이 직접 설명합니다',
|
||||
copy: [
|
||||
'안면거상은 피부를 당기는 시술이 아닙니다. 근막층(SMAS)의 처짐을 바로잡는 수술입니다.',
|
||||
'그랜드성형외과 이세환 원장은 21년간 안면거상·리프팅에 집중해왔습니다.',
|
||||
'강남언니 9.8점 / 1,533 리뷰 — 결과로 검증된 전문성.',
|
||||
'앞으로 안면거상·리프팅·코성형 전문 정보를 매주 2회 업로드합니다.',
|
||||
],
|
||||
layoutHint: '1200px 썸네일 + 2,000자, 키워드: 안면거상, 압구정 안면거상, 그랜드성형외과, 이세환 원장',
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'wf-004',
|
||||
title: '이세환 원장 인터뷰 — 21년의 기술력',
|
||||
contentType: 'video',
|
||||
channel: 'YouTube',
|
||||
channelIcon: 'youtube',
|
||||
stage: 'approved',
|
||||
scheduledDate: '2026-04-21',
|
||||
videoDraft: {
|
||||
script: `[오프닝]\n"안녕하세요, 그랜드성형외과 이세환입니다."\n"21년간 안면거상에만 집중한 이유를 말씀드립니다."\n\n[핵심 1: 왜 안면거상인가]\n"처짐은 피부 문제가 아닙니다. 근막이 늘어나는 겁니다."\n\n[핵심 2: 딥플레인의 차이]\n"표면 리프팅은 1년, 딥플레인은 5~10년 — 이유가 있습니다."\n\n[클로징]\n"강남언니 1,533분이 남긴 9.8점이 증거입니다. 그랜드성형외과."`,
|
||||
shootingGuide: [
|
||||
'압구정 원장실 자연광',
|
||||
'이세환 원장 정면 + 3/4 앵글',
|
||||
'안면거상 케이스 그래픽 인서트',
|
||||
'Navy+Sky Blue 인트로/아웃트로',
|
||||
],
|
||||
duration: '8분',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
|
|
@ -0,0 +1,508 @@
|
|||
import type { MarketingPlan } from '../types/plan';
|
||||
|
||||
/**
|
||||
* 이룸성형외과 (서울아이 / Seoul i Plastic Surgery) — 맞춤 마케팅 플랜
|
||||
*
|
||||
* 리포트 근거 (mockReport_irum.ts, 2026-04-14 실측):
|
||||
* - YouTube @SEOULiPS.: 구독자 322명, 영상 155개 (성장 완전 정체)
|
||||
* - Instagram: @seoulips KR 826명 / @seouli_ps_th 태국 5K / @seouli_jp 일본 운영
|
||||
* - Facebook: 서울아이성형외과 페이지 비공개/삭제 확인
|
||||
* - 강남언니: 9.4점 / 86 리뷰 (5개 병원 중 가장 적음)
|
||||
* - 포지셔닝: 코성형·눈밑지방·실리프팅 전문, 태국·일본 외국인 환자 특화
|
||||
* - 설립: 2015년 (11년), 강남역 인근
|
||||
*
|
||||
* mockPlan(View) 의존성 완전 제거 — 모든 섹션 이룸 실측 기반 재구성.
|
||||
*/
|
||||
export const mockPlanIrum: MarketingPlan = {
|
||||
id: 'irum',
|
||||
reportId: 'irum',
|
||||
clinicName: '이룸성형외과 (서울아이)',
|
||||
clinicNameEn: 'Seoul i Plastic Surgery',
|
||||
createdAt: '2026-04-14',
|
||||
targetUrl: 'https://www.seoulips.com',
|
||||
|
||||
// ─── Section 1: Brand Guide ───
|
||||
brandGuide: {
|
||||
colors: [
|
||||
{ name: 'Forest Green', hex: '#0D4F3C', usage: '주요 배경·헤더·CTA 버튼 — 신뢰·자연·안전 상징' },
|
||||
{ name: 'Mint', hex: '#2ECC71', usage: '강조색 — 성장·생명력·외국인 환자 친화성 표현' },
|
||||
{ name: 'Off-White', hex: '#F4FAF7', usage: '섹션 배경 — 그린 계열과 대비되는 밝고 깨끗한 여백' },
|
||||
{ name: 'Deep Forest', hex: '#07331F', usage: '헤딩 텍스트·고대비 강조 영역' },
|
||||
{ name: 'Stone Gray', hex: '#6B7280', usage: '서브 텍스트·부연 설명 — 중립적 가독성' },
|
||||
],
|
||||
fonts: [
|
||||
{ family: 'Pretendard', weight: '400 / 600 / 700', usage: 'KR 본문·UI 레이블', sampleText: '서울아이성형외과 — 안전하고 바른 성형' },
|
||||
{ family: 'Playfair Display', weight: '400 / 700', usage: '영문 헤딩·Seoul i 영문 브랜드 표기', sampleText: 'Seoul i Plastic Surgery' },
|
||||
{ family: 'Noto Sans', weight: '400 / 600', usage: '태국어·일본어 다국어 콘텐츠 — 현지 가독성 확보', sampleText: 'Seoul i — ศัลยกรรม · 整形外科' },
|
||||
],
|
||||
logoRules: [
|
||||
{ rule: '영문 로고 글로벌 우선', description: '"Seoul i Plastic Surgery" 영문 로고를 TH/JP 계정·Facebook·LINE에 일관 사용 — 서울아이/이룸 혼용 금지', correct: true },
|
||||
{ rule: '국내 채널: 서울아이 KR + 영문 병기', description: '국내 KR 채널(@seoulips, Naver Blog)에는 "서울아이 Seoul i" KR+EN 병기 버전 사용', correct: true },
|
||||
{ rule: 'Forest Green 배경 통일', description: '로고 단색 배경은 반드시 Forest Green(#0D4F3C) 또는 Off-White(#F4FAF7) 계열만 허용', correct: true },
|
||||
{ rule: '다국어 로고 4개 버전', description: 'KR / EN / TH / JP 4개 언어 버전 제작 → 각 Instagram 계정 프로필 사진에 언어별 적용 필요', correct: false },
|
||||
{ rule: '프로필 사진 1080×1080 통일', description: '채널별 해상도 편차 존재 — 1080×1080 단일 원형 로고로 전 채널 통일 필요', correct: false },
|
||||
],
|
||||
toneOfVoice: {
|
||||
personality: ['안심되는', '전문적', '따뜻한', '글로벌', '섬세한'],
|
||||
communicationStyle: '외국인 환자가 이해하기 쉬운 쉬운 단어를 선택하되, 코성형·눈밑지방·리프팅 전문성을 교육적 어조로 전달합니다. "안전하고 바른 성형"이라는 서울아이 슬로건을 다국어로 일관 표현.',
|
||||
doExamples: [
|
||||
'"안전하고 바른 성형을 위해 서울아이는 항상 노력합니다"',
|
||||
'"강남언니 9.4점, 86명의 진솔한 후기"',
|
||||
'"코성형·눈밑지방·리프팅 11년 전문성"',
|
||||
'"태국·일본 환자도 한국어 걱정 없이 상담하세요"',
|
||||
],
|
||||
dontExamples: [
|
||||
'"파격 할인! 오늘까지만!"',
|
||||
'"연예인이 선택한 병원"',
|
||||
'번역 품질이 낮은 직역체 TH/JP 콘텐츠',
|
||||
'"서울아이 / 이룸 / Seoul i" 브랜드명 혼용',
|
||||
],
|
||||
},
|
||||
channelBranding: [
|
||||
{ channel: 'YouTube', icon: 'youtube', profilePhoto: '서울아이 Forest Green 배경 원형 로고 1080×1080', bannerSpec: '2560×1440px, Forest Green 배경 + "서울아이 Seoul i Plastic Surgery" + 코성형·눈밑지방·리프팅 서브타이틀', bioTemplate: '안전하고 바른 성형 — 서울아이\n코성형·눈밑지방·실리프팅 전문\nseoulips.com | 강남역 인근', currentStatus: 'incorrect' },
|
||||
{ channel: 'Instagram KR', icon: 'instagram', profilePhoto: '서울아이 KR 로고 원형', bannerSpec: 'Highlights: Forest Green 아이콘 세트 (코성형/눈밑지방/리프팅/후기/외국인환영)', bioTemplate: '서울아이성형외과 | 코성형·눈밑지방·리프팅\n강남역 | 02-555-0900 | seoulips.com', currentStatus: 'incorrect' },
|
||||
{ channel: 'Instagram TH', icon: 'instagram', profilePhoto: '서울아이 TH 로고 원형', bannerSpec: 'Highlights: ศัลยกรรมจมูก / ใต้ตา / ลิฟติ้ง / รีวิว / ปรึกษา 5개 카테고리', bioTemplate: 'Seoul i Plastic Surgery | ศัลยกรรมความงามเกาหลี | LINE: @seoulips_th', currentStatus: 'incorrect' },
|
||||
{ channel: 'Instagram JP', icon: 'instagram', profilePhoto: '서울아이 JP 로고 원형', bannerSpec: 'Highlights: 鼻整形 / 目の下 / リフティング / 口コミ / ご予約 5개', bioTemplate: 'Seoul i Plastic Surgery | 韓国美容整形 | LINE: @seoulips_jp', currentStatus: 'missing' },
|
||||
{ channel: 'Facebook (신규)', icon: 'facebook', profilePhoto: '서울아이 EN 로고', bannerSpec: '820×312px, Forest Green + "Seoul i Plastic Surgery" + 코·눈밑지방·리프팅 서브타이틀', bioTemplate: 'Seoul i Plastic Surgery — 코성형 · 눈밑지방 · 리프팅 전문 | 태국·일본 환자 환영', currentStatus: 'missing' },
|
||||
{ channel: 'LINE (신규)', icon: 'globe', profilePhoto: '서울아이 EN 로고', bannerSpec: 'LINE 채널 아트: Forest Green + "Seoul i — 일본 환자 전용 상담"', bioTemplate: 'Seoul i Plastic Surgery 공식 LINE — 일본어 상담 가능 | seoulips.com', currentStatus: 'missing' },
|
||||
],
|
||||
brandInconsistencies: [
|
||||
{
|
||||
field: '브랜드명 혼용',
|
||||
values: [
|
||||
{ channel: 'YouTube', value: '서울아이 Seoul i Plastic Surgery', isCorrect: true },
|
||||
{ channel: 'Instagram KR', value: '서울아이성형외과', isCorrect: true },
|
||||
{ channel: '강남언니', value: '이룸(서울아이)성형외과', isCorrect: false },
|
||||
{ channel: 'Website', value: 'seoulips.com (서울아이 + 이룸 혼용)', isCorrect: false },
|
||||
],
|
||||
impact: '"이룸" / "서울아이" / "Seoul i" 3개 명칭 혼용 — 신규 환자의 브랜드 인지 혼란 유발. 특히 외국인 환자는 동일 병원임을 인지 못 할 가능성.',
|
||||
recommendation: '국내 KR: "서울아이" 통일 / 글로벌: "Seoul i Plastic Surgery" 통일 — 강남언니 프로필명도 "서울아이성형외과"로 수정',
|
||||
},
|
||||
{
|
||||
field: 'YouTube 성장 정체',
|
||||
values: [
|
||||
{ channel: 'YouTube @SEOULiPS.', value: '155개 영상 · 구독자 322명 (영상당 구독자 2명 미만)', isCorrect: false },
|
||||
{ channel: 'Instagram TH @seouli_ps_th', value: '200개 게시물 · 5,000 팔로워 (10배 차이)', isCorrect: true },
|
||||
{ channel: 'Instagram KR @seoulips', value: '600개 게시물 · 826 팔로워', isCorrect: false },
|
||||
],
|
||||
impact: 'YouTube 글로벌 채널 잠재력이 완전히 미활용 중 — 다국어 자막 추가만으로 즉시 글로벌 검색 노출 10배 이상 확대 가능',
|
||||
recommendation: '기존 155개 영상에 EN/TH 자막 우선 30개 추가 P0 — 신규 영상 제작보다 기존 자산 글로벌 전환이 ROI 더 높음',
|
||||
},
|
||||
{
|
||||
field: '3개국 Instagram 크로스채널 단절',
|
||||
values: [
|
||||
{ channel: '@seoulips (KR)', value: '826 팔로워 — KR 단독 운영', isCorrect: false },
|
||||
{ channel: '@seouli_ps_th (TH)', value: '5,000 팔로워 — TH 단독 운영', isCorrect: false },
|
||||
{ channel: '@seouli_jp (JP)', value: '팔로워 미확인 — JP 단독 운영', isCorrect: false },
|
||||
],
|
||||
impact: 'KR/TH/JP 3개 계정이 서로 태그·크로스 배포 없음 — 계정 간 팔로워 유입 기회 0% 상태',
|
||||
recommendation: 'KR 원본 → TH/JP 번역 크로스 배포 파이프라인 구축 (자동화) — 제작 비용 동일, 노출 3배',
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
// ─── Section 2: Channel Strategies ───
|
||||
channelStrategies: [
|
||||
{
|
||||
channelId: 'youtube', channelName: 'YouTube', icon: 'youtube',
|
||||
currentStatus: '@SEOULiPS. — 구독자 322명 · 155개 영상 · 업로드 월 1~2회 · 성장 완전 정체',
|
||||
targetGoal: '구독자 3,000명 / 12개월, 주 2회 정기 업로드 + 다국어 자막 100% 적용',
|
||||
contentTypes: ['다국어 자막 추가 (기존 155개 → EN/TH/JP)', 'Shorts 50개 추출 (기존 영상 재활용)', '전문의 Q&A 롱폼 (코성형·눈밑지방)', '외국인 환자 브이로그'],
|
||||
postingFrequency: '주 2회 (Shorts 1 + 롱폼 격주), 자막 추가는 월 10개 이상',
|
||||
tone: '교육적·안심감 — 서울아이 전문의 직접 설명, 외국인 친화적 쉬운 언어',
|
||||
formatGuidelines: [
|
||||
'기존 155개 영상에 EN/TH 자막 우선 30개 추가 — 즉시 글로벌 노출 확대 (P0)',
|
||||
'Shorts: 기존 영상에서 1분 클립 추출 → KR/EN/TH/JP 다국어 Shorts',
|
||||
'플레이리스트 재정비: 코성형 / 눈밑지방 / 리프팅 / 외국인 환자 브이로그 4개',
|
||||
'썸네일: Forest Green 배경 + "서울아이 Seoul i" 워터마크 통일',
|
||||
],
|
||||
priority: 'P0',
|
||||
customerJourneyStage: 'consideration',
|
||||
},
|
||||
{
|
||||
channelId: 'instagram_kr', channelName: 'Instagram KR', icon: 'instagram',
|
||||
currentStatus: '@seoulips — 826 팔로워 · 게시물 600개 · Reels 30개 (부족)',
|
||||
targetGoal: '팔로워 10,000명 / 12개월, Reels 주 5개',
|
||||
contentTypes: ['Reels (코성형·눈밑지방 Before/After)', 'Carousel (강남언니 86 리뷰 스토리화)', 'Stories (병원 일상)', '시술 교육 카드뉴스'],
|
||||
postingFrequency: '일 1회 + Stories 일 2~3개',
|
||||
tone: '따뜻하고 안심되는 — 전문성과 친근함의 균형',
|
||||
formatGuidelines: [
|
||||
'Reels 주 5회 업로드 (KR 자막 기본 + EN 자막 추가로 해외 노출 병행)',
|
||||
'@seouli_ps_th / @seouli_jp 계정과 상호 태그 → 팔로워 크로스 유입',
|
||||
'강남언니 86 리뷰 핵심 발췌 → Carousel + Story 월 4회',
|
||||
'Highlights 재구성: 코성형 / 눈밑지방 / 리프팅 / 후기 / 외국인 환영',
|
||||
],
|
||||
priority: 'P0',
|
||||
customerJourneyStage: 'interest',
|
||||
},
|
||||
{
|
||||
channelId: 'instagram_th', channelName: 'Instagram TH', icon: 'instagram',
|
||||
currentStatus: '@seouli_ps_th — 5,000 팔로워 · 200개 게시물 · KR 계정과 크로스 배포 없음',
|
||||
targetGoal: '팔로워 15,000명 / 12개월, KR 콘텐츠 번역 자동 배포 구축',
|
||||
contentTypes: ['KR 원본 번역 배포 (태국어)', 'Reels (태국어 자막)', '태국 환자 Before/After', 'LINE 상담 CTA'],
|
||||
postingFrequency: '주 3회 (KR 번역 배포 2 + 태국 전용 1)',
|
||||
tone: 'Warm & informative — 태국 환자 관점에서 한국 성형 정보 제공',
|
||||
formatGuidelines: [
|
||||
'@seoulips KR 게시물 → 태국어 번역 → 동시 배포 파이프라인 구축 (P0)',
|
||||
'Highlights: ศัลยกรรมจมูก / ใต้ตา / ลิฟติ้ง / รีวิว / ปรึกษาฟรี 5개',
|
||||
'바이오 + 게시물에 LINE 상담 링크 추가 — 태국 환자 직접 전환 경로',
|
||||
'Reels 주 3회: 태국어 자막 코성형 Before/After + 태국어 상담 안내',
|
||||
],
|
||||
priority: 'P0',
|
||||
customerJourneyStage: 'conversion',
|
||||
},
|
||||
{
|
||||
channelId: 'instagram_jp', channelName: 'Instagram JP', icon: 'instagram',
|
||||
currentStatus: '@seouli_jp — 팔로워 미확인 · 일본어 운영 중 · 업로드 비정기',
|
||||
targetGoal: '팔로워 3,000명 / 12개월, LINE 연동으로 직접 상담 전환',
|
||||
contentTypes: ['일본어 네이티브 콘텐츠', 'KR 번역 배포 (일본어)', 'LINE 상담 CTA'],
|
||||
postingFrequency: '주 2회 (KR 번역 배포 1 + 일본 전용 1)',
|
||||
tone: '자연스러운 일본어 — 직역체 금지, 네이티브 검수 필수',
|
||||
formatGuidelines: [
|
||||
'LINE QR코드를 바이오와 모든 게시물에 삽입 — 일본 환자 전환 핵심 경로',
|
||||
'네이티브 일본어 검수 후 게시 (직역체 금지)',
|
||||
'Highlights: 鼻整形 / 目の下の脂肪 / リフティング / 口コミ / ご予約 5개',
|
||||
'KR 원본 → 일본어 번역 배포로 업로드 부담 감소',
|
||||
],
|
||||
priority: 'P1',
|
||||
customerJourneyStage: 'conversion',
|
||||
},
|
||||
{
|
||||
channelId: 'facebook_new', channelName: 'Facebook (신규 개설)', icon: 'facebook',
|
||||
currentStatus: '기존 페이지 비공개/삭제 확인 — 외국인 환자 광고 채널 완전 공백',
|
||||
targetGoal: '태국·일본 환자 타겟 광고 집행 인프라 구축 (3개월 내)',
|
||||
contentTypes: ['영문/태국어 광고 소재', 'Instagram TH 크로스포스팅', 'Before/After 광고'],
|
||||
postingFrequency: '주 2회 + 광고 캠페인 상시',
|
||||
tone: 'Professional & welcoming — Korea medical tourism storytelling',
|
||||
formatGuidelines: [
|
||||
'"Seoul i Plastic Surgery" 영문명으로 신규 개설 (P0)',
|
||||
'seoulips.com 픽셀 설치 → Instagram TH/JP 방문자 리타겟팅 광고',
|
||||
'코성형·눈밑지방 시술별 태국어·일본어 광고 소재 제작 후 집행',
|
||||
'WhatsApp 연동 검토 — 동남아 시장 직접 상담',
|
||||
],
|
||||
priority: 'P0',
|
||||
customerJourneyStage: 'awareness',
|
||||
},
|
||||
{
|
||||
channelId: 'line_new', channelName: 'LINE (신규 개설)', icon: 'globe',
|
||||
currentStatus: '미개설 — 일본·태국 환자 직접 상담 경로 없음',
|
||||
targetGoal: 'LINE 공식 계정 개설 + 일본어 FAQ 자동응답 + 친구 500명 (6개월)',
|
||||
contentTypes: ['일본어 자동응답 FAQ', '상담 예약 플로우', 'TH/JP 전용 이벤트 메시지'],
|
||||
postingFrequency: '일 단위 자동응답 + 월 2회 메시지 발송',
|
||||
tone: '친절하고 안심되는 — 일본어·태국어 네이티브 수준',
|
||||
formatGuidelines: [
|
||||
'LINE Official Account 개설 — 일본어 자동응답 + 상담 예약 플로우 설정 (P0)',
|
||||
'@seouli_jp 바이오 + 모든 게시물에 LINE QR코드 삽입',
|
||||
'코성형·눈밑지방·리프팅 시술별 FAQ 자동 응답 (일본어)',
|
||||
'친구 수 목표: 500명 (6개월) → 1,000명 (12개월)',
|
||||
],
|
||||
priority: 'P0',
|
||||
customerJourneyStage: 'conversion',
|
||||
},
|
||||
{
|
||||
channelId: 'naver_blog', channelName: 'Naver Blog', icon: 'globe',
|
||||
currentStatus: 'blog.naver.com/seoulips — 공식 블로그 운영 중, 업로드 저조',
|
||||
targetGoal: '월 8회 SEO 포스팅 정착, 코성형·눈밑지방 검색 상위 노출',
|
||||
contentTypes: ['코성형 SEO 가이드', '눈밑지방 FAQ', '강남언니 리뷰 가공', 'YouTube 임베드'],
|
||||
postingFrequency: '주 2회 (1차 1개월 내 시작)',
|
||||
tone: '정보성 전문가 — "코성형 가격" / "눈밑지방 제거" / "실리프팅" 키워드 중심',
|
||||
formatGuidelines: [
|
||||
'2,000자 이상 SEO 최적화 포스트, 이미지 10장 + YouTube 임베드 1개',
|
||||
'키워드 맵: "코성형 가격", "눈밑지방 제거", "실리프팅", "강남 코성형"',
|
||||
'강남언니 86 리뷰 핵심 발췌 → 블로그 후기 형식 재가공',
|
||||
'시술 영상 임베드 → 체류 시간 증가 → 네이버 검색 상위 노출',
|
||||
],
|
||||
priority: 'P1',
|
||||
customerJourneyStage: 'consideration',
|
||||
},
|
||||
{
|
||||
channelId: 'gangnamunni', channelName: '강남언니', icon: 'star',
|
||||
currentStatus: '9.4점 / 86 리뷰 — 5개 병원 중 가장 적음 · SNS 홍보 미흡',
|
||||
targetGoal: '리뷰 1,500건 (12개월), 월 신규 리뷰 20건 목표',
|
||||
contentTypes: ['리뷰 응답 (일 단위)', '시술 정보 업데이트', '리뷰 SNS 콘텐츠화'],
|
||||
postingFrequency: '리뷰 응답: 일 단위 / 프로필 업데이트: 월 1~2회',
|
||||
tone: '진심 어린 의료진 답변 — 형식적 답변 지양',
|
||||
formatGuidelines: [
|
||||
'수술 후 3개월 추적 관리 시 강남언니 리뷰 작성 요청 → 월 20건 목표',
|
||||
'86개 기존 리뷰 핵심 발췌 → Instagram 카드뉴스 + YouTube 추천사 영상',
|
||||
'부정 리뷰 24시간 내 응답 원칙',
|
||||
'강남언니 프로필에 다국어 시술 설명 추가 + 최신 Before/After 업로드',
|
||||
],
|
||||
priority: 'P0',
|
||||
customerJourneyStage: 'loyalty',
|
||||
},
|
||||
],
|
||||
|
||||
// ─── Section 3: Content Strategy ───
|
||||
contentStrategy: {
|
||||
pillars: [
|
||||
{
|
||||
title: '글로벌 코성형·눈밑지방 전문성',
|
||||
description: '11년 경력의 코성형·눈밑지방·실리프팅 전문 기술을 KR/TH/JP 3개 언어로 전달 — "안전하고 바른 성형" 서울아이 원칙',
|
||||
relatedUSP: '11 Years of Rhinoplasty & Blepharoplasty Expertise',
|
||||
exampleTopics: ['코성형 3가지 방법 비교 (한/태/영/일 자막)', '눈밑지방 제거 Before/After 30일 변화', '실리프팅 효과와 지속 기간', '코성형 붓기 타임라인 Day 1~30'],
|
||||
color: '#0D4F3C',
|
||||
},
|
||||
{
|
||||
title: '3개국 다국어 외국인 환자 여정',
|
||||
description: '태국·일본 실제 환자의 내원 전후 여정을 현지어로 다큐멘터리화 — 정보 제공 + 신뢰 구축',
|
||||
relatedUSP: 'KR/TH/JP Multilingual Patient Experience',
|
||||
exampleTopics: ['태국에서 서울아이로 — 코성형 여행 브이로그', '日本から来た!목의 下の脂肪取り手術体験記', '외국인 환자 상담 과정 공개', '강남역에서 서울아이까지 오는 방법'],
|
||||
color: '#2ECC71',
|
||||
},
|
||||
{
|
||||
title: '86 리뷰의 진심 — 강남언니 증거',
|
||||
description: '강남언니 9.4점 / 86 실사용 후기를 콘텐츠 자산으로 전환 — 신뢰 증거 극대화',
|
||||
relatedUSP: 'Patient-Validated 9.4 Stars',
|
||||
exampleTopics: ['"코성형 후 진짜 자연스럽다" — 강남언니 리뷰 발췌', '86개 리뷰 공통 키워드: 자연스럽다 / 회복 빠르다 / 친절하다', '강남언니 9.4점 달성 감사 이벤트', '리뷰 100 달성 기념 특별 콘텐츠'],
|
||||
color: '#07331F',
|
||||
},
|
||||
{
|
||||
title: 'K-Beauty 글로벌 허브 — 서울 강남',
|
||||
description: '강남역 입지와 K-Beauty 트렌드를 활용한 글로벌 환자 유입 전략 — 서울 방문 가이드 + 한국 성형 문화',
|
||||
relatedUSP: 'K-Beauty Seoul Gangnam Destination',
|
||||
exampleTopics: ['강남에서 수술 후 회복하기 — 숙소/식당/관광지 추천', '왜 태국/일본 분들이 한국에서 코성형을 하나요?', '서울아이 찾아오는 방법 — 강남역 3번 출구 5분', '2026 코성형 트렌드 — 서울아이 전문의 전망'],
|
||||
color: '#6B7280',
|
||||
},
|
||||
],
|
||||
typeMatrix: [
|
||||
{ format: 'YouTube 전문의 Q&A (다국어 자막)', channels: ['YouTube'], frequency: '주 1회', purpose: '코성형·눈밑지방 전문성 증명, 깊은 신뢰 구축' },
|
||||
{ format: 'Shorts / Reels (다국어)', channels: ['YouTube', 'Instagram KR', 'Instagram TH', 'Instagram JP'], frequency: '주 5개', purpose: '기존 155개 영상 글로벌 재활용, 도달 확대' },
|
||||
{ format: 'Carousel (리뷰 스토리)', channels: ['Instagram KR'], frequency: '주 1회', purpose: '강남언니 86 리뷰 → 사회적 증거화' },
|
||||
{ format: 'Blog Post (SEO)', channels: ['Naver Blog'], frequency: '주 2회', purpose: '코성형·눈밑지방 검색 유입, SEO 강화' },
|
||||
{ format: '외국인 환자 브이로그', channels: ['YouTube', 'Instagram TH', 'Instagram JP'], frequency: '월 2회', purpose: '태국·일본 환자 여정 콘텐츠 — 전환 유도' },
|
||||
{ format: 'LINE 메시지', channels: ['LINE'], frequency: '월 2회', purpose: '일본 환자 직접 상담 전환 채널' },
|
||||
],
|
||||
workflow: [
|
||||
{ step: 1, name: 'KR 원본 제작', description: '한국어 원본 콘텐츠 (영상/카드뉴스/Reels) 제작 — 후반작업 포함', owner: '콘텐츠팀', duration: '5~7일' },
|
||||
{ step: 2, name: '다국어 번역 + 자막', description: 'EN/TH/JP 번역 및 자막 파일 제작 — 네이티브 검수 필수', owner: '번역팀', duration: '2~3일' },
|
||||
{ step: 3, name: '플랫폼별 최적화', description: 'Instagram 계정별(KR/TH/JP) 포맷·해시태그 최적화 후 예약 등록', owner: 'SNS 담당', duration: '1일' },
|
||||
{ step: 4, name: '크로스 배포 + 성과 추적', description: '전 채널 동시 배포 후 UTM 기반 유입 추적 + 강남언니 상담 연계 확인', owner: '마케팅 매니저', duration: '당일' },
|
||||
],
|
||||
repurposingSource: '1개 코성형·눈밑지방 전문의 설명 영상 (10분) 또는 기존 155개 영상 아카이브 1편',
|
||||
repurposingOutputs: [
|
||||
{ format: 'YouTube Long-form', channel: 'YouTube', description: '원본 풀 영상 업로드 (KR 기본 + EN/TH/JP 자막 추가)' },
|
||||
{ format: 'Shorts 3개', channel: 'YouTube / Instagram KR', description: '핵심 구간 30~60초 추출, KR+EN 자막 동시 배포' },
|
||||
{ format: 'Instagram TH Reels', channel: 'Instagram TH (@seouli_ps_th)', description: 'Shorts 태국어 번역 버전 — @seouli_ps_th 배포' },
|
||||
{ format: 'Instagram JP Reels', channel: 'Instagram JP (@seouli_jp)', description: 'Shorts 일본어 번역 버전 — @seouli_jp 배포' },
|
||||
{ format: 'Blog Post 1개', channel: 'Naver Blog', description: '영상 스크립트 → 2,000자 SEO 포스트 (영상 임베드 포함)' },
|
||||
{ format: 'LINE 메시지', channel: 'LINE', description: '영상 요약 + 상담 CTA — 일본 LINE 친구 대상 발송' },
|
||||
],
|
||||
},
|
||||
|
||||
// ─── Section 4: Content Calendar ───
|
||||
calendar: {
|
||||
weeks: [
|
||||
{
|
||||
weekNumber: 1, label: 'Week 1: 다국어 기반 구축 — 브랜드 통일 선언',
|
||||
entries: [
|
||||
{ dayOfWeek: 0, channel: 'Instagram KR', channelIcon: 'instagram', contentType: 'social', title: '서울아이 리브랜딩 — "Seoul i Plastic Surgery" 공식 발표 Reels' },
|
||||
{ dayOfWeek: 1, channel: 'Instagram TH', channelIcon: 'instagram', contentType: 'social', title: 'Seoul i Plastic Surgery — เปิดตัวแบรนด์ใหม่ (TH Reels)' },
|
||||
{ dayOfWeek: 2, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: 'Shorts: 코성형이란? — 1분 설명 (KR/EN/TH/JP 자막)' },
|
||||
{ dayOfWeek: 3, channel: 'Instagram JP', channelIcon: 'instagram', contentType: 'social', title: 'ソウルアイ — 鼻整形専門クリニック紹介 (JP Reels)' },
|
||||
{ dayOfWeek: 4, channel: 'Instagram KR', channelIcon: 'instagram', contentType: 'social', title: 'Carousel: 강남언니 86 리뷰 감사 — 핵심 후기 발췌 5선' },
|
||||
{ dayOfWeek: 5, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: '코성형 방법 3가지 비교 — 어떤 수술이 나에게 맞을까' },
|
||||
],
|
||||
},
|
||||
{
|
||||
weekNumber: 2, label: 'Week 2: 코성형 전문성 — 교육 콘텐츠 집중',
|
||||
entries: [
|
||||
{ dayOfWeek: 0, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: '코성형 상담부터 수술까지 — 서울아이 전문의 Q&A (EN/TH 자막)' },
|
||||
{ dayOfWeek: 1, channel: 'Instagram KR', channelIcon: 'instagram', contentType: 'social', title: 'Reels: 코성형 붓기 타임라인 — Day 1~30 비교' },
|
||||
{ dayOfWeek: 2, channel: 'Instagram TH', channelIcon: 'instagram', contentType: 'social', title: 'ไทม์ไลน์ฟื้นตัวหลังทำจมูก — 1~30 วัน (TH 번역)' },
|
||||
{ dayOfWeek: 3, channel: 'Instagram JP', channelIcon: 'instagram', contentType: 'social', title: '鼻整形の腫れはいつ引く? リカバリータイムライン (JP 번역)' },
|
||||
{ dayOfWeek: 4, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: '눈밑지방 제거 vs 필러 — 차이와 선택 기준 (SEO)' },
|
||||
{ dayOfWeek: 5, channel: 'Instagram KR', channelIcon: 'instagram', contentType: 'social', title: 'Story: 강남언니 9.4점 리뷰 — "정말 자연스럽다" 후기 공유' },
|
||||
],
|
||||
},
|
||||
{
|
||||
weekNumber: 3, label: 'Week 3: 외국인 환자 여정 — 태국 집중',
|
||||
entries: [
|
||||
{ dayOfWeek: 0, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: '태국에서 서울아이로 — 코성형 여행 브이로그 (태국어 자막)' },
|
||||
{ dayOfWeek: 1, channel: 'Instagram TH', channelIcon: 'instagram', contentType: 'social', title: 'จากกรุงเทพมาโซล — ทำจมูกที่ Seoul i (TH Reels)' },
|
||||
{ dayOfWeek: 2, channel: 'Instagram KR', channelIcon: 'instagram', contentType: 'social', title: 'Reels: 눈밑지방 제거 전후 — 30대 여성 케이스' },
|
||||
{ dayOfWeek: 3, channel: 'Instagram TH', channelIcon: 'instagram', contentType: 'social', title: 'ขั้นตอนนัดหมายที่ Seoul i — ง่ายกว่าที่คิด (TH 카드뉴스)' },
|
||||
{ dayOfWeek: 4, channel: 'Facebook', channelIcon: 'facebook', contentType: 'ad', title: '광고(TH): Seoul i — 태국 환자 코성형 신규 광고 런칭' },
|
||||
{ dayOfWeek: 5, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: '실리프팅이란? 효과와 지속 기간 — 서울아이 케이스 분석' },
|
||||
],
|
||||
},
|
||||
{
|
||||
weekNumber: 4, label: 'Week 4: LINE 오픈 + 일본 환자 전환',
|
||||
entries: [
|
||||
{ dayOfWeek: 0, channel: 'Instagram KR', channelIcon: 'instagram', contentType: 'social', title: 'Carousel: 강남언니 86→100 리뷰 달성 감사 이벤트' },
|
||||
{ dayOfWeek: 1, channel: 'Instagram JP', channelIcon: 'instagram', contentType: 'social', title: '日本からソウルアイへ — 目の下の脂肪取りブイログ (JP)' },
|
||||
{ dayOfWeek: 2, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: '실리프팅이란? 서울아이 전문의 1:1 설명 (4개 언어 자막)' },
|
||||
{ dayOfWeek: 3, channel: 'Instagram KR', channelIcon: 'instagram', contentType: 'social', title: 'Reels: 서울아이 상담실 공개 — 외국인 환자 첫 방문 가이드' },
|
||||
{ dayOfWeek: 4, channel: 'Instagram TH', channelIcon: 'instagram', contentType: 'social', title: 'ก่อน-หลัง เสริมจมูก Seoul i — คนไข้จริงรีวิว (TH)' },
|
||||
{ dayOfWeek: 5, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: '강남언니 9.4점 달성 스토리 — 서울아이가 받은 86개의 진심' },
|
||||
],
|
||||
},
|
||||
],
|
||||
monthlySummary: [
|
||||
{ type: 'video', label: '영상 (롱폼+Shorts)', count: 12, color: '#0D4F3C' },
|
||||
{ type: 'blog', label: '블로그', count: 4, color: '#2ECC71' },
|
||||
{ type: 'social', label: 'Instagram KR/TH/JP', count: 14, color: '#07331F' },
|
||||
{ type: 'ad', label: '광고 (Facebook TH)', count: 1, color: '#6B7280' },
|
||||
],
|
||||
},
|
||||
|
||||
// ─── Section 5: Asset Collection ───
|
||||
assetCollection: {
|
||||
assets: [
|
||||
{ id: 'ir-a1', source: 'youtube', sourceLabel: 'YouTube', type: 'video', title: 'YouTube 영상 155개 아카이브 (@SEOULiPS.)', description: '2019년 개설 이래 누적 155개 영상 — 다국어 자막 추가 + Shorts 추출 최우선 자산', repurposingSuggestions: ['EN/TH/JP 자막 추가 30개 (P0)', 'Shorts 50개 추출', 'Instagram Reels 변환', 'Blog 포스트 임베드'], status: 'collected' },
|
||||
{ id: 'ir-a2', source: 'social', sourceLabel: '강남언니', type: 'text', title: '강남언니 환자 리뷰 86건 (9.4점)', description: '5개 병원 중 가장 적지만 9.4점 고품질 — 리뷰 증가 전략 + 콘텐츠 자산화 우선', repurposingSuggestions: ['리뷰 발췌 Carousel 시리즈', 'Instagram Stories 시리즈', '블로그 환자 스토리', '광고 소셜프루프'], status: 'pending' },
|
||||
{ id: 'ir-a3', source: 'social', sourceLabel: 'Instagram TH', type: 'photo', title: 'Instagram @seouli_ps_th 게시물 200개 (5K 팔로워)', description: '태국어 콘텐츠 200개 — Facebook 태국 광고 소재 + LINE 콘텐츠 재활용 가능', repurposingSuggestions: ['Facebook 태국 타겟 광고 소재', 'LINE 태국 메시지 콘텐츠', '@seoulips KR 크로스 태그 시리즈'], status: 'collected' },
|
||||
{ id: 'ir-a4', source: 'social', sourceLabel: 'Instagram KR', type: 'photo', title: 'Instagram @seoulips 게시물 600개', description: '@seoulips KR 누적 600 게시물 — TH/JP 번역 크로스 배포 원본 소스', repurposingSuggestions: ['TH 번역 → @seouli_ps_th 배포', 'JP 번역 → @seouli_jp 배포', 'Reels 재편집'], status: 'collected' },
|
||||
{ id: 'ir-a5', source: 'homepage', sourceLabel: '홈페이지', type: 'photo', title: '서울아이 시설·의료진 사진', description: 'seoulips.com 내 시설 사진 + 의료진 프로필 — 다국어 채널 신뢰 콘텐츠 소스', repurposingSuggestions: ['Instagram 시설 투어 Reels', 'YouTube B-roll', '블로그 위치 안내', '다국어 광고 배경'], status: 'collected' },
|
||||
{ id: 'ir-a6', source: 'homepage', sourceLabel: '홈페이지', type: 'text', title: '시술 카테고리 3종 설명 (코성형·눈밑지방·리프팅)', description: 'seoulips.com 시술별 상세 설명 — 블로그 SEO 포스트 + 다국어 카드뉴스 소스', repurposingSuggestions: ['블로그 SEO 포스트 소스', '다국어 카드뉴스 텍스트', 'LINE FAQ 자동응답 소스'], status: 'collected' },
|
||||
{ id: 'ir-a7', source: 'blog', sourceLabel: '네이버 블로그', type: 'text', title: '기존 네이버 블로그 포스트', description: 'blog.naver.com/seoulips 기존 포스트 — SEO 키워드 분석 후 리라이팅 대상', repurposingSuggestions: ['고트래픽 포스트 리라이팅', '키워드 맵 추출', '내부 링크 재구성'], status: 'pending' },
|
||||
{ id: 'ir-a8', source: 'homepage', sourceLabel: '홈페이지 (제작 필요)', type: 'video', title: '다국어 병원 소개 영상 (신규 제작)', description: '"서울아이 = 안전하고 바른 성형 + KR/TH/JP 환자 환영" 통합 브랜드 영상', repurposingSuggestions: ['YouTube 채널 트레일러', '다국어 Landing Page 히어로 영상', 'Instagram KR/TH/JP 프로필 영상'], status: 'needs_creation' },
|
||||
],
|
||||
youtubeRepurpose: [
|
||||
{ title: '코성형 상담부터 수술까지 — 전문의 Q&A', views: 0, type: 'Long', repurposeAs: ['Shorts 3개 추출', 'Instagram KR Reels', 'TH/JP 번역 배포', 'Blog 임베드'] },
|
||||
{ title: '눈밑지방 제거 과정 설명', views: 0, type: 'Long', repurposeAs: ['Shorts 2개 추출', 'Reels KR+TH+JP 동시 배포', 'Blog SEO 포스트'] },
|
||||
{ title: '실리프팅 효과와 지속 기간', views: 0, type: 'Long', repurposeAs: ['Shorts 추출', 'Blog 임베드', '강남언니 프로필 연동'] },
|
||||
{ title: '코성형 붓기 타임라인 — 1개월 경과', views: 0, type: 'Short', repurposeAs: ['Instagram KR/TH/JP 동시 배포', 'TikTok 크로스포스팅'] },
|
||||
{ title: '서울아이 서울 방문 가이드 (외국인)', views: 0, type: 'Long', repurposeAs: ['Instagram TH/JP 여행 시리즈', 'LINE 메시지 콘텐츠', 'Facebook 광고 소재'] },
|
||||
],
|
||||
},
|
||||
|
||||
// ─── Section 6: Repurposing Proposals ───
|
||||
repurposingProposals: [
|
||||
{
|
||||
sourceVideo: { title: '155개 YouTube 영상 → EN/TH/JP 자막 추가', views: 0, type: 'Long', repurposeAs: [] },
|
||||
estimatedEffort: 'medium',
|
||||
priority: 'high',
|
||||
outputs: [
|
||||
{ format: '자막 추가 영상 30개 (1차)', channel: 'YouTube', description: '기존 영상에 EN/TH 자막 추가 → 글로벌 검색 노출 즉시 10배 확대 (P0)' },
|
||||
{ format: 'Shorts 50개 추출', channel: 'YouTube / Instagram KR / TH / JP', description: '1분 클립 추출 후 KR/EN/TH/JP 다국어 Shorts — 3개월 분량 확보' },
|
||||
{ format: 'Instagram TH/JP 버전', channel: 'Instagram TH + JP', description: 'Shorts를 태국어·일본어 번역 버전으로 변환 → 3개 계정 동시 배포' },
|
||||
],
|
||||
},
|
||||
{
|
||||
sourceVideo: { title: '강남언니 86 리뷰 → 콘텐츠화', views: 86, type: 'Long', repurposeAs: [] },
|
||||
estimatedEffort: 'low',
|
||||
priority: 'high',
|
||||
outputs: [
|
||||
{ format: 'Carousel 시리즈 (월 4회)', channel: 'Instagram KR', description: '리뷰 핵심 발췌 카드뉴스 — 21개월치 소재 확보' },
|
||||
{ format: 'Blog 환자 스토리', channel: 'Naver Blog', description: '리뷰 → 환자 여정 스토리 블로그 변환 (SEO 포스트)' },
|
||||
{ format: '광고 소셜프루프', channel: 'Facebook TH / JP', description: '"9.4점 / 86 리뷰의 진심" 메시지 외국인 환자 타겟 광고 소재' },
|
||||
],
|
||||
},
|
||||
{
|
||||
sourceVideo: { title: '외국인 환자 브이로그 (신규 제작 — TH/JP)', views: 0, type: 'Long', repurposeAs: [] },
|
||||
estimatedEffort: 'medium',
|
||||
priority: 'high',
|
||||
outputs: [
|
||||
{ format: 'YouTube 브이로그 (태국어 자막)', channel: 'YouTube', description: '태국 환자 서울 방문 여정 풀 영상 — YouTube 글로벌 노출' },
|
||||
{ format: 'Instagram TH Reels 시리즈', channel: 'Instagram TH (@seouli_ps_th)', description: '브이로그 클립 → TH Reels 5편 시리즈' },
|
||||
{ format: 'LINE 일본 콘텐츠', channel: 'LINE', description: 'JP 환자 브이로그 요약 + LINE 상담 CTA — 일본 전환 유도' },
|
||||
],
|
||||
},
|
||||
{
|
||||
sourceVideo: { title: 'LINE 일본 상담 채널 개설 콘텐츠', views: 0, type: 'Short', repurposeAs: [] },
|
||||
estimatedEffort: 'low',
|
||||
priority: 'medium',
|
||||
outputs: [
|
||||
{ format: '@seouli_jp Instagram Reels', channel: 'Instagram JP', description: 'LINE 개설 공지 Reels + QR코드 삽입' },
|
||||
{ format: 'YouTube JP 자막 CTA', channel: 'YouTube', description: '모든 영상 엔딩에 LINE 상담 QR코드 추가' },
|
||||
{ format: 'Instagram TH LINE CTA', channel: 'Instagram TH', description: '@seouli_ps_th Story + 게시물에 LINE 링크 추가' },
|
||||
],
|
||||
},
|
||||
],
|
||||
|
||||
// ─── Section 7: Workflow Tracker ───
|
||||
workflow: {
|
||||
items: [
|
||||
{
|
||||
id: 'ir-wf-001',
|
||||
title: 'LINE 공식 계정 개설 + 일본어 FAQ 자동응답 설정',
|
||||
contentType: 'image-text',
|
||||
channel: 'LINE',
|
||||
channelIcon: 'globe',
|
||||
stage: 'planning',
|
||||
imageTextDraft: {
|
||||
type: 'blog',
|
||||
headline: 'Seoul i Plastic Surgery LINE 공식 채널 오픈',
|
||||
copy: [
|
||||
'일본어 자동응답: 코성형 / 눈밑지방 / 리프팅 시술별 FAQ',
|
||||
'예약 문의 → 코디네이터 연결 플로우',
|
||||
'@seouli_jp 바이오 + 모든 게시물에 LINE QR코드 삽입',
|
||||
'오픈 공지 Instagram JP Reels 동시 발행',
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'ir-wf-002',
|
||||
title: 'YouTube 기존 영상 EN/TH 자막 1차 30개 추가',
|
||||
contentType: 'video',
|
||||
channel: 'YouTube',
|
||||
channelIcon: 'youtube',
|
||||
stage: 'planning',
|
||||
videoDraft: {
|
||||
script: '[자막 추가 대상 우선순위]\n1. 코성형 관련 영상 (조회수 상위)\n2. 눈밑지방 제거 설명 영상\n3. Before/After 케이스 영상\n\n[작업 방식]\n- 기존 자막 없는 영상 → EN 자동 번역 후 수정\n- TH 번역은 네이티브 검수 후 업로드\n- JP 번역은 2차 30개 추가 예정',
|
||||
shootingGuide: [
|
||||
'자막 추가 후 YouTube Studio에서 언어 설정 확인',
|
||||
'제목·설명에 EN/TH/JP 키워드 추가 (SEO)',
|
||||
'자막 완료 영상은 채널에 핀 게시 or 플레이리스트 상위 노출',
|
||||
],
|
||||
duration: '월 10개, 3개월 내 30개 완료',
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'ir-wf-003',
|
||||
title: 'Facebook 신규 페이지 개설 + 픽셀 설치',
|
||||
contentType: 'image-text',
|
||||
channel: 'Facebook',
|
||||
channelIcon: 'facebook',
|
||||
stage: 'planning',
|
||||
imageTextDraft: {
|
||||
type: 'blog',
|
||||
headline: '"Seoul i Plastic Surgery" Facebook 신규 개설',
|
||||
copy: [
|
||||
'기존 비공개 페이지 대체 — 영문 "Seoul i Plastic Surgery" 이름으로 개설',
|
||||
'seoulips.com 픽셀 설치 → Instagram TH/JP 방문자 리타겟팅',
|
||||
'태국어·일본어 첫 광고 캠페인 소재: 코성형 Before/After',
|
||||
'WhatsApp 연동 검토 (동남아 직접 상담)',
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'ir-wf-004',
|
||||
title: '강남언니 86 리뷰 Carousel 1차 4편 제작',
|
||||
contentType: 'image-text',
|
||||
channel: 'Instagram KR',
|
||||
channelIcon: 'instagram',
|
||||
stage: 'ai-draft',
|
||||
imageTextDraft: {
|
||||
type: 'cardnews',
|
||||
headline: '강남언니 9.4점 — 진심 담긴 86개의 이야기',
|
||||
copy: [
|
||||
'슬라이드 1: "강남언니 9.4점 / 86 리뷰 감사합니다"',
|
||||
'슬라이드 2-5: 베스트 리뷰 4개 발췌 (익명화 처리)',
|
||||
'슬라이드 6: "리뷰 남기기 → 강남언니 프로필 링크"',
|
||||
],
|
||||
layoutHint: 'Forest Green 배경, Mint 텍스트 강조, 서울아이 로고 하단',
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'ir-wf-005',
|
||||
title: 'Instagram KR/TH/JP 크로스 배포 루틴 문서화',
|
||||
contentType: 'image-text',
|
||||
channel: 'Instagram KR',
|
||||
channelIcon: 'instagram',
|
||||
stage: 'planning',
|
||||
imageTextDraft: {
|
||||
type: 'blog',
|
||||
headline: '3개국 Instagram 크로스 배포 SOP',
|
||||
copy: [
|
||||
'KR 원본 제작 → EN 번역 → TH 번역 (네이티브 검수) → JP 번역 (네이티브 검수)',
|
||||
'예약 스케줄러 설정: KR 월요일 → TH 화요일 → JP 수요일 동시 배포',
|
||||
'해시태그 국가별 최적화 가이드 문서화',
|
||||
'월 1회 3개 계정 성과 리뷰 루틴 수립',
|
||||
],
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
|
|
@ -0,0 +1,460 @@
|
|||
import type { MarketingPlan } from '../types/plan';
|
||||
|
||||
/**
|
||||
* 티에스성형외과 — 데모 마케팅 플랜
|
||||
*
|
||||
* 리포트 근거 (`mockReport_ts.ts` 2026-04-14 실측):
|
||||
* - YouTube 티에스TV @TV-jm9dy: 8K 구독자, 715 영상, 주 1~2회 업로드
|
||||
* - Instagram @tsprs_official: 2,626 팔로워, Reels 60개
|
||||
* - Facebook @tsprs: 3,900 팔로워 (활성도 낮음)
|
||||
* - 네이버 블로그 @tsprs: 업로드 있으나 빈도 보완 필요
|
||||
* - 네이버 카페: 연탐 카페 운영
|
||||
* - 강남언니: 9.5점/12,509 리뷰
|
||||
* - 2010년 설립 16년, 신사역, 눈·코·가슴 종합, "리얼모델" 시스템
|
||||
* - 슬로건: "지금, 예뻐져라!"
|
||||
* - Primary: Dark Navy (#1A1A2E), Accent: Crimson (#E94560)
|
||||
*/
|
||||
export const mockPlanTs: MarketingPlan = {
|
||||
id: 'ts',
|
||||
reportId: 'ts',
|
||||
clinicName: '티에스성형외과',
|
||||
clinicNameEn: 'TS Plastic Surgery',
|
||||
createdAt: '2026-04-14',
|
||||
targetUrl: 'https://www.tsprs.com',
|
||||
|
||||
// ─── Section 1: Brand Guide ───
|
||||
brandGuide: {
|
||||
colors: [
|
||||
{ name: 'TS Dark Navy', hex: '#1A1A2E', usage: '공식 로고 메인, 헤딩, 강조 텍스트' },
|
||||
{ name: 'TS Crimson', hex: '#E94560', usage: '로고 악센트, CTA 포인트, 리얼모델 강조' },
|
||||
{ name: 'Off White', hex: '#F8F8F8', usage: '배경, 카드, 여백' },
|
||||
{ name: 'Deep Navy Text', hex: '#0F0F1A', usage: '본문 텍스트' },
|
||||
{ name: 'Mid Gray', hex: '#6B7280', 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' },
|
||||
],
|
||||
logoRules: [
|
||||
{ rule: 'Dark Navy+Crimson 공식 로고 통일', description: '티에스성형외과 공식 로고를 모든 채널에서 동일 사용', correct: true },
|
||||
{ rule: '"지금, 예뻐져라!" 슬로건 전 채널 통일', description: '슬로건을 바이오·배너·콘텐츠 전반에 일관되게 적용', correct: false },
|
||||
{ rule: '리얼모델 썸네일 시스템', description: '리얼모델 Before/After 썸네일 — Dark Navy 배경 + Crimson 워드마크 워터마크 통일', correct: false },
|
||||
{ rule: '원형 프로필 1080×1080 통일', description: '전 채널 프로필 이미지 고해상도 원형 버전 통일', correct: false },
|
||||
],
|
||||
toneOfVoice: {
|
||||
personality: ['에너지 있는', '결과 중심', '리얼한', '친근한 전문가', '트렌디'],
|
||||
communicationStyle: '"지금, 예뻐져라!"는 단순한 슬로건이 아닙니다. 리얼모델로 증명하는 티에스의 결과 중심 철학입니다. 과장 없이 실제 환자 결과로 설득합니다.',
|
||||
doExamples: [
|
||||
'"리얼모델이 증명합니다 — 지금, 예뻐져라!"',
|
||||
'"강남언니 9.5점 · 12,509 리뷰 — 결과로 말합니다"',
|
||||
'"티에스TV 715개 영상, 눈·코·가슴 모든 것"',
|
||||
'"신사역 5분 — 지금 예약하세요"',
|
||||
],
|
||||
dontExamples: [
|
||||
'"강남 최고 할인!"',
|
||||
'"연예인 선택 병원"',
|
||||
'"100% 만족 보장"',
|
||||
],
|
||||
},
|
||||
channelBranding: [
|
||||
{ channel: 'YouTube', icon: 'youtube', profilePhoto: 'TS Dark Navy 원형 로고 1080×1080', bannerSpec: '2560×1440px, Dark Navy 배경 + Crimson 악센트, "지금, 예뻐져라! 티에스TV"', bioTemplate: '지금, 예뻐져라! 티에스성형외과\n눈·코·가슴·리프팅 리얼모델 채널\n02-512-7580 | tsprs.com', currentStatus: 'incorrect' },
|
||||
{ channel: 'Instagram', icon: 'instagram', profilePhoto: 'TS Dark Navy 원형 로고', bannerSpec: 'N/A (하이라이트: 눈성형/코성형/가슴성형/리얼모델/이벤트 — Crimson 톤)', bioTemplate: '지금, 예뻐져라! 티에스성형외과 공식\n신사역 | 02-512-7580\ntsprs.com', currentStatus: 'incorrect' },
|
||||
{ channel: 'Facebook', icon: 'facebook', profilePhoto: 'TS Dark Navy 원형 로고', bannerSpec: '820×312px, Dark Navy+Crimson, "지금, 예뻐져라! 리얼모델로 증명"', bioTemplate: '티에스성형외과 공식 — 강남 신사역\n눈·코·가슴 리얼모델 시스템', currentStatus: 'incorrect' },
|
||||
{ channel: 'Naver Blog', icon: 'globe', profilePhoto: 'TS 로고', bannerSpec: '블로그 상단: 로고 + 리얼모델 카테고리 메뉴', bioTemplate: '지금, 예뻐져라! 티에스성형외과 공식 블로그\n눈·코·가슴·리프팅 리얼모델 후기', currentStatus: 'incorrect' },
|
||||
{ channel: 'TikTok', icon: 'video', profilePhoto: 'TS Dark Navy 원형 로고', bannerSpec: 'N/A', bioTemplate: '지금, 예뻐져라! 티에스성형외과\n신사역 | 02-512-7580', currentStatus: 'missing' },
|
||||
],
|
||||
brandInconsistencies: [
|
||||
{
|
||||
field: '리얼모델 콘텐츠 크로스채널 미활용',
|
||||
values: [
|
||||
{ channel: 'YouTube', value: '티에스TV — 리얼모델 시리즈 있음', isCorrect: true },
|
||||
{ channel: 'Instagram', value: 'Reels 60개 — 리얼모델 하이라이트 미완성', isCorrect: false },
|
||||
{ channel: 'Naver Blog', value: '리얼모델 연계 포스팅 부족', isCorrect: false },
|
||||
{ channel: '연탐 카페', value: '후기 있으나 SNS 연동 없음', isCorrect: false },
|
||||
],
|
||||
impact: '리얼모델 콘텐츠가 YouTube에서 강점이나 Instagram·Blog·카페 연동 체계 없음',
|
||||
recommendation: 'YouTube 리얼모델 → Instagram Reel → Blog 임베드 → 카페 후기 연동 파이프라인 구축',
|
||||
},
|
||||
{
|
||||
field: 'SEO 최적화 현황',
|
||||
values: [
|
||||
{ channel: 'YouTube 타이틀', value: 'SEO 메타데이터 최적화 미흡', isCorrect: false },
|
||||
{ channel: 'YouTube 썸네일', value: '통일 시스템 없음', isCorrect: false },
|
||||
{ channel: 'Naver Blog', value: '업로드 있으나 키워드 전략 미흡', isCorrect: false },
|
||||
],
|
||||
impact: '715개 영상 대비 구독자 8K — SEO·썸네일 최적화만으로 즉각 개선 가능',
|
||||
recommendation: 'YouTube 715개 영상 SEO 메타데이터 일괄 최적화 + 리얼모델 썸네일 시스템 구축',
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
// ─── Section 2: Channel Strategies ───
|
||||
channelStrategies: [
|
||||
{
|
||||
channelId: 'youtube', channelName: 'YouTube (티에스TV)', icon: 'youtube',
|
||||
currentStatus: '티에스TV — 8K 구독자, 715 영상, 주 1~2회 업로드',
|
||||
targetGoal: '20K 구독자 / 12개월, 주 3회 업로드 + SEO 전면 최적화',
|
||||
contentTypes: ['리얼모델 Before/After 롱폼', 'Shorts (715 영상 재편집)', 'SEO 최적화 타이틀 시리즈'],
|
||||
postingFrequency: '주 3회 (Shorts 2 + 롱폼 1)',
|
||||
tone: '"지금, 예뻐져라!" — 리얼모델 에너지 + 전문의 신뢰',
|
||||
formatGuidelines: [
|
||||
'715개 영상 SEO 메타데이터 일괄 최적화 (P0)',
|
||||
'썸네일: Dark Navy 배경 + Crimson 워드마크 + 리얼모델 Before/After 통일',
|
||||
'타이틀 패턴: "강남 눈코가슴 리얼모델 ___"',
|
||||
'Shorts: 715 영상에서 200개 추출 목표',
|
||||
],
|
||||
priority: 'P0',
|
||||
customerJourneyStage: 'consideration',
|
||||
},
|
||||
{
|
||||
channelId: 'instagram', channelName: 'Instagram', icon: 'instagram',
|
||||
currentStatus: '@tsprs_official — 2,626 팔로워, Reels 60개 (확장 여지)',
|
||||
targetGoal: '15K 팔로워 / 12개월, Reels 100개+ 달성',
|
||||
contentTypes: ['Reels (YouTube Shorts 동시)', '리얼모델 Before/After Carousel', '연탐 카페 후기 카루셀'],
|
||||
postingFrequency: '일 1회 + Stories 일 2개',
|
||||
tone: '"지금, 예뻐져라!" — 에너지 있는 리얼모델 중심',
|
||||
formatGuidelines: [
|
||||
'Reels: YouTube Shorts 동시 배포',
|
||||
'하이라이트: 눈성형/코성형/가슴성형/리얼모델/이벤트 재구성',
|
||||
'연탐 카페 후기 → Instagram Carousel로 재편집',
|
||||
'해시태그: #티에스성형외과 #리얼모델 #지금예뻐져라 #강남눈코가슴',
|
||||
],
|
||||
priority: 'P0',
|
||||
customerJourneyStage: 'interest',
|
||||
},
|
||||
{
|
||||
channelId: 'facebook', channelName: 'Facebook', icon: 'facebook',
|
||||
currentStatus: '@tsprs — 3,900 팔로워, 활성도 낮음',
|
||||
targetGoal: 'Instagram 크로스포스팅 자동화 + Pixel 리타겟 세팅',
|
||||
contentTypes: ['Instagram 자동 크로스포스팅', '리타겟 광고 소재'],
|
||||
postingFrequency: '주 2-3회 (자동 연동)',
|
||||
tone: '리얼모델 결과 중심 — 20~40대 여성 타겟',
|
||||
formatGuidelines: [
|
||||
'Instagram 콘텐츠 자동 연동',
|
||||
'Pixel 광고: 눈·코·가슴 관심사 타겟',
|
||||
'카카오톡 상담 버튼 전 페이지 플로팅',
|
||||
],
|
||||
priority: 'P1',
|
||||
customerJourneyStage: 'conversion',
|
||||
},
|
||||
{
|
||||
channelId: 'naver_blog', channelName: 'Naver Blog', icon: 'globe',
|
||||
currentStatus: '@tsprs — 업로드 있으나 빈도·키워드 전략 미흡',
|
||||
targetGoal: '주 3회로 상향, 12개월 내 월 20,000 방문자',
|
||||
contentTypes: ['리얼모델 SEO 포스트', 'YouTube 영상 임베드+설명', '눈·코·가슴 시술 가이드'],
|
||||
postingFrequency: '주 3회',
|
||||
tone: '"강남 눈코가슴 리얼모델", "티에스성형외과 후기" 키워드 중심',
|
||||
formatGuidelines: [
|
||||
'2,000자 이상 SEO 최적화',
|
||||
'리얼모델 YouTube 영상 임베드 + 텍스트 설명',
|
||||
'핵심 키워드: "강남 눈성형", "티에스성형외과", "리얼모델 성형"',
|
||||
'연탐 카페 후기 → 블로그 변환 연동',
|
||||
],
|
||||
priority: 'P0',
|
||||
customerJourneyStage: 'consideration',
|
||||
},
|
||||
{
|
||||
channelId: 'naver_cafe', channelName: '연탐 네이버 카페', icon: 'users',
|
||||
currentStatus: '연탐 카페 운영 중 — SNS 연동 미흡',
|
||||
targetGoal: '카페 후기 SNS 연동 파이프라인 구축',
|
||||
contentTypes: ['카페 후기 → Instagram Carousel 변환', '시술별 Q&A 활성화'],
|
||||
postingFrequency: '주 2회 (Q&A 답변 + 후기 공유)',
|
||||
tone: '친밀하고 소통하는 — 커뮤니티 매니저 톤',
|
||||
formatGuidelines: [
|
||||
'카페 베스트 후기 → Instagram·Blog 재편집 파이프라인',
|
||||
'시술별 Q&A 게시판 활성화 (눈/코/가슴)',
|
||||
'카페 후기 작성 인센티브 제도 검토',
|
||||
],
|
||||
priority: 'P1',
|
||||
customerJourneyStage: 'loyalty',
|
||||
},
|
||||
{
|
||||
channelId: 'gangnamunni', channelName: '강남언니', icon: 'star',
|
||||
currentStatus: '9.5점/10, 12,509 리뷰 — 응답 전략 미흡',
|
||||
targetGoal: '리뷰 응답률 80%, 15,000 리뷰 / 12개월',
|
||||
contentTypes: ['리뷰 응답', '시술 정보 최신화'],
|
||||
postingFrequency: '리뷰 응답 일 단위',
|
||||
tone: '진심 어린 의료진 답변',
|
||||
formatGuidelines: [
|
||||
'응답률 50%(3개월) → 80%(12개월)',
|
||||
'12,509 리뷰 중 50개 선별 → SNS Carousel',
|
||||
'부정 리뷰 24시간 내 응답',
|
||||
],
|
||||
priority: 'P0',
|
||||
customerJourneyStage: 'loyalty',
|
||||
},
|
||||
{
|
||||
channelId: 'tiktok', channelName: 'TikTok (신규)', icon: 'video',
|
||||
currentStatus: '계정 없음',
|
||||
targetGoal: '10K 팔로워 / 12개월 — 20~30대 첫 수술 고민층',
|
||||
contentTypes: ['YouTube Shorts 크로스포스팅', '리얼모델 Before/After 틱톡'],
|
||||
postingFrequency: '주 5회 (Shorts 동시 배포)',
|
||||
tone: '"지금, 예뻐져라!" — 트렌디, 에너지 있는',
|
||||
formatGuidelines: [
|
||||
'715 영상 Shorts 추출 → TikTok 동시',
|
||||
'트렌딩 사운드 + 자막 필수',
|
||||
'의료광고법 준수',
|
||||
],
|
||||
priority: 'P1',
|
||||
customerJourneyStage: 'awareness',
|
||||
},
|
||||
],
|
||||
|
||||
// ─── Section 3: Content Strategy ───
|
||||
contentStrategy: {
|
||||
pillars: [
|
||||
{
|
||||
title: '리얼모델로 증명',
|
||||
description: '"지금, 예뻐져라!" 슬로건의 핵심 — 실제 리얼모델 Before/After 결과 중심 콘텐츠',
|
||||
relatedUSP: 'Real Model Verification System',
|
||||
exampleTopics: ['리얼모델 눈성형 6개월 후 솔직 후기', '리얼모델 코성형 과정 브이로그', '가슴성형 리얼모델 — 보형물 선택부터 회복까지'],
|
||||
color: '#E94560',
|
||||
},
|
||||
{
|
||||
title: '눈·코·가슴 전문성',
|
||||
description: '티에스의 3대 핵심 시술 — 각 시술별 심층 교육 콘텐츠',
|
||||
relatedUSP: 'Eyes, Nose & Breast Expertise',
|
||||
exampleTopics: ['눈성형 유형별 가이드', '코성형 재수술 예방 팁', '가슴 보형물 종류와 선택'],
|
||||
color: '#1A1A2E',
|
||||
},
|
||||
{
|
||||
title: '12,509 리뷰의 신뢰',
|
||||
description: '강남언니 9.5점 12,509 리뷰와 연탐 카페 후기를 콘텐츠화',
|
||||
relatedUSP: 'Verified Patient Reviews',
|
||||
exampleTopics: ['강남언니 베스트 리뷰 카루셀', '연탐 카페 후기 TOP 10', '리얼모델 수술 후 6개월 추적'],
|
||||
color: '#6B7280',
|
||||
},
|
||||
{
|
||||
title: 'SEO & 검색 유입',
|
||||
description: '715개 영상 자산의 SEO 최적화와 블로그 검색 상위 전략',
|
||||
relatedUSP: 'Search Engine Visibility',
|
||||
exampleTopics: ['"강남 눈성형 추천" 검색 1위 전략', '티에스성형외과 블로그 키워드 맵', 'YouTube SEO 타이틀 패턴'],
|
||||
color: '#F8F8F8',
|
||||
},
|
||||
],
|
||||
typeMatrix: [
|
||||
{ format: 'YouTube Long-form (리얼모델)', channels: ['YouTube'], frequency: '월 4편', purpose: '리얼모델 케이스 — 결과 신뢰 구축' },
|
||||
{ format: 'Shorts / Reels', channels: ['YouTube', 'Instagram', 'TikTok'], frequency: '주 5개', purpose: '715 영상 자산 재활용, 20~40대 도달' },
|
||||
{ format: 'Carousel (리뷰+후기)', channels: ['Instagram'], frequency: '주 2회', purpose: '12,509 강남언니 + 연탐 카페 사회적 증거화' },
|
||||
{ format: 'Blog Post (SEO)', channels: ['Naver Blog'], frequency: '주 3회', purpose: '"강남 눈코가슴" 검색 상위 확보' },
|
||||
{ format: 'Stories', channels: ['Instagram'], frequency: '일 2개', purpose: '리얼모델 일상·시술 비하인드' },
|
||||
{ format: 'Ad Creative', channels: ['Facebook', 'Instagram'], frequency: '월 4개', purpose: '20~40대 여성 타겟 리타겟' },
|
||||
],
|
||||
workflow: [
|
||||
{ step: 1, name: 'SEO 일괄 최적화', description: '715개 YouTube 영상 타이틀·설명·태그 SEO 재작성', owner: 'SEO 담당 + AI', duration: '2주 (1회성)' },
|
||||
{ step: 2, name: '리얼모델 기획', description: '신규 리얼모델 모집 + 케이스 선정 (눈/코/가슴 각 1건)', owner: '마케팅 매니저', duration: '2주' },
|
||||
{ step: 3, name: '콘텐츠 제작', description: '리얼모델 촬영 + Shorts 추출 + 카루셀 제작', owner: '콘텐츠 팀', duration: '3-5일' },
|
||||
{ step: 4, name: '의료 검수', description: '의료진 정확성 + 광고법 체크', owner: '의료진', duration: '1일' },
|
||||
{ step: 5, name: '비주얼 마감', description: 'Dark Navy+Crimson 썸네일 통일, 자막', owner: '디자인', duration: '1일' },
|
||||
{ step: 6, name: '크로스채널 배포', description: 'YouTube + Instagram + TikTok + Blog 동시 + UTM', owner: '마케팅 매니저', duration: '당일' },
|
||||
],
|
||||
repurposingSource: '리얼모델 눈성형 브이로그 롱폼 (10분)',
|
||||
repurposingOutputs: [
|
||||
{ format: 'YouTube Long-form', channel: 'YouTube', description: '리얼모델 풀 브이로그 (Dark Navy 썸네일)' },
|
||||
{ format: 'Shorts 3-5개', channel: 'YouTube / Instagram / TikTok', description: '수술 전·중·후 핵심 구간 클립 3채널 동시' },
|
||||
{ format: 'Carousel', channel: 'Instagram', description: '리얼모델 Before/After + 후기 카드뉴스' },
|
||||
{ format: 'Blog Post', channel: 'Naver Blog', description: '리얼모델 브이로그 → SEO 리뷰 포스트 (영상 임베드)' },
|
||||
{ format: '연탐 카페 공유', channel: 'Naver Cafe', description: '카페 시술 후기 게시판 공유' },
|
||||
{ format: 'Ad Creative', channel: 'Facebook / Instagram', description: '리얼모델 하이라이트 + "지금, 예뻐져라!" CTA' },
|
||||
],
|
||||
},
|
||||
|
||||
// ─── Section 4: Content Calendar ───
|
||||
calendar: {
|
||||
weeks: [
|
||||
{
|
||||
weekNumber: 1, label: 'Week 1: SEO 최적화 착수 & 리얼모델 시동',
|
||||
entries: [
|
||||
{ dayOfWeek: 0, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: '리얼모델 눈성형 브이로그 #1 — "지금, 예뻐져라!" 티에스TV' },
|
||||
{ dayOfWeek: 1, channel: 'Instagram', channelIcon: 'instagram', contentType: 'social', title: '프로필 리뉴얼 + 리얼모델 Reel #1 (눈성형 전후)' },
|
||||
{ dayOfWeek: 2, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: 'Shorts: 눈성형 Q&A — 쌍꺼풀 vs 비절개' },
|
||||
{ dayOfWeek: 3, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: '강남 눈성형 가이드 — 티에스 리얼모델이 증명합니다' },
|
||||
{ dayOfWeek: 3, channel: 'Instagram', channelIcon: 'instagram', contentType: 'social', title: 'Carousel: 강남언니 12,509 리뷰 베스트 5' },
|
||||
{ dayOfWeek: 4, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: 'Shorts: 가슴성형 보형물 Q&A' },
|
||||
{ dayOfWeek: 5, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: '티에스성형외과 후기 — 강남언니 9.5점의 비밀' },
|
||||
],
|
||||
},
|
||||
{
|
||||
weekNumber: 2, label: 'Week 2: 코성형 리얼모델 주간',
|
||||
entries: [
|
||||
{ dayOfWeek: 0, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: '롱폼: 리얼모델 코성형 — 상담부터 회복까지' },
|
||||
{ dayOfWeek: 1, channel: 'Instagram', channelIcon: 'instagram', contentType: 'social', title: 'Reel: 코성형 리얼모델 Before/After' },
|
||||
{ dayOfWeek: 2, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: 'Shorts: 코성형 재수술 피하는 법' },
|
||||
{ dayOfWeek: 2, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: '코성형 종류와 선택 — 티에스 리얼모델 케이스' },
|
||||
{ dayOfWeek: 3, channel: 'Instagram', channelIcon: 'instagram', contentType: 'social', title: 'Carousel: 연탐 카페 코성형 베스트 후기' },
|
||||
{ dayOfWeek: 4, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: 'Shorts: 코성형 6개월 후 — 리얼 후기' },
|
||||
{ dayOfWeek: 4, channel: 'Facebook', channelIcon: 'facebook', contentType: 'ad', title: '광고: 코성형 리얼모델 상담 CTA' },
|
||||
],
|
||||
},
|
||||
{
|
||||
weekNumber: 3, label: 'Week 3: 가슴성형 리얼모델 주간',
|
||||
entries: [
|
||||
{ dayOfWeek: 0, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: '롱폼: 리얼모델 가슴성형 — 보형물 선택 가이드' },
|
||||
{ dayOfWeek: 1, channel: 'Instagram', channelIcon: 'instagram', contentType: 'social', title: 'Reel: 가슴성형 리얼모델 Before/After' },
|
||||
{ dayOfWeek: 1, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: '가슴성형 보형물 종류 완전 가이드 — 티에스 리얼모델' },
|
||||
{ dayOfWeek: 2, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: 'Shorts: 가슴성형 회복 기간 현실' },
|
||||
{ dayOfWeek: 3, channel: 'Instagram', channelIcon: 'instagram', contentType: 'social', title: 'Carousel: 가슴·눈·코 동시 리얼모델 비교' },
|
||||
{ dayOfWeek: 4, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: 'Shorts: 지금, 예뻐져라! — 이달의 리얼모델' },
|
||||
{ dayOfWeek: 4, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: '가슴성형 연탐 카페 후기 모음 — 티에스성형외과' },
|
||||
],
|
||||
},
|
||||
{
|
||||
weekNumber: 4, label: 'Week 4: 전환 & 카카오 상담 강화',
|
||||
entries: [
|
||||
{ dayOfWeek: 0, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: '롱폼: 티에스성형외과 — 리얼모델로 증명하는 16년' },
|
||||
{ dayOfWeek: 0, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: '첫 성형 상담 준비 — 티에스성형외과 신사역 가이드' },
|
||||
{ dayOfWeek: 1, channel: 'Instagram', channelIcon: 'instagram', contentType: 'social', title: 'Reel: 신사역 티에스성형외과 시설 투어' },
|
||||
{ dayOfWeek: 2, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: 'Shorts: 이달의 리얼모델 TOP 3' },
|
||||
{ dayOfWeek: 3, channel: 'Instagram', channelIcon: 'instagram', contentType: 'social', title: 'Carousel: 카카오톡 상담 예약 3단계' },
|
||||
{ dayOfWeek: 4, channel: 'Facebook', channelIcon: 'facebook', contentType: 'ad', title: '광고: 월말 CTA — "지금, 예뻐져라!"' },
|
||||
{ dayOfWeek: 4, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: '강남언니 12,509 리뷰 — 티에스성형외과 9.5점의 증거' },
|
||||
],
|
||||
},
|
||||
],
|
||||
monthlySummary: [
|
||||
{ type: 'video', label: '영상 (롱폼+Shorts)', count: 14, color: '#1A1A2E' },
|
||||
{ type: 'blog', label: '블로그', count: 8, color: '#E94560' },
|
||||
{ type: 'social', label: 'Instagram', count: 8, color: '#6B7280' },
|
||||
{ type: 'ad', label: '광고', count: 2, color: '#F8F8F8' },
|
||||
],
|
||||
},
|
||||
|
||||
// ─── Section 5: Asset Collection ───
|
||||
assetCollection: {
|
||||
assets: [
|
||||
{ id: 'a1', source: 'youtube', sourceLabel: '티에스TV', type: 'video', title: '715개 영상 아카이브', description: '2018년 이래 눈·코·가슴 716개 영상 — SEO 최적화 + Shorts 추출 우선', repurposingSuggestions: ['SEO 일괄 최적화 (P0)', 'Shorts 200개 추출', 'Instagram Reels', 'TikTok 동시', 'Blog 임베드'], status: 'collected' },
|
||||
{ id: 'a2', source: 'social', sourceLabel: '강남언니', type: 'text', title: '강남언니 리뷰 12,509건', description: '9.5점/10 — 눈·코·가슴 케이스 중심, 티에스의 최대 사회적 증거', repurposingSuggestions: ['50개 선별 → Carousel 시리즈', 'Instagram Stories', '광고 소셜프루프', 'Blog 후기'], status: 'pending' },
|
||||
{ id: 'a3', source: 'blog', sourceLabel: '연탐 카페', type: 'text', title: '연탐 네이버 카페 후기', description: '카페 시술별 후기 자산 — SNS 연동 미흡', repurposingSuggestions: ['Carousel 재편집', 'Blog 변환', 'Instagram Stories'], status: 'pending' },
|
||||
{ id: 'a4', source: 'social', sourceLabel: 'Instagram', type: 'photo', title: '@tsprs_official 게시물 1,500개', description: '2,626 팔로워, Reels 60개 누적', repurposingSuggestions: ['고성과 Reel 재배포', 'Carousel 재편집', 'TikTok 크로스'], status: 'collected' },
|
||||
{ id: 'a5', source: 'homepage', sourceLabel: '홈페이지', type: 'photo', title: '신사역 본원 시설 사진', description: '본원 내외부 고화질', repurposingSuggestions: ['Instagram 시설 Reel', 'YouTube B-roll', '블로그 위치 안내'], status: 'collected' },
|
||||
{ id: 'a6', source: 'homepage', sourceLabel: '홈페이지', type: 'text', title: '눈·코·가슴·리프팅 시술 설명', description: '시술별 상세 텍스트', repurposingSuggestions: ['블로그 SEO 소스', 'Carousel 텍스트', '광고 카피'], status: 'collected' },
|
||||
{ id: 'a7', source: 'homepage', sourceLabel: '홈페이지', type: 'photo', title: '리얼모델 Before/After 갤러리', description: '눈·코·가슴 리얼모델 전후 — 동의서 보유', repurposingSuggestions: ['Instagram B/A 시리즈', 'YouTube 롱폼 소스', '광고 소재'], status: 'collected' },
|
||||
{ id: 'a8', source: 'homepage', sourceLabel: '홈페이지', type: 'video', title: '브랜드 영상 "지금, 예뻐져라!" (제작 필요)', description: '리얼모델 시스템 소개 브랜드 영상 신규 제작', repurposingSuggestions: ['YouTube 채널 트레일러', 'Instagram 브랜드 Reel', '웹사이트 히어로'], status: 'needs_creation' },
|
||||
],
|
||||
youtubeRepurpose: [
|
||||
{ title: '눈성형 리얼모델 브이로그 #1', views: 0, type: 'Long', repurposeAs: ['Shorts 5개 추출', 'Instagram Reel', '카페 공유', 'Blog 임베드'] },
|
||||
{ title: '코성형 Before/After 케이스', views: 0, type: 'Long', repurposeAs: ['Shorts 3개', 'Carousel', 'Blog'] },
|
||||
{ title: '가슴성형 보형물 Q&A', views: 0, type: 'Long', repurposeAs: ['Shorts 추출', 'TikTok 동시', 'Blog'] },
|
||||
{ title: '리얼모델 이달의 케이스', views: 0, type: 'Short', repurposeAs: ['Instagram Reel', 'TikTok', '카페'] },
|
||||
],
|
||||
},
|
||||
|
||||
// ─── Section 6: Repurposing Proposals ───
|
||||
repurposingProposals: [
|
||||
{
|
||||
sourceVideo: { title: '715 영상 SEO 최적화 + Shorts 200개 추출', views: 0, type: 'Long', repurposeAs: [] },
|
||||
estimatedEffort: 'high',
|
||||
priority: 'high',
|
||||
outputs: [
|
||||
{ format: 'Shorts 200개 (전체)', channel: 'YouTube / Instagram / TikTok', description: '715 영상 → 리얼모델·시술별 Shorts 추출, 3채널 동시' },
|
||||
{ format: 'SEO 타이틀 재작성', channel: 'YouTube', description: '"강남 눈코가슴 리얼모델" 패턴 715개 일괄 적용' },
|
||||
{ format: 'Blog 임베드 포스트 50개', channel: 'Naver Blog', description: '영상 + 텍스트 가이드 구조 블로그 변환' },
|
||||
],
|
||||
},
|
||||
{
|
||||
sourceVideo: { title: '강남언니 12,509 리뷰 + 연탐 카페 후기 콘텐츠화', views: 12509, type: 'Long', repurposeAs: [] },
|
||||
estimatedEffort: 'medium',
|
||||
priority: 'high',
|
||||
outputs: [
|
||||
{ format: 'Carousel 20개', channel: 'Instagram', description: '시술별 리얼 후기 카드뉴스 — 익명화 처리' },
|
||||
{ format: '광고 소재', channel: 'Facebook / Instagram', description: '"9.5점 리얼모델 검증" 소셜프루프 광고' },
|
||||
{ format: 'Blog 후기 포스트', channel: 'Naver Blog', description: '케이스별 상세 후기 변환' },
|
||||
],
|
||||
},
|
||||
{
|
||||
sourceVideo: { title: '리얼모델 가슴성형 브이로그 (신규 제작)', views: 0, type: 'Long', repurposeAs: [] },
|
||||
estimatedEffort: 'medium',
|
||||
priority: 'medium',
|
||||
outputs: [
|
||||
{ format: 'Shorts 5개', channel: 'YouTube / TikTok', description: '수술 전·중·후 핵심 구간 — "지금, 예뻐져라!" 오프닝' },
|
||||
{ format: 'Carousel', channel: 'Instagram', description: '가슴성형 리얼모델 Before/After 카드뉴스' },
|
||||
{ format: 'Blog Post', channel: 'Naver Blog', description: '리얼모델 가슴성형 SEO 후기 포스트' },
|
||||
{ format: 'Ad Creative', channel: 'Facebook / Instagram', description: '리얼모델 결과 + "지금, 예뻐져라!" CTA 광고' },
|
||||
],
|
||||
},
|
||||
],
|
||||
|
||||
// ─── Section 7: Workflow Tracker ───
|
||||
workflow: {
|
||||
items: [
|
||||
{
|
||||
id: 'wf-001',
|
||||
title: '리얼모델 눈성형 Shorts — "지금, 예뻐져라!"',
|
||||
contentType: 'video',
|
||||
channel: 'YouTube Shorts',
|
||||
channelIcon: 'youtube',
|
||||
stage: 'ai-draft',
|
||||
videoDraft: {
|
||||
script: `[인트로 — 0~3초]\n"지금, 예뻐져라!"\n(Before → After 전환)\n\n[본문 — 3~25초]\n"티에스성형외과 리얼모델 눈성형."\n"수술 전과 후, 6개월의 변화를 직접 보여드립니다."\n"강남언니 9.5점 · 12,509 리뷰가 증명합니다."\n\n[CTA — 25~30초]\n"지금 상담 예약 — 카카오톡 @tsprs"`,
|
||||
shootingGuide: [
|
||||
'715 영상 중 리얼모델 눈성형 베스트 컷 추출',
|
||||
'Dark Navy+Crimson 워터마크 하단 고정',
|
||||
'한글 자막 필수',
|
||||
'리얼모델 동의서 확인 + 비식별화 옵션',
|
||||
],
|
||||
duration: '30초',
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'wf-002',
|
||||
title: '강남언니 리얼 후기 5선 Carousel',
|
||||
contentType: 'image-text',
|
||||
channel: 'Instagram',
|
||||
channelIcon: 'instagram',
|
||||
stage: 'review',
|
||||
userNotes: '연탐 카페 후기도 포함해서 만들어주세요',
|
||||
imageTextDraft: {
|
||||
type: 'cardnews',
|
||||
headline: '지금, 예뻐져라! — 강남언니 12,509 리뷰 중 진심 5개',
|
||||
copy: [
|
||||
'[카드 1] "리얼모델 보고 결정했는데, 딱 그대로 됐어요" — 눈성형',
|
||||
'[카드 2] "티에스가 결과로 먼저 보여줘서 믿었습니다" — 코성형',
|
||||
'[카드 3] "연탐 카페에서 후기 보고 결정 — 후회 없습니다" — 가슴성형',
|
||||
'[카드 4] "카카오 상담부터 수술까지 빠르고 친절했어요"',
|
||||
'[카드 5] 강남언니 9.5점 · 티에스성형외과 — 지금, 예뻐져라!',
|
||||
],
|
||||
layoutHint: '5장 세로형, Dark Navy+Crimson, 마지막 카드에 카카오 상담 CTA',
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'wf-003',
|
||||
title: '강남 눈성형 가이드 — SEO 블로그 (리얼모델)',
|
||||
contentType: 'image-text',
|
||||
channel: 'Naver Blog',
|
||||
channelIcon: 'globe',
|
||||
stage: 'planning',
|
||||
imageTextDraft: {
|
||||
type: 'blog',
|
||||
headline: '강남 눈성형 추천 — 티에스성형외과 리얼모델이 직접 증명합니다',
|
||||
copy: [
|
||||
'"지금, 예뻐져라!" — 이 슬로건은 리얼모델의 실제 결과에서 나왔습니다.',
|
||||
'티에스성형외과는 2010년 신사역에서 시작해 16년간 눈·코·가슴에 집중했습니다.',
|
||||
'강남언니 9.5점 / 12,509 리뷰, 연탐 네이버 카페 — 환자가 만든 신뢰입니다.',
|
||||
'티에스TV 715개 영상에서 실제 수술 과정을 직접 확인하세요.',
|
||||
],
|
||||
layoutHint: '1200px 썸네일 + 2,000자, 키워드: 강남 눈성형, 티에스성형외과, 리얼모델 성형',
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'wf-004',
|
||||
title: '리얼모델 코성형 롱폼 — 티에스TV',
|
||||
contentType: 'video',
|
||||
channel: 'YouTube',
|
||||
channelIcon: 'youtube',
|
||||
stage: 'approved',
|
||||
scheduledDate: '2026-04-21',
|
||||
videoDraft: {
|
||||
script: `[오프닝]\n"지금, 예뻐져라! 티에스성형외과입니다."\n"오늘은 리얼모델 코성형 — 상담부터 6개월 후까지 공개합니다."\n\n[Phase 1: 상담]\n"어떤 코를 원하는지 먼저 들었습니다."\n\n[Phase 2: 수술 과정]\n(그래픽 + B-roll 삽입)\n\n[Phase 3: 회복]\n"1주 차, 1개월 차, 6개월 차 — 변화를 직접 보여드립니다."\n\n[클로징]\n"강남언니 12,509 리뷰 · 티에스성형외과 — 지금, 예뻐져라!"`,
|
||||
shootingGuide: [
|
||||
'리얼모델 동의 확인 + 촬영 일정 조율',
|
||||
'Dark Navy+Crimson 인트로/아웃트로 6초',
|
||||
'한글 자막 필수',
|
||||
'6개월 추적 촬영 일정 사전 확정',
|
||||
],
|
||||
duration: '10분',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
|
|
@ -0,0 +1,439 @@
|
|||
import type { MarketingPlan } from '../types/plan';
|
||||
|
||||
/**
|
||||
* 원진성형외과 — 데모 마케팅 플랜
|
||||
*
|
||||
* 리포트 근거 (`mockReport_wonjin.ts` 2026-04-14 실측):
|
||||
* - YouTube @wjwonjin: 14.1K 구독자, 350 영상, 주 3~5회 (Shorts 활발)
|
||||
* - Instagram: @wonjin_official 23.4K (KR), @wonjin_ps 18K (KR 서브), @wj_cosmetic (글로벌)
|
||||
* - Facebook @KwonjinPS: 19K (EN, 국제 환자)
|
||||
* - 네이버 블로그 @popokpop: 업로드 저조
|
||||
* - 강남언니: 9.3점/11,846 리뷰 (강남 상위 5%)
|
||||
* - 1991년 설립 35년, 권진 원장, 코성형·눈성형 전문, 강남역
|
||||
* - 다국어 지원: 한/영/중/일/태 — 국제 환자 특화
|
||||
* - Primary: Deep Purple (#2C1654), Accent: Violet (#8B5CF6)
|
||||
*/
|
||||
export const mockPlanWonjin: MarketingPlan = {
|
||||
id: 'wonjin',
|
||||
reportId: 'wonjin',
|
||||
clinicName: '원진성형외과',
|
||||
clinicNameEn: 'Wonjin Plastic Surgery',
|
||||
createdAt: '2026-04-14',
|
||||
targetUrl: 'https://www.wonjin.com',
|
||||
|
||||
// ─── Section 1: Brand Guide ───
|
||||
brandGuide: {
|
||||
colors: [
|
||||
{ name: 'Wonjin Deep Purple', hex: '#2C1654', usage: '공식 로고 메인, 헤딩, 강조 텍스트' },
|
||||
{ name: 'Wonjin Violet', hex: '#8B5CF6', usage: '로고 악센트, CTA 포인트, 강조 요소' },
|
||||
{ name: 'Pure White', hex: '#FFFFFF', usage: '배경, 카드, 여백' },
|
||||
{ name: 'Purple Text', hex: '#1E1038', usage: '본문 텍스트' },
|
||||
{ name: 'Muted Lavender', hex: '#A08CC0', usage: '서브 텍스트, 메타 정보' },
|
||||
],
|
||||
fonts: [
|
||||
{ family: 'Pretendard', weight: 'Bold 700', usage: '헤딩, 섹션 타이틀', sampleText: '35년 강남 코성형 전문 · 국제 환자 1위' },
|
||||
{ family: 'Pretendard', weight: 'Regular 400', usage: '본문 텍스트', sampleText: '원진성형외과 권진 원장' },
|
||||
{ family: 'Playfair Display', weight: 'Bold 700', usage: '영문 헤딩', sampleText: 'WONJIN Plastic Surgery' },
|
||||
],
|
||||
logoRules: [
|
||||
{ rule: 'Deep Purple+Violet 공식 로고 통일', description: '원진성형외과 공식 로고를 모든 채널에서 동일 사용', correct: true },
|
||||
{ rule: '다국어 로고 버전 제작', description: 'KR / EN / CN / JP / TH 5개 언어 로고 버전 제작 — 국제 채널용', correct: false },
|
||||
{ rule: '3개 Instagram 계정 프로필 통일', description: '@wonjin_official / @wj_cosmetic 계정 프로필 로고 고해상도 1080×1080 통일', correct: false },
|
||||
{ rule: '채널별 언어 역할 명확화', description: '@wonjin_official KR 메인, @wj_cosmetic 글로벌 전용으로 역할 분리', correct: true },
|
||||
],
|
||||
toneOfVoice: {
|
||||
personality: ['글로벌 전문가', '신뢰감 있는', '35년 역사', '국제적', '환자 중심'],
|
||||
communicationStyle: '35년 축적된 코성형·눈성형 임상 경험과 강남언니 11,846 리뷰를 근거로, 국내외 환자 모두에게 신뢰를 전달합니다. 다국어 소통으로 글로벌 환자를 환영하는 따뜻한 전문성.',
|
||||
doExamples: [
|
||||
'"35년 코성형 전문 — 원진성형외과"',
|
||||
'"강남언니 11,846 리뷰 · 9.3점이 증명합니다"',
|
||||
'"한/영/중/일/태 — 어느 언어로도 상담드립니다"',
|
||||
'"권진 원장의 코성형 원칙: 자연스러움이 기준입니다"',
|
||||
],
|
||||
dontExamples: [
|
||||
'"강남 최고! 파격 할인!"',
|
||||
'"100% 만족 보장"',
|
||||
'"연예인 시술 병원"',
|
||||
],
|
||||
},
|
||||
channelBranding: [
|
||||
{ channel: 'YouTube', icon: 'youtube', profilePhoto: 'Wonjin 원형 로고 1080×1080', bannerSpec: '2560×1440px, Deep Purple 배경 + Violet 악센트, "35년 강남 코성형 전문"', bioTemplate: 'WJ원진성형외과 — 코성형·눈성형 전문\n35년 임상 · 강남역 | 02-544-0404\nwonjin.com', currentStatus: 'incorrect' },
|
||||
{ channel: 'Instagram KR (@wonjin_official)', icon: 'instagram', profilePhoto: 'Wonjin Deep Purple 원형 로고', bannerSpec: 'N/A (하이라이트: 코성형/눈성형/후기/이벤트/글로벌 — Purple 톤)', bioTemplate: '원진성형외과 KR 공식 — 35년 임상\n강남역 | 02-544-0404 | wonjin.com', currentStatus: 'incorrect' },
|
||||
{ channel: 'Instagram Global (@wj_cosmetic)', icon: 'instagram', profilePhoto: 'Wonjin 영문 원형 로고', bannerSpec: 'N/A (Global highlights: nose/eyes/before-after/reviews)', bioTemplate: 'Wonjin Plastic Surgery — 35 Years of Excellence\nGangnam Seoul | wonjin.com', currentStatus: 'incorrect' },
|
||||
{ channel: 'Facebook EN (@KwonjinPS)', icon: 'facebook', profilePhoto: 'Wonjin 공식 로고', bannerSpec: '820×312px, Deep Purple + Violet, "International Patients Welcome"', bioTemplate: 'Wonjin Plastic Surgery — 35 Years · 5 Languages\nGangnam Seoul | wonjin.com', currentStatus: 'incorrect' },
|
||||
{ channel: 'Naver Blog', icon: 'globe', profilePhoto: 'Wonjin 로고', bannerSpec: '블로그 상단: 로고 + 코성형·눈성형 카테고리 메뉴', bioTemplate: '원진성형외과 공식 블로그 — 35년 코성형 전문\n강남역 | wonjin.com', currentStatus: 'incorrect' },
|
||||
],
|
||||
brandInconsistencies: [
|
||||
{
|
||||
field: 'Instagram 3개 계정 역할 혼선',
|
||||
values: [
|
||||
{ channel: '@wonjin_official', value: 'KR 공식 (23.4K) — 역할 불명확', isCorrect: false },
|
||||
{ channel: '@wonjin_ps', value: 'KR 서브 (18K) — 역할 중복', isCorrect: false },
|
||||
{ channel: '@wj_cosmetic', value: '글로벌 (팔로워 미확인) — 저활용', isCorrect: false },
|
||||
],
|
||||
impact: '3개 계정 분산으로 팔로워 합산 대비 실제 도달 낮음. 콘텐츠 파편화로 브랜드 파워 희석',
|
||||
recommendation: '@wonjin_official KR 메인 집중, @wj_cosmetic 글로벌 전용, @wonjin_ps 통합 또는 휴면 전환',
|
||||
},
|
||||
{
|
||||
field: '다국어 포지셔닝 미반영',
|
||||
values: [
|
||||
{ channel: 'YouTube', value: 'WJ원진성형외과 (한국어 위주)', isCorrect: false },
|
||||
{ channel: 'Facebook EN', value: 'International Patients Welcome (양호)', isCorrect: true },
|
||||
{ channel: 'Website', value: '다국어 지원 (양호)', isCorrect: true },
|
||||
{ channel: 'Instagram KR', value: '한국어 전용 바이오 (국제 환자 접근 어려움)', isCorrect: false },
|
||||
],
|
||||
impact: '5개 언어 상담 지원이라는 핵심 USP가 Instagram KR·YouTube에 미반영',
|
||||
recommendation: '전 채널 바이오에 "한/영/중/일/태 상담 가능" 명시 + YouTube 다국어 자막 추가',
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
// ─── Section 2: Channel Strategies ───
|
||||
channelStrategies: [
|
||||
{
|
||||
channelId: 'youtube', channelName: 'YouTube', icon: 'youtube',
|
||||
currentStatus: '@wjwonjin — 14.1K 구독자, 350 영상, Shorts 활발 (롱폼 부족)',
|
||||
targetGoal: '30K 구독자 / 12개월, 롱폼 Before/After 월 4편 추가',
|
||||
contentTypes: ['롱폼 코성형 케이스 (Before/After)', '외국인 환자 브이로그 (다국어 자막)', '권진 원장 전문의 해설 시리즈'],
|
||||
postingFrequency: '주 4-5회 (Shorts 3 + 롱폼 1)',
|
||||
tone: '"35년 코성형 전문의가 말하는" — 국내외 환자 모두 대상',
|
||||
formatGuidelines: [
|
||||
'롱폼: 코성형·눈성형 케이스 스터디 — 권진 원장 직접 해설',
|
||||
'외국인 환자 브이로그: EN/CN/JP/TH 자막 추가',
|
||||
'썸네일: Deep Purple+Violet 통일, 코 Before/After 병치',
|
||||
'타이틀: "35년 코성형 전문의가 알려주는 ___" 패턴',
|
||||
],
|
||||
priority: 'P0',
|
||||
customerJourneyStage: 'consideration',
|
||||
},
|
||||
{
|
||||
channelId: 'instagram_kr', channelName: 'Instagram KR (@wonjin_official)', icon: 'instagram',
|
||||
currentStatus: '@wonjin_official — 23.4K 팔로워, Reels 80개 (양호, 확장 여지)',
|
||||
targetGoal: '60K 팔로워 / 12개월, Reels 주 5개',
|
||||
contentTypes: ['Reels (YouTube Shorts 동시)', 'Carousel (11,846 리뷰 스토리화)', 'Before/After 시리즈'],
|
||||
postingFrequency: '일 1회 + Stories 일 2-3개',
|
||||
tone: '차분하고 전문적인 KR 네이티브 — 코성형 전문 병원',
|
||||
formatGuidelines: [
|
||||
'Reels: YouTube Shorts 동시 배포',
|
||||
'Carousel: 강남언니 11,846 리뷰 중 50개 선별 → 카루셀',
|
||||
'Stories: 권진 원장 일상, 시술 비하인드',
|
||||
'해시태그: #원진성형외과 #강남코성형 #권진원장 #35년임상',
|
||||
],
|
||||
priority: 'P0',
|
||||
customerJourneyStage: 'interest',
|
||||
},
|
||||
{
|
||||
channelId: 'instagram_global', channelName: 'Instagram 글로벌 (@wj_cosmetic)', icon: 'instagram',
|
||||
currentStatus: '@wj_cosmetic — 글로벌 전용, 현재 저활용',
|
||||
targetGoal: '글로벌 계정 역할 명확화 + 외국인 환자 유입 채널화',
|
||||
contentTypes: ['EN/CN/JP/TH 다국어 Reels', 'Patient Journey (외국인 환자 브이로그)', 'Before/After (영문 설명)'],
|
||||
postingFrequency: '주 3-4회',
|
||||
tone: 'Professional & welcoming — global medical tourism',
|
||||
formatGuidelines: [
|
||||
'KR 원본 → 다국어 캡션 번역 배포 자동화',
|
||||
'YouTube 외국인 환자 브이로그 → IG 클립',
|
||||
'WhatsApp/LINE 상담 연결 CTA',
|
||||
],
|
||||
priority: 'P1',
|
||||
customerJourneyStage: 'awareness',
|
||||
},
|
||||
{
|
||||
channelId: 'facebook_en', channelName: 'Facebook EN (@KwonjinPS)', icon: 'facebook',
|
||||
currentStatus: '@KwonjinPS — 19K, 주 2~4회 업로드, 국제 환자 전용',
|
||||
targetGoal: '글로벌 리타겟 광고 채널 강화, 의료관광 전환 추적',
|
||||
contentTypes: ['외국인 환자 후기 시리즈', '리타겟 광고 소재', 'Before/After (동의서 확인)'],
|
||||
postingFrequency: '주 3회 + 광고 상시',
|
||||
tone: 'Professional & warm — Korea medical tourism storytelling',
|
||||
formatGuidelines: [
|
||||
'Facebook Pixel + WhatsApp 연동 — 해외 상담 자동 응대',
|
||||
'국가별 리타겟 광고: 태국·일본·중국·동남아',
|
||||
'다국어 환자 후기 영상 시리즈',
|
||||
],
|
||||
priority: 'P1',
|
||||
customerJourneyStage: 'conversion',
|
||||
},
|
||||
{
|
||||
channelId: 'naver_blog', channelName: 'Naver Blog', icon: 'globe',
|
||||
currentStatus: '@popokpop — 업로드 저조, SEO 방치',
|
||||
targetGoal: '주 2회 재가동, 12개월 내 월 20,000 방문자',
|
||||
contentTypes: ['코성형 SEO 가이드', '권진 원장 Q&A 텍스트 변환', 'YouTube 영상 임베드'],
|
||||
postingFrequency: '주 2회',
|
||||
tone: '"강남 코성형", "35년 원진" 키워드 중심',
|
||||
formatGuidelines: [
|
||||
'2,000자 이상 SEO 포스트',
|
||||
'YouTube 코성형 케이스 영상 임베드',
|
||||
'핵심 키워드: "강남 코성형", "원진성형외과 후기", "코성형 추천"',
|
||||
],
|
||||
priority: 'P0',
|
||||
customerJourneyStage: 'consideration',
|
||||
},
|
||||
{
|
||||
channelId: 'gangnamunni', channelName: '강남언니', icon: 'star',
|
||||
currentStatus: '9.3점/10, 11,846 리뷰 — 강남 상위 5%, 리마케팅 미활용',
|
||||
targetGoal: '리뷰 응답률 80%, 15,000 리뷰 / 12개월',
|
||||
contentTypes: ['리뷰 응답', '시술 정보 최신화'],
|
||||
postingFrequency: '리뷰 응답 일 단위',
|
||||
tone: '진심 어린 의료진 답변',
|
||||
formatGuidelines: [
|
||||
'응답률 50%(3개월) → 80%(12개월)',
|
||||
'11,846 리뷰 중 50개 선별 → SNS 콘텐츠',
|
||||
'외국인 환자 리뷰 영문/중문 답변 병기',
|
||||
],
|
||||
priority: 'P0',
|
||||
customerJourneyStage: 'loyalty',
|
||||
},
|
||||
],
|
||||
|
||||
// ─── Section 3: Content Strategy ───
|
||||
contentStrategy: {
|
||||
pillars: [
|
||||
{
|
||||
title: '35년 코성형 전문성',
|
||||
description: '1991년 개원 이래 35년 축적된 코성형·눈성형 케이스와 기술',
|
||||
relatedUSP: '35 Years Rhinoplasty Authority',
|
||||
exampleTopics: ['권진 원장의 코성형 디자인 철학', '35년 케이스에서 배운 재수술 예방법', '자연스러운 코 라인의 기준'],
|
||||
color: '#2C1654',
|
||||
},
|
||||
{
|
||||
title: '글로벌 환자 여정',
|
||||
description: '5개 언어 상담 지원 · 외국인 환자 브이로그 · 국제 의료관광 스토리',
|
||||
relatedUSP: 'Global Medical Tourism Leader',
|
||||
exampleTopics: ['태국인 환자의 원진성형외과 여정', '일본어로 상담 — 원진 Q&A', '중국인 환자 Before/After 스토리'],
|
||||
color: '#8B5CF6',
|
||||
},
|
||||
{
|
||||
title: '11,846 리뷰의 증거',
|
||||
description: '강남언니 상위 5% — 11,846 리뷰를 환자 목소리로 재구성',
|
||||
relatedUSP: 'Patient-Verified Excellence',
|
||||
exampleTopics: ['강남언니 9.3점의 의미 — 코성형 후기', '재수술 없이 자연스러운 결과', '코성형 결정 전 알아야 할 것'],
|
||||
color: '#A08CC0',
|
||||
},
|
||||
{
|
||||
title: 'Instagram 다계정 전략',
|
||||
description: 'KR 메인(@wonjin_official) + 글로벌(@wj_cosmetic) 역할 분리 및 연계',
|
||||
relatedUSP: 'Dual-Track Content Strategy',
|
||||
exampleTopics: ['KR 코성형 Reels 시리즈', 'Global Before/After (EN/CN/JP/TH)', '국내+해외 환자 동시 타겟팅'],
|
||||
color: '#FFFFFF',
|
||||
},
|
||||
],
|
||||
typeMatrix: [
|
||||
{ format: 'YouTube Long-form', channels: ['YouTube'], frequency: '월 4편', purpose: '35년 코성형 전문성 증명, 깊은 신뢰' },
|
||||
{ format: 'Shorts / Reels', channels: ['YouTube', 'Instagram', 'TikTok'], frequency: '주 5개', purpose: '도달 확대, Shorts 균형 유지' },
|
||||
{ format: 'Carousel (리뷰 스토리)', channels: ['Instagram KR'], frequency: '주 2회', purpose: '11,846 리뷰 사회적 증거화' },
|
||||
{ format: 'Blog Post (SEO)', channels: ['Naver Blog'], frequency: '주 2회', purpose: '"강남 코성형" 검색 상위 확보' },
|
||||
{ format: 'Global Content (EN/CN/JP/TH)', channels: ['Instagram Global', 'Facebook EN'], frequency: '주 3회', purpose: '국제 환자 유입, 다국어 도달' },
|
||||
{ format: 'Ad Creative (글로벌)', channels: ['Facebook EN', 'Instagram Global'], frequency: '월 6개', purpose: '태국·일본·중국 리타겟 광고' },
|
||||
],
|
||||
workflow: [
|
||||
{ step: 1, name: '계정 역할 재정의', description: '@wonjin_official KR / @wj_cosmetic 글로벌 분리 실행', owner: '마케팅 매니저', duration: '1주 (1회성)' },
|
||||
{ step: 2, name: '주제 선정', description: 'KR 코성형 키워드 + 글로벌 국가별 관심사 매칭', owner: '마케팅 매니저', duration: '1일' },
|
||||
{ step: 3, name: '콘텐츠 제작', description: 'KR 원본 제작 + 다국어 번역 배포 파이프라인', owner: 'AI + 편집 + 번역', duration: '2-3일' },
|
||||
{ step: 4, name: '권진 원장 검수', description: '의료 정확성 + 광고법 체크', owner: '권진 원장', duration: '1일' },
|
||||
{ step: 5, name: '다국어 마감', description: 'EN/CN/JP/TH 자막·캡션 추가', owner: '번역 팀', duration: '1일' },
|
||||
{ step: 6, name: '채널별 배포', description: 'KR / 글로벌 채널 동시 배포 + UTM', owner: '마케팅 매니저', duration: '당일' },
|
||||
],
|
||||
repurposingSource: '권진 원장 코성형 케이스 스터디 롱폼 (10분)',
|
||||
repurposingOutputs: [
|
||||
{ format: 'YouTube Long-form', channel: 'YouTube', description: '원본 + EN/CN 자막 병기' },
|
||||
{ format: 'Shorts 3-5개', channel: 'YouTube / Instagram / TikTok', description: '핵심 구간 다국어 자막 동시 배포' },
|
||||
{ format: 'Carousel (KR)', channel: 'Instagram KR', description: '코성형 가이드 카드뉴스' },
|
||||
{ format: 'Global Reel (EN)', channel: 'Instagram Global', description: '영문 캡션 + 글로벌 해시태그' },
|
||||
{ format: 'Blog Post', channel: 'Naver Blog', description: 'SEO 포스트 (영상 임베드)' },
|
||||
{ format: 'Ad Creative (글로벌)', channel: 'Facebook EN', description: '태국·일본 리타겟 광고 소재' },
|
||||
],
|
||||
},
|
||||
|
||||
// ─── Section 4: Content Calendar ───
|
||||
calendar: {
|
||||
weeks: [
|
||||
{
|
||||
weekNumber: 1, label: 'Week 1: Instagram 계정 정리 & 글로벌 시작',
|
||||
entries: [
|
||||
{ dayOfWeek: 0, channel: 'Instagram', channelIcon: 'instagram', contentType: 'social', title: '@wonjin_official KR 리뉴얼 공지 + 역할 재정의 Reel' },
|
||||
{ dayOfWeek: 1, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: '롱폼: 권진 원장의 35년 코성형 원칙' },
|
||||
{ dayOfWeek: 2, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: 'Shorts: 코성형 자연스러운 라인 Q&A' },
|
||||
{ dayOfWeek: 2, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: '원진성형외과 블로그 재가동 — 35년 코성형 가이드 1편' },
|
||||
{ dayOfWeek: 3, channel: 'Instagram', channelIcon: 'instagram', contentType: 'social', title: 'Carousel: 강남언니 11,846 리뷰 베스트 5' },
|
||||
{ dayOfWeek: 4, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: 'Shorts: 태국인 환자 브이로그 (TH 자막)' },
|
||||
{ dayOfWeek: 4, channel: 'Facebook', channelIcon: 'facebook', contentType: 'ad', title: '광고(EN): 코성형 의료관광 인콰이어리 (태국/일본 타겟)' },
|
||||
],
|
||||
},
|
||||
{
|
||||
weekNumber: 2, label: 'Week 2: 코성형 전문성 집중',
|
||||
entries: [
|
||||
{ dayOfWeek: 0, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: '코성형 재수술 피하는 법 — 35년 임상 기준' },
|
||||
{ dayOfWeek: 1, channel: 'Instagram', channelIcon: 'instagram', contentType: 'social', title: 'Reel: 코성형 Before/After — 자연스러운 라인' },
|
||||
{ dayOfWeek: 2, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: '롱폼: 코성형 타입별 비교 — 권진 원장 케이스 스터디' },
|
||||
{ dayOfWeek: 3, channel: 'Instagram', channelIcon: 'instagram', contentType: 'social', title: 'Carousel (글로벌 @wj_cosmetic): Rhinoplasty Guide EN/CN' },
|
||||
{ dayOfWeek: 3, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: '원진성형외과 코성형 후기 — 강남언니 9.3점의 의미' },
|
||||
{ dayOfWeek: 4, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: 'Shorts: 코성형 후 회복 기간 Q&A' },
|
||||
],
|
||||
},
|
||||
{
|
||||
weekNumber: 3, label: 'Week 3: 눈성형 + 글로벌 환자 콘텐츠',
|
||||
entries: [
|
||||
{ dayOfWeek: 0, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: '롱폼: 눈성형 유형별 비교 — 권진 원장 해설' },
|
||||
{ dayOfWeek: 1, channel: 'Instagram', channelIcon: 'instagram', contentType: 'social', title: 'Reel: 눈성형 전후 — 자연스러운 라인' },
|
||||
{ dayOfWeek: 1, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: '눈성형 Q&A 10가지 — 원진성형외과 전문의 답변' },
|
||||
{ dayOfWeek: 2, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: 'Shorts: 일본인 환자 브이로그 (JP 자막)' },
|
||||
{ dayOfWeek: 3, channel: 'Instagram', channelIcon: 'instagram', contentType: 'social', title: 'Carousel: 코+눈 동시 수술 가이드' },
|
||||
{ dayOfWeek: 4, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: 'Shorts: 재수술 케이스 — 권진 원장 해설' },
|
||||
],
|
||||
},
|
||||
{
|
||||
weekNumber: 4, label: 'Week 4: 전환 & UTM 추적 강화',
|
||||
entries: [
|
||||
{ dayOfWeek: 0, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: '롱폼: 원진성형외과 — 35년, 11,846 리뷰의 이야기' },
|
||||
{ dayOfWeek: 0, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: '첫 코성형 상담 준비 가이드 — 원진성형외과' },
|
||||
{ dayOfWeek: 1, channel: 'Instagram', channelIcon: 'instagram', contentType: 'social', title: 'Reel: 강남역 원진성형외과 시설 투어' },
|
||||
{ dayOfWeek: 2, channel: 'YouTube', channelIcon: 'youtube', contentType: 'video', title: 'Shorts: 권진 원장 이달의 코성형 케이스' },
|
||||
{ dayOfWeek: 3, channel: 'Instagram', channelIcon: 'instagram', contentType: 'social', title: 'Carousel: 다국어 상담 안내 — 한/영/중/일/태' },
|
||||
{ dayOfWeek: 4, channel: 'Naver Blog', channelIcon: 'globe', contentType: 'blog', title: '원진성형외과 11,846 리뷰 — 강남언니 검증' },
|
||||
{ dayOfWeek: 4, channel: 'Facebook', channelIcon: 'facebook', contentType: 'ad', title: '광고(글로벌): 월말 코성형 상담 CTA — 5개 언어' },
|
||||
],
|
||||
},
|
||||
],
|
||||
monthlySummary: [
|
||||
{ type: 'video', label: '영상 (롱폼+Shorts)', count: 14, color: '#2C1654' },
|
||||
{ type: 'blog', label: '블로그', count: 8, color: '#8B5CF6' },
|
||||
{ type: 'social', label: 'Instagram (KR+글로벌)', count: 9, color: '#A08CC0' },
|
||||
{ type: 'ad', label: '글로벌 광고', count: 2, color: '#FFFFFF' },
|
||||
],
|
||||
},
|
||||
|
||||
// ─── Section 5: Asset Collection ───
|
||||
assetCollection: {
|
||||
assets: [
|
||||
{ id: 'a1', source: 'youtube', sourceLabel: 'YouTube', type: 'video', title: '350개 영상 아카이브 (Shorts 위주)', description: '주 3~5회 Shorts 업로드 지속 중 — 롱폼 추가 필요', repurposingSuggestions: ['롱폼 → Shorts 5개 추출', 'Instagram KR+글로벌 동시', 'TikTok 다국어 배포'], status: 'collected' },
|
||||
{ id: 'a2', source: 'social', sourceLabel: '강남언니', type: 'text', title: '강남언니 리뷰 11,846건', description: '9.3점/10 — 강남 상위 5%, 코성형 중심 리뷰 최대 자산', repurposingSuggestions: ['50개 선별 → Carousel 시리즈', 'Instagram Stories', '광고 소셜프루프 (국내+글로벌)', 'Blog 후기'], status: 'pending' },
|
||||
{ id: 'a3', source: 'social', sourceLabel: 'Instagram KR', type: 'photo', title: '@wonjin_official 게시물 1,200개', description: '23.4K 팔로워, 코성형·눈성형 Reels+B/A', repurposingSuggestions: ['고성과 Reel 글로벌 계정 크로스포스팅', 'Carousel 재편집'], status: 'collected' },
|
||||
{ id: 'a4', source: 'homepage', sourceLabel: '홈페이지', type: 'photo', title: '권진 원장 + 의료진 10명 프로필', description: '권진 원장 + 전문의 10명 고화질 프로필', repurposingSuggestions: ['원장 인터뷰 섬네일', 'Carousel 의료진 소개', '광고 신뢰도 소재'], status: 'collected' },
|
||||
{ id: 'a5', source: 'homepage', sourceLabel: '홈페이지', type: 'text', title: '5개 언어 시술 설명 텍스트', description: '한/영/중/일/태 시술별 상세 텍스트 — 글로벌 콘텐츠 소스', repurposingSuggestions: ['글로벌 Instagram 캡션 소스', 'Facebook EN 광고 카피', '다국어 블로그'], status: 'collected' },
|
||||
{ id: 'a6', source: 'homepage', sourceLabel: '홈페이지', type: 'photo', title: '코성형·눈성형 전후 갤러리', description: '권진 원장 코성형 케이스 — 동의서 보유', repurposingSuggestions: ['Instagram B/A 시리즈 (KR+글로벌)', 'YouTube 케이스 롱폼 소스', '광고 소재'], status: 'collected' },
|
||||
{ id: 'a7', source: 'social', sourceLabel: 'Instagram Global', type: 'video', title: '외국인 환자 브이로그 자산 (제작 필요)', description: '태국·일본·중국 환자 브이로그 시리즈 — 신규 제작 필요', repurposingSuggestions: ['YouTube 다국어 자막 롱폼', '@wj_cosmetic 글로벌 Reel', 'Facebook EN 시리즈'], status: 'needs_creation' },
|
||||
],
|
||||
youtubeRepurpose: [
|
||||
{ title: '코성형 타입별 비교 케이스', views: 0, type: 'Long', repurposeAs: ['Shorts 5개 추출', 'IG KR+글로벌 동시', 'Blog 임베드'] },
|
||||
{ title: '눈성형 유형별 비교', views: 0, type: 'Long', repurposeAs: ['Shorts 3개', 'Carousel', 'Blog'] },
|
||||
{ title: '코+눈 동시 수술 케이스', views: 0, type: 'Long', repurposeAs: ['Shorts 추출', 'Global Reel', 'Blog'] },
|
||||
{ title: '재수술 예방 가이드', views: 0, type: 'Long', repurposeAs: ['Shorts 추출', 'KR Carousel', 'Blog'] },
|
||||
],
|
||||
},
|
||||
|
||||
// ─── Section 6: Repurposing Proposals ───
|
||||
repurposingProposals: [
|
||||
{
|
||||
sourceVideo: { title: '코성형 케이스 스터디 롱폼 (신규 제작)', views: 0, type: 'Long', repurposeAs: [] },
|
||||
estimatedEffort: 'medium',
|
||||
priority: 'high',
|
||||
outputs: [
|
||||
{ format: 'Shorts 5개', channel: 'YouTube / Instagram KR / TikTok', description: '코성형 핵심 구간 — 국내 배포' },
|
||||
{ format: 'Global Reel (EN/CN)', channel: '@wj_cosmetic', description: '영문·중문 자막 추가 후 글로벌 계정 배포' },
|
||||
{ format: 'Carousel (KR)', channel: 'Instagram KR', description: '코성형 전후 카드뉴스' },
|
||||
{ format: 'Blog Post', channel: 'Naver Blog', description: 'SEO 코성형 가이드 포스트' },
|
||||
],
|
||||
},
|
||||
{
|
||||
sourceVideo: { title: '강남언니 11,846 리뷰 콘텐츠화', views: 11846, type: 'Long', repurposeAs: [] },
|
||||
estimatedEffort: 'medium',
|
||||
priority: 'high',
|
||||
outputs: [
|
||||
{ format: 'Carousel 20개 (KR)', channel: 'Instagram KR', description: '코성형·눈성형 후기 카드뉴스' },
|
||||
{ format: '글로벌 광고 소재', channel: 'Facebook EN / Instagram Global', description: '"9.3점 강남 상위 5%" 글로벌 소셜프루프' },
|
||||
{ format: 'Blog 후기 포스트', channel: 'Naver Blog', description: '케이스별 상세 후기 변환' },
|
||||
],
|
||||
},
|
||||
{
|
||||
sourceVideo: { title: '외국인 환자 브이로그 — 태국 편 (신규)', views: 0, type: 'Long', repurposeAs: [] },
|
||||
estimatedEffort: 'medium',
|
||||
priority: 'high',
|
||||
outputs: [
|
||||
{ format: 'YouTube 롱폼 (TH 자막)', channel: 'YouTube', description: '태국어 자막 → 태국 검색 유입' },
|
||||
{ format: '@wj_cosmetic Reel', channel: 'Instagram Global', description: '태국어 캡션 + 태국 해시태그' },
|
||||
{ format: 'Facebook EN 광고', channel: 'Facebook EN', description: '태국 국가 타겟 리타겟 광고' },
|
||||
],
|
||||
},
|
||||
],
|
||||
|
||||
// ─── Section 7: Workflow Tracker ───
|
||||
workflow: {
|
||||
items: [
|
||||
{
|
||||
id: 'wf-001',
|
||||
title: '코성형 Before/After Shorts — @wonjin_official + @wj_cosmetic 동시',
|
||||
contentType: 'video',
|
||||
channel: 'YouTube Shorts',
|
||||
channelIcon: 'youtube',
|
||||
stage: 'ai-draft',
|
||||
videoDraft: {
|
||||
script: `[인트로 — 0~3초]\n"코가 달라지면 인상 전체가 달라집니다."\n(전 → 후 전환)\n\n[본문 — 3~25초]\n"원진성형외과, 35년 코성형 전문."\n"권진 원장의 원칙: 자연스러움이 기준입니다."\n"강남언니 9.3점 / 11,846 리뷰가 증명합니다."\n\n[CTA — 25~30초]\n"한/영/중/일/태 상담 가능 — 프로필 링크"`,
|
||||
shootingGuide: [
|
||||
'Deep Purple+Violet 워터마크 하단 고정',
|
||||
'한글 자막 필수 + EN/CN 자막 버전 별도',
|
||||
'KR 배포: @wonjin_official / 글로벌 배포: @wj_cosmetic',
|
||||
'환자 동의서 확인 + 비식별화',
|
||||
],
|
||||
duration: '30초',
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'wf-002',
|
||||
title: '강남언니 리뷰 5선 Carousel — KR 버전',
|
||||
contentType: 'image-text',
|
||||
channel: 'Instagram',
|
||||
channelIcon: 'instagram',
|
||||
stage: 'review',
|
||||
imageTextDraft: {
|
||||
type: 'cardnews',
|
||||
headline: '강남언니 11,846 리뷰 중 — 코성형 진심 5개',
|
||||
copy: [
|
||||
'[카드 1] "35년 노하우가 뭔지 수술 결과로 처음 알았습니다" — 코성형 환자',
|
||||
'[카드 2] "재수술 걱정 없이 결정한 이유 — 원진의 원칙이 달랐습니다"',
|
||||
'[카드 3] "일본에서 왔는데 일어로 상담해주셔서 너무 편했어요"',
|
||||
'[카드 4] "권진 원장님이 직접 케이스를 설명해주셨습니다"',
|
||||
'[카드 5] 강남언니 9.3점 · 원진성형외과 — 프로필 링크에서 확인',
|
||||
],
|
||||
layoutHint: '5장 세로형, Deep Purple+Violet, 마지막 카드에 다국어 상담 CTA',
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'wf-003',
|
||||
title: '원진성형외과 블로그 재가동 — 35년 코성형',
|
||||
contentType: 'image-text',
|
||||
channel: 'Naver Blog',
|
||||
channelIcon: 'globe',
|
||||
stage: 'planning',
|
||||
imageTextDraft: {
|
||||
type: 'blog',
|
||||
headline: '원진성형외과 35년 — 코성형 전문의가 직접 씁니다',
|
||||
copy: [
|
||||
'1991년 개원, 35년간 강남역에서 코성형·눈성형을 전문으로 해왔습니다.',
|
||||
'강남언니 11,846 리뷰 / 9.3점 — 환자 여러분이 만든 기록입니다.',
|
||||
'한/영/중/일/태 5개 언어로 상담 가능한 병원, 세계 각국 환자를 모십니다.',
|
||||
'매주 2회, 코성형·눈성형 전문 정보를 이 블로그에서 공유합니다.',
|
||||
],
|
||||
layoutHint: '1200px 썸네일 + 2,000자, 키워드: 강남 코성형, 원진성형외과, 코성형 추천, 35년',
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'wf-004',
|
||||
title: '권진 원장 코성형 35년 인터뷰 — YouTube 롱폼',
|
||||
contentType: 'video',
|
||||
channel: 'YouTube',
|
||||
channelIcon: 'youtube',
|
||||
stage: 'approved',
|
||||
scheduledDate: '2026-04-21',
|
||||
videoDraft: {
|
||||
script: `[오프닝]\n"안녕하세요, 원진성형외과 권진입니다."\n"35년간 코성형에만 집중한 이유를 말씀드립니다."\n\n[원칙 1: 자연스러움]\n"코성형의 결과는 티가 나지 않는 것이 최고입니다."\n\n[원칙 2: 재수술 예방]\n"좋은 코성형은 10년 후에도 유지됩니다."\n\n[글로벌 메시지]\n"어떤 언어로도 상담드립니다 — 원진성형외과."\n\n[클로징]\n"11,846 리뷰, 35년 — 결과로 증명합니다."`,
|
||||
shootingGuide: [
|
||||
'강남역 원진 원장실 자연광',
|
||||
'권진 원장 정면 + 3/4 앵글',
|
||||
'한글 + EN + CN 자막 3가지 버전',
|
||||
'Deep Purple+Violet 인트로/아웃트로',
|
||||
],
|
||||
duration: '8분',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
|
|
@ -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 — 4,183 팔로워, 게시물 꾸준' },
|
||||
{ channel: 'Facebook', icon: 'facebook', score: 35, maxScore: 100, status: 'critical', headline: '@BanobagiPlasticSurgery — 16,000 팔로워, 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: 4183,
|
||||
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: 16000,
|
||||
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 국제 페이지(16K 실측) 유지하되, 한국 시장 전용 페이지 신규 개설 또는 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: '4,183 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: '4,183', 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',
|
||||
},
|
||||
],
|
||||
};
|
||||
|
|
@ -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.grandsurgery.com',
|
||||
overallScore: 42,
|
||||
|
||||
clinicSnapshot: {
|
||||
...mockReport.clinicSnapshot,
|
||||
name: '그랜드성형외과',
|
||||
nameEn: 'Grand Plastic Surgery',
|
||||
established: '2005',
|
||||
yearsInBusiness: 21,
|
||||
staffCount: 3,
|
||||
leadDoctor: {
|
||||
name: '이세환',
|
||||
credentials: '그랜드성형외과 대표원장 · 안면거상 전문',
|
||||
rating: 9.8,
|
||||
reviewCount: 1533,
|
||||
},
|
||||
overallRating: 9.8,
|
||||
totalReviews: 1533,
|
||||
priceRange: { min: '200,000', max: '15,000,000+', currency: '₩' },
|
||||
certifications: [
|
||||
'성형외과 전문의',
|
||||
'안면거상·리프팅 전문센터',
|
||||
'분야별 집중 수술',
|
||||
],
|
||||
mediaAppearances: ['강남언니 1,533 리뷰', '유튜브 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/hospitals/62',
|
||||
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 — 4,013 팔로워, Reels 활용 미흡' },
|
||||
{ channel: 'Facebook', icon: 'facebook', score: 30, maxScore: 100, status: 'critical', headline: '@grandps.korea — 26,000 팔로워, 활성도 낮음' },
|
||||
{ channel: '강남언니', icon: 'star', score: 72, maxScore: 100, status: 'warning', headline: '9.8점/10, 1,533 리뷰 — 응답 전략 부재' },
|
||||
{ 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: 4013,
|
||||
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: 26000,
|
||||
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: '팔로워 26,000명 — 유의미한 규모이나 콘텐츠 업로드 빈도 낮음', severity: 'warning' },
|
||||
],
|
||||
brandInconsistencies: [],
|
||||
consolidationRecommendation: 'Facebook을 유지하되 YouTube·Instagram 우선 집중 권장.',
|
||||
},
|
||||
|
||||
otherChannels: [
|
||||
{ name: '네이버 블로그', status: 'unknown', details: '공식 블로그 운영 중 — 최근 업로드 저조', url: 'https://blog.naver.com/grandprs' },
|
||||
{ name: '강남언니', status: 'active', details: '9.8점/10, 1,533 리뷰 · 안면거상 전문병원', url: 'https://www.gangnamunni.com/hospitals/62' },
|
||||
{ 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: '4,013 followers',
|
||||
targetMetric: '25K / 12개월',
|
||||
strategies: [
|
||||
{ strategy: 'Before/After Reels 주 4회', detail: 'YouTube Shorts와 동시 배포' },
|
||||
{ strategy: '강남언니 리뷰 스토리화', detail: '1,533 리뷰 중 선별 → 카루셀' },
|
||||
],
|
||||
},
|
||||
{
|
||||
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: '4,013', target3Month: '8K', target12Month: '20K' },
|
||||
{ metric: '네이버 블로그 포스팅', current: '저조', target3Month: '주 2회', target12Month: '주 3회' },
|
||||
{ metric: '강남언니 리뷰', current: '1,533', 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 — 4,013 팔로워',
|
||||
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 — 26,000 팔로워',
|
||||
sourceUrl: 'https://www.facebook.com/grandps.korea',
|
||||
},
|
||||
{
|
||||
id: 'gangnamunni',
|
||||
url: '/assets/clients/grand/screenshots/gangnamunni.png',
|
||||
channel: '강남언니',
|
||||
capturedAt: '2026-04-14T10:04:00Z',
|
||||
caption: '강남언니 — 그랜드성형외과 9.8점, 1,533 리뷰',
|
||||
sourceUrl: 'https://www.gangnamunni.com/hospitals/62',
|
||||
},
|
||||
{
|
||||
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',
|
||||
},
|
||||
],
|
||||
};
|
||||
|
|
@ -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: 9.4,
|
||||
reviewCount: 86,
|
||||
},
|
||||
overallRating: 9.4,
|
||||
totalReviews: 86,
|
||||
priceRange: { min: '100,000', max: '8,000,000+', currency: '₩' },
|
||||
certifications: [
|
||||
'성형외과 전문의',
|
||||
'코성형·눈밑지방 전문',
|
||||
'한·태·일 다국어 상담',
|
||||
'리팟레이저 도입',
|
||||
],
|
||||
mediaAppearances: ['강남언니 86 리뷰', '태국·일본 외국인 환자 특화'],
|
||||
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/hospitals/839',
|
||||
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: 10, maxScore: 100, status: 'critical', headline: '서울아이성형외과 페이지 — 비공개/삭제 상태 확인됨' },
|
||||
{ channel: '강남언니', icon: 'star', score: 65, maxScore: 100, status: 'warning', headline: '9.4점/10, 86 리뷰 — 리뷰 응답·마케팅 활용 미흡' },
|
||||
{ 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: 826,
|
||||
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: 0,
|
||||
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: '공식 페이지 접근 불가 확인 — 외국인 환자 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: 'active', details: '9.4점/10, 86 리뷰', url: 'https://www.gangnamunni.com/hospitals/839' },
|
||||
{ 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: 'KR @seoulips 826명 (실측) · TH/JP 계정 운영 중',
|
||||
targetMetric: '@seoulips KR 30K / 12개월',
|
||||
strategies: [
|
||||
{ strategy: '계정 간 콘텐츠 연계 자동화', detail: 'KR → TH/JP 번역 배포 파이프라인 구축' },
|
||||
{ strategy: 'Reels 주 5회 (전 계정)', detail: 'YouTube Shorts 동시 다국어 배포' },
|
||||
{ strategy: '86 리뷰 콘텐츠화', 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: '강남언니 86 리뷰 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: '826', target3Month: '3K', target12Month: '10K' },
|
||||
{ metric: 'Instagram 태국(@seouli_ps_th) 팔로워', current: '~5K', target3Month: '8K', target12Month: '15K' },
|
||||
{ metric: '강남언니 리뷰', current: '86', 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 — 826 팔로워 (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: '강남언니 — 이룸(서울아이)성형외과 9.4점, 86 리뷰',
|
||||
sourceUrl: 'https://www.gangnamunni.com/hospitals/839',
|
||||
},
|
||||
{
|
||||
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',
|
||||
},
|
||||
],
|
||||
};
|
||||
|
|
@ -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: 9.5,
|
||||
reviewCount: 12509,
|
||||
},
|
||||
overallRating: 9.5,
|
||||
totalReviews: 12509,
|
||||
priceRange: { min: '100,000', max: '10,000,000+', currency: '₩' },
|
||||
certifications: [
|
||||
'성형외과 전문의',
|
||||
'눈·코·가슴 종합 성형',
|
||||
'리얼모델 시스템',
|
||||
],
|
||||
mediaAppearances: ['강남언니 12,509 리뷰', '유튜브 리얼모델 콘텐츠'],
|
||||
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/hospitals/116',
|
||||
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 — 3,900 팔로워, 활성도 낮음' },
|
||||
{ channel: '강남언니', icon: 'star', score: 78, maxScore: 100, status: 'warning', headline: '9.5점/10, 12,509 리뷰 — 응답 전략 강화 필요' },
|
||||
{ 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: 2626,
|
||||
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: 3900,
|
||||
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: '9.5점/10, 12,509 리뷰', url: 'https://www.gangnamunni.com/hospitals/116' },
|
||||
{ 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: '2,626 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: '2,626', target3Month: '6K', target12Month: '15K' },
|
||||
{ metric: 'Instagram Reels 평균 조회수', current: '낮음', target3Month: '8,000', target12Month: '25,000' },
|
||||
{ metric: '강남언니 리뷰', current: '12,509', 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 — 2,626 팔로워, 리얼모델 콘텐츠',
|
||||
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 — 3,900 팔로워',
|
||||
sourceUrl: 'https://www.facebook.com/tsprs',
|
||||
},
|
||||
{
|
||||
id: 'gangnamunni',
|
||||
url: '/assets/clients/ts/screenshots/gangnamunni.png',
|
||||
channel: '강남언니',
|
||||
capturedAt: '2026-04-14T10:04:00Z',
|
||||
caption: '강남언니 — 티에스성형외과 9.5점, 12,509 리뷰',
|
||||
sourceUrl: 'https://www.gangnamunni.com/hospitals/116',
|
||||
},
|
||||
{
|
||||
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',
|
||||
},
|
||||
],
|
||||
};
|
||||
|
|
@ -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.k-wonjin.co.kr',
|
||||
overallScore: 62,
|
||||
|
||||
clinicSnapshot: {
|
||||
...mockReport.clinicSnapshot,
|
||||
name: '원진성형외과',
|
||||
nameEn: 'Wonjin Plastic Surgery',
|
||||
established: '1991',
|
||||
yearsInBusiness: 35,
|
||||
staffCount: 10,
|
||||
leadDoctor: {
|
||||
name: '권진',
|
||||
credentials: '원진성형외과 대표원장 · 코성형 전문',
|
||||
rating: 9.3,
|
||||
reviewCount: 11846,
|
||||
},
|
||||
overallRating: 9.3,
|
||||
totalReviews: 11846,
|
||||
priceRange: { min: '100,000', max: '20,000,000+', currency: '₩' },
|
||||
certifications: [
|
||||
'성형외과 전문의',
|
||||
'코성형·눈성형 전문',
|
||||
'국제 의료 관광 인증',
|
||||
'다국어 상담 지원 (한/영/중/일/태)',
|
||||
],
|
||||
mediaAppearances: ['강남언니 11,846 리뷰', '국제 성형 의료 관광 병원'],
|
||||
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/hospitals/2500',
|
||||
googleMapsUrl: 'https://maps.google.com/?q=원진성형외과',
|
||||
},
|
||||
logoImages: {
|
||||
circle: '/assets/clients/wonjin/logo-circle.png',
|
||||
horizontal: '/assets/clients/wonjin/logo-horizontal.svg',
|
||||
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: '9.3점/10, 11,846 리뷰 — 강남 상위 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: 23400,
|
||||
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: 19000,
|
||||
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: '9.3점/10, 11,846 리뷰 · 코성형 강남 상위', url: 'https://www.gangnamunni.com/hospitals/2500' },
|
||||
{ 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(23.4K 실측) + @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: '@wonjin_official 23,400 팔로워 (실측)',
|
||||
targetMetric: '@wonjin_official 80K / 12개월',
|
||||
strategies: [
|
||||
{ strategy: '계정 역할 재정의', detail: '@wonjin_official KR 메인, @wj_cosmetic 글로벌 전용' },
|
||||
{ strategy: '11,846 리뷰 콘텐츠화', 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: '강남언니 11,846 리뷰 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: '23,400', target3Month: '35K', target12Month: '60K' },
|
||||
{ metric: '강남언니 리뷰', current: '11,846', 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 — 23,400 팔로워 (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 — 19,000 팔로워 (국제 공식)',
|
||||
sourceUrl: 'https://www.facebook.com/KwonjinPS',
|
||||
},
|
||||
{
|
||||
id: 'gangnamunni',
|
||||
url: '/assets/clients/wonjin/screenshots/gangnamunni.png',
|
||||
channel: '강남언니',
|
||||
capturedAt: '2026-04-14T10:04:00Z',
|
||||
caption: '강남언니 — 원진성형외과 9.3점, 11,846 리뷰',
|
||||
sourceUrl: 'https://www.gangnamunni.com/hospitals/2500',
|
||||
},
|
||||
{
|
||||
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',
|
||||
},
|
||||
],
|
||||
};
|
||||
|
|
@ -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<string, MarketingPlan> = {
|
||||
'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
|
||||
|
|
|
|||
|
|
@ -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<string, MarketingReport> = {
|
||||
'view-clinic': mockReport,
|
||||
'banobagi': mockReportBanobagi,
|
||||
'grand': mockReportGrand,
|
||||
'wonjin': mockReportWonjin,
|
||||
'ts': mockReportTs,
|
||||
'irum': mockReportIrum,
|
||||
};
|
||||
|
||||
const DEMO_HANDLES: Record<string, Record<string, string | null>> = {
|
||||
'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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import { useEffect } from 'react';
|
||||
import { useParams, useLocation } from 'react-router';
|
||||
import { useMarketingPlan } from '../hooks/useMarketingPlan';
|
||||
import { ReportNav } from '../components/report/ReportNav';
|
||||
|
|
@ -33,6 +34,21 @@ export default function MarketingPlanPage() {
|
|||
const clinicId = (location.state as { clinicId?: string } | undefined)?.clinicId || null;
|
||||
const { data, isLoading, error } = useMarketingPlan(id);
|
||||
|
||||
// Hash-based scroll: /plan/:id#section-id → scroll to that section after render
|
||||
// Offsets sticky Navbar (80px) + ReportNav (~48px) so the section top isn't covered.
|
||||
useEffect(() => {
|
||||
if (isLoading || !location.hash) return;
|
||||
const sectionId = location.hash.slice(1);
|
||||
const timer = setTimeout(() => {
|
||||
const el = document.getElementById(sectionId);
|
||||
if (!el) return;
|
||||
const STICKY_OFFSET = 128;
|
||||
const y = el.getBoundingClientRect().top + window.scrollY - STICKY_OFFSET;
|
||||
window.scrollTo({ top: y, behavior: 'smooth' });
|
||||
}, 300);
|
||||
return () => clearTimeout(timer);
|
||||
}, [isLoading, location.hash]);
|
||||
|
||||
if (isLoading) {
|
||||
return (
|
||||
<div className="min-h-screen flex items-center justify-center pt-20">
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ export interface VerifiedChannels {
|
|||
naverBlog: VerifiedChannel | null;
|
||||
gangnamUnni: VerifiedChannel | null;
|
||||
tiktok: VerifiedChannel | null;
|
||||
naverPlace?: { url: string; placeId?: string } | null; // registry-sourced place URL
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -560,23 +560,35 @@ Deno.serve(async (req) => {
|
|||
const npVerified = (verified as Record<string, unknown>).naverPlace as Record<string, unknown> | null;
|
||||
|
||||
channelTasks.push(wrapChannelTask("naverPlace", async () => {
|
||||
// ── Fast path: already verified in DB ──
|
||||
// ── Fast path 1: already fully verified in DB (has name) ──
|
||||
if (npVerified?.name) {
|
||||
console.log(`[naverPlace] Using verified DB data: ${npVerified.name}`);
|
||||
channelData.naverPlace = npVerified;
|
||||
return;
|
||||
}
|
||||
|
||||
// ── Slow path: first-time discovery via domain-matched search ──
|
||||
// ── Fast path 2: registry-sourced place URL → use Naver Place ID directly ──
|
||||
const registryPlaceUrl = (verified as Record<string, unknown>).naverPlace as { url?: string; placeId?: string } | null;
|
||||
const registryPlaceId = registryPlaceUrl?.placeId;
|
||||
if (registryPlaceId) {
|
||||
console.log(`[naverPlace] Using registry place ID: ${registryPlaceId}`);
|
||||
// Build the Naver local search with placeId as a hint — use clinic name to fetch details
|
||||
// We'll pass through to search but prime the query with clinic name
|
||||
}
|
||||
|
||||
// ── Slow path: search via Naver Local API ──
|
||||
const normalize = (s: string) => (s || '').replace(/<[^>]*>/g, '').toLowerCase();
|
||||
let clinicDomain = '';
|
||||
try { clinicDomain = new URL(row.url || '').hostname.replace('www.', ''); } catch { /* skip */ }
|
||||
|
||||
const districtMatch = address.match(/([가-힣]+(구|동))/);
|
||||
const district = districtMatch?.[1] || '';
|
||||
// Strip 의원/병원 suffixes for broader search match
|
||||
const shortName = clinicName.replace(/의원$|병원$/, '').trim();
|
||||
const queries = [
|
||||
...(district ? [`${clinicName} ${district}`, `${clinicName} 성형 ${district}`] : []),
|
||||
...(district ? [`${clinicName} ${district}`, `${shortName} ${district}`] : []),
|
||||
`${clinicName} 성형외과`,
|
||||
`${shortName} 성형외과`,
|
||||
`${clinicName} 성형`,
|
||||
];
|
||||
|
||||
|
|
@ -591,9 +603,10 @@ Deno.serve(async (req) => {
|
|||
const data = await res.json();
|
||||
const items = (data.items || []) as Record<string, string>[];
|
||||
|
||||
// Match by official domain first (most reliable), then exact name + 성형 category
|
||||
// Match priority: (1) domain match, (2) registry place ID in link, (3) name contains match + 성형 category
|
||||
const match = (clinicDomain ? items.find(i => (i.link || '').includes(clinicDomain)) : null)
|
||||
?? items.find(i => normalize(i.title) === clinicName.toLowerCase() && (i.category || '').includes('성형'))
|
||||
?? (registryPlaceId ? items.find(i => (i.link || '').includes(registryPlaceId)) : null)
|
||||
?? items.find(i => normalize(i.title).includes(shortName.toLowerCase()) && (i.category || '').includes('성형'))
|
||||
?? null;
|
||||
|
||||
if (match) {
|
||||
|
|
|
|||
|
|
@ -74,6 +74,11 @@ function registryToVerifiedChannels(reg: RegistryRow): import("../_shared/verify
|
|||
const blogHandle = extractHandleFromUrl(reg.naver_blog_url || '', 'naverBlog');
|
||||
const ttHandle = extractHandleFromUrl(reg.tiktok_url || '', 'tiktok');
|
||||
|
||||
// Extract Naver Place ID from URL (e.g. https://m.place.naver.com/hospital/11709005 → "11709005")
|
||||
const naverPlaceId = reg.naver_place_url
|
||||
? (reg.naver_place_url.match(/\/(\d+)\/?$/) || [])[1] || undefined
|
||||
: undefined;
|
||||
|
||||
return {
|
||||
instagram: igHandles,
|
||||
youtube: ytHandle ? { handle: ytHandle, verified: true, url: reg.youtube_url! } : null,
|
||||
|
|
@ -81,6 +86,7 @@ function registryToVerifiedChannels(reg: RegistryRow): import("../_shared/verify
|
|||
naverBlog: blogHandle ? { handle: blogHandle, verified: true, url: reg.naver_blog_url! } : null,
|
||||
gangnamUnni: reg.gangnam_unni_url ? { handle: reg.gangnam_unni_url, verified: true, url: reg.gangnam_unni_url } : null,
|
||||
tiktok: ttHandle ? { handle: ttHandle, verified: true, url: reg.tiktok_url! } : null,
|
||||
naverPlace: reg.naver_place_url ? { url: reg.naver_place_url, placeId: naverPlaceId } : null,
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||