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:
@@ -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>
|
||||
</>
|
||||
);
|
||||
|
||||
@@ -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>
|
||||
</>
|
||||
);
|
||||
|
||||
@@ -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>
|
||||
</>
|
||||
);
|
||||
|
||||
@@ -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>
|
||||
</>
|
||||
);
|
||||
|
||||
@@ -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>
|
||||
</>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user