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
parent
a8de6c858d
commit
fedcf31bad
|
|
@ -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>
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
@ -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 →",
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 30 KiB |
Loading…
Reference in New Issue