Add ADO2 ad block at dashboard bottom (purple pill, white logo)

- 운영사 ADO2 광고: 메인 랜딩 하단(Footer 위)에 배치
- 솔리드 퍼플(#A65EFF) 라운드 풀 버튼 + 화이트 "ADO2.AI" 로고(도트) + ado2.o2osolution.ai 링크
- 설명 문구 언어별 단일화: KO 콘텐츠 마케팅 자동화 플랫폼 / EN Content Marketing Automation Platform
- 상하 여백 균일(leading-none), 화이트 로고 자산 public/icons/ado2-white.png

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
main
Haewon Kam 2026-06-09 16:37:10 +09:00
parent a8de6c858d
commit fedcf31bad
4 changed files with 36 additions and 0 deletions

View File

@ -1,5 +1,6 @@
import Hero from "@/components/Hero"; import Hero from "@/components/Hero";
import ScheduleBoard from "@/components/ScheduleBoard"; import ScheduleBoard from "@/components/ScheduleBoard";
import Ado2Ad from "@/components/Ado2Ad";
import Footer from "@/components/Footer"; import Footer from "@/components/Footer";
import { parseLang, dict } from "@/lib/i18n"; import { parseLang, dict } from "@/lib/i18n";
@ -29,6 +30,7 @@ export default async function Home({
</div> </div>
<ScheduleBoard lang={lang} /> <ScheduleBoard lang={lang} />
<Ado2Ad lang={lang} />
<Footer lang={lang} /> <Footer lang={lang} />
</main> </main>
); );

25
components/Ado2Ad.tsx Normal file
View File

@ -0,0 +1,25 @@
import { type Lang, dict } from "@/lib/i18n";
// 운영사(ADO2) 광고 — 메인 랜딩 하단. 솔리드 퍼플(#A65EFF) 라운드 풀(pill) + 화이트 로고.
export default function Ado2Ad({ lang = "ko" }: { lang?: Lang }) {
const t = dict(lang);
return (
<section className="mt-8">
<div className="mb-2 text-center text-[10px] font-bold uppercase tracking-[0.2em] text-white/35">
{t.adLabel}
</div>
<a
href="https://ado2.o2osolution.ai/"
target="_blank"
rel="noopener noreferrer"
className="flex flex-col items-center justify-center gap-1 rounded-full bg-[#A65EFF] px-6 py-3 text-center transition active:scale-[0.99]"
style={{ boxShadow: "0 10px 28px rgba(166,94,255,0.40)" }}
>
<img src="/icons/ado2-white.png" alt="ADO2" className="h-5 w-auto" />
<span className="text-[13px] font-bold leading-none text-white">
{t.ado2Tagline}
</span>
</a>
</section>
);
}

View File

@ -87,6 +87,9 @@ type Dict = {
footerDisc2: string; footerDisc2: string;
footerDisc3: string; footerDisc3: string;
hook: (a: string, b: string) => string; hook: (a: string, b: string) => string;
adLabel: string;
ado2Tagline: string;
ado2Sub: string;
}; };
export const DICT: Record<Lang, Dict> = { export const DICT: Record<Lang, Dict> = {
@ -142,6 +145,9 @@ export const DICT: Record<Lang, Dict> = {
footerDisc2: "스포츠 분석·엔터테인먼트 목적의 예측 게임이며 베팅·도박을 권유하지 않습니다. AI 예측은 실제 결과를 보장하지 않습니다.", footerDisc2: "스포츠 분석·엔터테인먼트 목적의 예측 게임이며 베팅·도박을 권유하지 않습니다. AI 예측은 실제 결과를 보장하지 않습니다.",
footerDisc3: "100만 원 이벤트는 무료 참여형 챌린지입니다. 지급·동점 처리 조건은 별도 약관에 따릅니다. 이메일은 결과·이벤트 알림 목적으로만 사용됩니다.", footerDisc3: "100만 원 이벤트는 무료 참여형 챌린지입니다. 지급·동점 처리 조건은 별도 약관에 따릅니다. 이메일은 결과·이벤트 알림 목적으로만 사용됩니다.",
hook: (a, b) => `${a} vs ${b}, AI의 선택은 갈렸다`, hook: (a, b) => `${a} vs ${b}, AI의 선택은 갈렸다`,
adLabel: "광고",
ado2Tagline: "콘텐츠 마케팅 자동화 플랫폼",
ado2Sub: "Content Marketing Automation Platform →",
}, },
en: { en: {
heroPill: "AI-powered World Cup 2026 match predictions", heroPill: "AI-powered World Cup 2026 match predictions",
@ -195,6 +201,9 @@ export const DICT: Record<Lang, Dict> = {
footerDisc2: "A sports-analysis & entertainment prediction game. No betting or gambling. AI predictions do not guarantee real outcomes.", footerDisc2: "A sports-analysis & entertainment prediction game. No betting or gambling. AI predictions do not guarantee real outcomes.",
footerDisc3: "The ₩1,000,000 event is a free-to-enter challenge. Payout & tie-break terms follow separate rules. Email is used only for result & event alerts.", footerDisc3: "The ₩1,000,000 event is a free-to-enter challenge. Payout & tie-break terms follow separate rules. Email is used only for result & event alerts.",
hook: (a, b) => `AI is split on ${a} vs ${b}`, hook: (a, b) => `AI is split on ${a} vs ${b}`,
adLabel: "AD",
ado2Tagline: "Content Marketing Automation Platform",
ado2Sub: "Visit ado2.o2osolution.ai →",
}, },
}; };

BIN
public/icons/ado2-white.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB