From 9d60ea8f1229e19b73f874f560876f4aae2246d7 Mon Sep 17 00:00:00 2001 From: ByungCheol Date: Sun, 28 Jun 2026 20:24:25 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=B2=AB=20=EC=B6=9C=EC=8B=9C=20?= =?UTF-8?q?=EA=B4=91=EA=B3=A0(=EC=B9=B4=EC=B9=B4=EC=98=A4=20=EC=95=A0?= =?UTF-8?q?=EB=93=9C=ED=95=8F)=20=EB=B9=84=ED=99=9C=EC=84=B1=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ADS_ENABLED=false 플래그 추가(features.js) - 광고단위 미승인 + 데이터 안전 양식 단순화(광고 식별자 수집/제3자 공유 제거) - AdBanner showAd + App.vue showAds 양쪽 게이팅 → 앱/웹 광고 모두 미노출, 레이아웃 하단 광고 여백도 함께 제거 - 애드핏 승인 후 true 로 되돌리면 무료 회원 광고 재노출 Co-Authored-By: Claude Opus 4.8 --- src/App.vue | 5 +++-- src/components/AdBanner.vue | 5 +++-- src/config/features.js | 6 ++++++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/App.vue b/src/App.vue index 10d1172..9161f73 100644 --- a/src/App.vue +++ b/src/App.vue @@ -14,6 +14,7 @@ import { reminders } from '@/native/reminders' import { useAuthStore } from '@/stores/auth' import { useUiStore } from '@/stores/ui' import { demo, exitDemo } from '@/demo' +import { ADS_ENABLED } from '@/config/features' const auth = useAuthStore() const ui = useUiStore() @@ -22,8 +23,8 @@ const router = useRouter() // 로그인 또는 둘러보기(데모) 상태면 사이드바/전체 셸 표시 const authed = computed(() => auth.isAuthenticated || demo.on) -// 광고: 유료(PREMIUM) 회원에게는 표시하지 않음 -const showAds = computed(() => !auth.isPremium) +// 광고: 광고 기능이 켜져 있고 유료(PREMIUM) 회원이 아닐 때만 표시 (레이아웃 하단 여백도 함께 제어) +const showAds = computed(() => ADS_ENABLED && !auth.isPremium) // 공개 법적 고지(개인정보처리방침·약관)는 웹 브라우저에서도 접근 허용 (앱 마켓 정책 URL) const isPublicLegal = computed(() => !!route.meta.public) diff --git a/src/components/AdBanner.vue b/src/components/AdBanner.vue index 348fa5e..bfc5dbf 100644 --- a/src/components/AdBanner.vue +++ b/src/components/AdBanner.vue @@ -1,8 +1,9 @@