From f26155565c6efeffbcb931746ef5fbdd83b1abbd Mon Sep 17 00:00:00 2001 From: Haewon Kam Date: Mon, 14 Sep 2026 09:02:07 +0900 Subject: [PATCH] =?UTF-8?q?fix(supporters):=20=ED=81=B4=EB=A6=AD=20?= =?UTF-8?q?=EC=A7=91=EA=B3=84=EC=97=90=20=ED=98=B8=ED=85=94=C2=B7=ED=95=AD?= =?UTF-8?q?=EA=B3=B5=20=EC=9D=B4=EB=B2=A4=ED=8A=B8=EC=99=80=20place=5Fid?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 방금 가져온 Planner.astro 가 호텔·항공 링크에 data-ga="hotel"·"flight" 를 붙이는데 Base.astro 의 리스너가 그 두 값을 다루지 않아 클릭이 집계되지 않았다. 메인 체크아웃의 미커밋 Base.astro 에는 이 처리가 있었고, 그쪽을 버리기 전에 옮겼다. - click_hotel · click_flight 를 리스너에 추가 - data-ga-id 를 place_id 로 함께 보낸다 (어느 장소를 눌렀는지) - 플래너 이벤트와 수술일 미전송 원칙을 주석에 적었다 검증: 뷰 34페이지, 게이트 41/41, check.mjs 오류 0건, tsc 0 에러, 내보내기 0. Co-Authored-By: Claude Opus 5 (1M context) --- supporters/src/layouts/Base.astro | 6 ++++-- templates/supporters-astro/src/layouts/Base.astro | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/supporters/src/layouts/Base.astro b/supporters/src/layouts/Base.astro index 8691472..cef5ffb 100644 --- a/supporters/src/layouts/Base.astro +++ b/supporters/src/layouts/Base.astro @@ -25,7 +25,9 @@ const other = lang === 'ko' ? 'en' : 'ko'; const switchTo = switchHref(Astro.url.pathname, other); const homeHref = lang === 'en' ? '/en' : '/'; const isHome = ['/', '', '/index.html', '/index', '/en', '/en/index.html', '/en/index'].includes(Astro.url.pathname.replace(/\/$/, '') || '/'); -// GA4: site.json 의 ga4MeasurementId(G-XXXX) 가 있을 때만 태그를 넣는다. 키 이벤트는 data/ai_channels.json conversion_events 와 같은 이름(click_tel · click_reservation · click_clinic_site · click_map). +// GA4: site.json 의 ga4MeasurementId(G-XXXX) 가 있을 때만 태그를 넣는다. 키 이벤트는 data/ai_channels.json 의 conversion_events 와 같은 이름 +// (click_tel · click_reservation · click_clinic_site · click_map). 플래너가 붙이는 click_hotel · click_flight 도 같은 리스너가 받는다. +// 플래너 전용 이벤트(plan_procedure_select · plan_result · plan_save)는 components/Planner.astro 가 보낸다. 수술일 원본은 보내지 않는다(haewon 결정 2026-09-12). const GA4: string = /^G-[A-Z0-9]{6,}$/.test(String((S as Record).ga4MeasurementId ?? '')) ? String((S as Record).ga4MeasurementId) : ''; // 의료광고 고지는 규정 대상이라 임의로 번역하지 않는다(의료법 56조·추천보증 심사지침). // 병원이 영문 문구를 확정해 site.json 의 sponsorNoticeEn / factSheet 의 sideEffectNoticeEn 에 넣기 전까지는 @@ -61,7 +63,7 @@ const ld = jsonLd ? JSON.stringify({ '@context': 'https://schema.org', ...(Array {ld && } {GA4 && } {GA4 &&