feat: add Google AdSense verification script + expand ad coverage

- index.html: add adsbygoogle.js script with ca-pub-3822257947737372 for verification
- BlogPostPage: add bottom-banner AdSlot below article content
- AllToolsPage: add bottom-banner AdSlot below tools grid
- ComparisonPage: add bottom-banner AdSlot below comparison content
- SeoPage: add bottom-banner AdSlot below FAQ section
- SeoCollectionPage: add bottom-banner AdSlot below FAQ section

Ad coverage: 13 tool pages + homepage + 5 content pages = ~32 ad placements
This commit is contained in:
Your Name
2026-04-05 00:08:31 +02:00
parent 009ac7f087
commit 8693834230
6 changed files with 17 additions and 0 deletions

View File

@@ -52,6 +52,8 @@
}
})();
</script>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3822257947737372"
crossorigin="anonymous"></script>
<link rel="dns-prefetch" href="https://fonts.googleapis.com" />
<link rel="dns-prefetch" href="https://fonts.gstatic.com" />
<link rel="dns-prefetch" href="https://www.googletagmanager.com" />

View File

@@ -2,6 +2,7 @@ import { useDeferredValue, useMemo, useState } from 'react';
import { Link } from 'react-router-dom';
import { useTranslation } from 'react-i18next';
import { ArrowRight, Search } from 'lucide-react';
import AdSlot from '@/components/layout/AdSlot';
import SEOHead from '@/components/seo/SEOHead';
import BreadcrumbNav from '@/components/seo/BreadcrumbNav';
import ManifestToolIcon from '@/components/shared/ManifestToolIcon';
@@ -158,6 +159,8 @@ export default function AllToolsPage() {
</p>
</div>
)}
<AdSlot slot="bottom-banner" format="horizontal" className="mt-4" />
</div>
</>
);

View File

@@ -1,6 +1,7 @@
import { Calendar, ChevronLeft, Clock } from 'lucide-react';
import { Link, useParams } from 'react-router-dom';
import { useTranslation } from 'react-i18next';
import AdSlot from '@/components/layout/AdSlot';
import SEOHead from '@/components/seo/SEOHead';
import { getToolSEO } from '@/config/seoData';
import {
@@ -184,6 +185,8 @@ export default function BlogPostPage() {
</section>
</aside>
</div>
<AdSlot slot="bottom-banner" format="horizontal" className="mt-8" />
</article>
</>
);

View File

@@ -2,6 +2,7 @@ import { useParams, Link } from 'react-router-dom';
import { useTranslation } from 'react-i18next';
import { Helmet } from 'react-helmet-async';
import { CheckCircle, XCircle, MinusCircle, ArrowRight, Swords, Trophy, ExternalLink } from 'lucide-react';
import AdSlot from '@/components/layout/AdSlot';
import { getComparisonPage, getComparisonPagesByTool, type ComparisonFeature } from '@/config/comparisonData';
import { getToolSEO } from '@/config/seoData';
import { getSiteOrigin, buildSocialImageUrl, getOgLocale, generateWebPage, generateFAQ } from '@/utils/seo';
@@ -272,6 +273,8 @@ export default function ComparisonPage() {
</div>
</section>
)}
<AdSlot slot="bottom-banner" format="horizontal" className="mb-12" />
</div>
</>
);

View File

@@ -1,6 +1,7 @@
import { Link } from 'react-router-dom';
import { useTranslation } from 'react-i18next';
import { ArrowRight, FolderKanban, Link2 } from 'lucide-react';
import AdSlot from '@/components/layout/AdSlot';
import BreadcrumbNav from '@/components/seo/BreadcrumbNav';
import SEOHead from '@/components/seo/SEOHead';
import FAQSection from '@/components/seo/FAQSection';
@@ -241,6 +242,8 @@ export default function SeoCollectionPage({ slug }: SeoCollectionPageProps) {
</section>
<FAQSection faqs={faqItems} />
<AdSlot slot="bottom-banner" format="horizontal" className="mt-8" />
</div>
</>
);

View File

@@ -1,6 +1,7 @@
import { Link } from 'react-router-dom';
import { useTranslation } from 'react-i18next';
import { ArrowRight, CheckCircle, FileText, Link2 } from 'lucide-react';
import AdSlot from '@/components/layout/AdSlot';
import BreadcrumbNav from '@/components/seo/BreadcrumbNav';
import SEOHead from '@/components/seo/SEOHead';
import FAQSection from '@/components/seo/FAQSection';
@@ -322,6 +323,8 @@ export default function SeoPage({ slug }: SeoPageProps) {
</section>
<FAQSection faqs={faqItems} />
<AdSlot slot="bottom-banner" format="horizontal" className="mt-8" />
</div>
</>
);