메인 체크아웃(feature/ai-sentiment-rubric)의 작업 트리에 커밋되지 않은 채 남아 있던 플래너 계측 코드가 main 에 없었다. 기록 노트 머리말이 "2026-09-12 추가 작업: 플래너 계측 이벤트 구현"이라고 적은 그 코드다. 브랜치 통합은 커밋된 상태까지만 가져가므로 빠졌고, 그래서 배포된 세 사이트에 플래너 계측이 없었다. Planner.astro 의 계측 부분만 가져왔다(haewon 결정). 같은 미커밋분이 Base.astro 에도 GA4 태그를 넣는데, main 에는 이미 같은 태그가 들어가 있어 그대로 두었다. 두 구현이 겹치면 태그가 두 번 들어간다. 가져온 것 - track(): window.gtag 가 없으면 아무것도 하지 않는다. GA4 측정 ID 가 비어 있으면 태그 자체가 안 나가므로 기본 상태에서 조용하다. - plan_procedure_select · plan_result · plan_save 이벤트. - leadBucket(): 수술일 원본을 보내지 않고 남은 기간 구간(past·0-7d·8-28d·29-90d·90d+)만 보낸다. 체류 일수·출국 확정 여부·선호·국적도 값이 아닌 구간·플래그로 보낸다. - 호텔·항공·상담 링크의 data-ga 속성. Base.astro 의 클릭 리스너가 이 값을 읽는다. site.json 에 ga4MeasurementId 자리와 설명을 넣었다. 템플릿 빈 데이터셋에는 이미 있었다. 검증: 뷰 34페이지, 게이트 41/41, check.mjs 오류 0건, tsc 0 에러, 빈 데이터 템플릿 16페이지, 내보내기 0. 번들에서 gtag 미존재 시 조기 반환 확인. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
160 lines
6.3 KiB
JSON
160 lines
6.3 KiB
JSON
{
|
|
"_comment": "사이트(매체) 고유값. 병원 사실은 factSheet.json, 사람은 authors.json, 이 파일은 매체 이름·로고·홈 화면 구성·페이지별 큐레이션만 담는다. 비어 있어도(null·[]) 빌드는 되고 '확인 대기'로 표시된다.",
|
|
"siteName": "뷰 서포터즈",
|
|
"siteNameEn": "VIEW SUPPORTERS",
|
|
"eyebrow": "View Supporters · Sample",
|
|
"tagline": "뷰성형외과를 알아보는 사람들의 질문에 먼저 답하는 서포터즈 매체 (샘플)",
|
|
"heroTitle": "궁금한 것부터 답합니다.",
|
|
"editorId": "ansm",
|
|
"logo": {
|
|
"src": "/img/view-logo.png",
|
|
"alt": "뷰성형외과 View Plastic Surgery",
|
|
"width": 184,
|
|
"height": 66
|
|
},
|
|
"logoFoot": {
|
|
"src": "/img/view-logo-foot.png",
|
|
"alt": "뷰성형외과",
|
|
"width": 138,
|
|
"height": 49
|
|
},
|
|
"heroImage": {
|
|
"src": "/img/clinic/hero-collage.jpg",
|
|
"alt": "뷰성형외과 빌딩 외관과 내부 공간 콜라주. 상담센터, 수술실, 수술센터 복도",
|
|
"width": 1000,
|
|
"height": 850
|
|
},
|
|
"buildingImage": {
|
|
"src": "/img/clinic/building-clean.jpg",
|
|
"alt": "뷰성형외과 빌딩 외관. 유리 외벽에 VIEW 로고가 있는 고층 건물",
|
|
"caption": "뷰성형외과 빌딩 외관. 출처: 공식 홈페이지 병원둘러보기"
|
|
},
|
|
"imageCredit": "사진 출처: 뷰성형외과 공식 홈페이지 병원둘러보기",
|
|
"homeVideos": [
|
|
{
|
|
"id": "Nbemu6mL_uY",
|
|
"title": "가장 VIEW다운 가치 : 안전과 신뢰의 약속",
|
|
"published": "2026-05-19"
|
|
},
|
|
{
|
|
"id": "_OZRSJIDWgs",
|
|
"title": "스포르자가 또 방문한 이유, 모티바 프리저베 교육 현장",
|
|
"published": "2026-08-20"
|
|
},
|
|
{
|
|
"id": "xohC5C6aY70",
|
|
"title": "모티바 프리저베는 수술 직후 만세가 가능하다?",
|
|
"published": "2026-08-31"
|
|
}
|
|
],
|
|
"insideSummary": "19층 자체 사옥. 상담 4~5층, 검진 지하 1층, 수술 11~14층, 입원 8·10층.",
|
|
"insideGallery": [
|
|
{
|
|
"src": "/img/clinic/consult-1.jpg",
|
|
"alt": "뷰성형외과 4~5층 상담센터 대기 공간. 검은 소파와 밝은 조명",
|
|
"caption": "4~5F 상담센터"
|
|
},
|
|
{
|
|
"src": "/img/clinic/exam-1.jpg",
|
|
"alt": "뷰성형외과 지하 1층 검진센터 입구. Examination Center 간판",
|
|
"caption": "B1F 검진센터"
|
|
},
|
|
{
|
|
"src": "/img/clinic/surgery-2.jpg",
|
|
"alt": "뷰성형외과 수술실 내부. 수술대와 무영등",
|
|
"caption": "11~14F 수술센터"
|
|
},
|
|
{
|
|
"src": "/img/clinic/ward-1.jpg",
|
|
"alt": "뷰성형외과 입원실. 창가의 1인 침대",
|
|
"caption": "8·10F 입원센터"
|
|
},
|
|
{
|
|
"src": "/img/clinic/vip-lounge.jpg",
|
|
"alt": "뷰성형외과 VIP 라운지. 어두운 톤의 라운지 공간",
|
|
"caption": "VIP 라운지"
|
|
},
|
|
{
|
|
"src": "/img/clinic/dental-15f.jpg",
|
|
"alt": "뷰성형외과 15층 치과 진료실. 파란 치과 의자가 줄지어 있음",
|
|
"caption": "15F 치과 (양악·윤곽 협진)"
|
|
}
|
|
],
|
|
"clinicGallery": [
|
|
{
|
|
"src": "/img/clinic/consult-2.jpg",
|
|
"alt": "상담센터 상담실 내부",
|
|
"caption": "4~5F 상담센터"
|
|
},
|
|
{
|
|
"src": "/img/clinic/exam-2.jpg",
|
|
"alt": "검진센터 접수 데스크",
|
|
"caption": "B1F 검진센터"
|
|
},
|
|
{
|
|
"src": "/img/clinic/surgery-3.jpg",
|
|
"alt": "수술실 앞 복도의 수술 실명제 안내 화면",
|
|
"caption": "11~14F 수술센터 복도"
|
|
},
|
|
{
|
|
"src": "/img/clinic/ward-2.jpg",
|
|
"alt": "입원실 침대",
|
|
"caption": "8·10F 입원센터"
|
|
},
|
|
{
|
|
"src": "/img/clinic/vip-1.jpg",
|
|
"alt": "VIP 병동 복도",
|
|
"caption": "7F VIP 입원실"
|
|
},
|
|
{
|
|
"src": "/img/clinic/consult-3.jpg",
|
|
"alt": "상담 대기 라운지",
|
|
"caption": "상담 대기 라운지"
|
|
}
|
|
],
|
|
"clinicDoctors": [
|
|
"dr-choi",
|
|
"dr-chung",
|
|
"dr-son",
|
|
"dr-oh"
|
|
],
|
|
"visitMaps": [
|
|
{
|
|
"src": "/img/clinic/map-1.jpg",
|
|
"alt": "양재·강남역 방향에서 뷰성형외과로 오는 약도. 9호선 신논현역과 병원 위치 표시",
|
|
"caption": "양재·강남역 방향 약도. 출처: 홈페이지 오시는길"
|
|
},
|
|
{
|
|
"src": "/img/clinic/parking-map.jpg",
|
|
"alt": "뷰성형외과 주차장 진입 경로 약도. 약국 골목으로 진입해 사거리에서 우회전",
|
|
"caption": "주차장 진입 경로. 출처: 홈페이지 오시는길"
|
|
}
|
|
],
|
|
"arrivalGuide": "먼저 1층 안내데스크로 가면 안내해 줍니다. 상담센터는 4~5층, VIP 상담실은 3층, 수술 전 검진은 지하 1층 검진센터입니다.",
|
|
"visitReads": [
|
|
{
|
|
"href": "/posts/visit-guide",
|
|
"title": "방문 가이드: 위치·진료시간·주차·예약",
|
|
"note": "대중교통·공항에서 오는 법까지 자세히"
|
|
},
|
|
{
|
|
"href": "/posts/safety-system",
|
|
"title": "뷰성형외과 안전 시스템은 무엇으로 이루어져 있나요?",
|
|
"note": "상담에서 확인할 네 가지"
|
|
},
|
|
{
|
|
"href": "/posts/revision-checklist",
|
|
"title": "가슴 재수술을 고민 중이라면 무엇을 먼저 확인해야 하나요?",
|
|
"note": "재수술 상담 준비 체크리스트"
|
|
}
|
|
],
|
|
"newsNote": "뷰성형외과 홈페이지 언론보도 게시판과 네이버 뉴스에서 모은 기사입니다(2026-09-04 기준). 병원이 알리거나 원장이 설명한 기사만 모았고, 그 밖의 보도는 포함하지 않았습니다. 기사 본문은 원문에서 읽을 수 있으며, 원문이 사라진 기사는 병원 게시판 사본으로 연결됩니다.",
|
|
"newsOutletsExample": "메디컬투데이, 전민일보, 아주경제, 머니S, 뉴시스 등",
|
|
"ga4MeasurementId": "",
|
|
"_comment_ga4": "GA4 측정 ID(G-XXXX). 비우면 태그를 넣지 않는다. 병원 소유 속성이 정해지면 값만 채운다. 키 이벤트 이름은 data/ai_channels.json 의 conversion_events 와 같다. 플래너 이벤트(plan_procedure_select · plan_result · plan_save)는 components/Planner.astro 가 보낸다.",
|
|
"heroImageAltEn": "View Plastic Surgery building exterior and interior collage: consultation center, operating room, surgery center corridor",
|
|
"indexNowKey": "",
|
|
"googleSiteVerification": "",
|
|
"naverSiteVerification": ""
|
|
}
|