diff --git a/src/app/(marketing)/layout.tsx b/src/app/(marketing)/layout.tsx
index 9ff72fa..df02cfd 100644
--- a/src/app/(marketing)/layout.tsx
+++ b/src/app/(marketing)/layout.tsx
@@ -1,5 +1,4 @@
import type { Metadata } from 'next';
-import Script from 'next/script';
import '@/styles/globals.css';
import { Providers } from '@/components/Providers';
import MarketingLayout from './MarketingLayout';
@@ -63,12 +62,6 @@ export default function MarketingGroupLayout({
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(websiteSchema()) }}
/>
-
{children}
diff --git a/src/app/(marketing)/tools/layout.tsx b/src/app/(marketing)/tools/layout.tsx
index 2547744..8141639 100644
--- a/src/app/(marketing)/tools/layout.tsx
+++ b/src/app/(marketing)/tools/layout.tsx
@@ -1,7 +1,6 @@
'use client';
import React from 'react';
-import Script from 'next/script';
import AdBanner from '@/components/ads/AdBanner';
export default function ToolsLayout({
@@ -11,8 +10,7 @@ export default function ToolsLayout({
}) {
return (
- {/* AdSense script - only loads on tool pages */}
- {/* AdSense script - now global in (marketing) layout */}
+ {/* AdSense script - managed by global AdSenseScript component */}
{children}
diff --git a/src/app/layout.tsx b/src/app/layout.tsx
index 9208086..4757f2b 100644
--- a/src/app/layout.tsx
+++ b/src/app/layout.tsx
@@ -2,6 +2,7 @@ import type { Metadata } from 'next';
import { Suspense } from 'react';
import '@/styles/globals.css';
import { Providers } from '@/components/Providers';
+import AdSenseScript from '@/components/ads/AdSenseScript';
const isIndexable = process.env.NEXT_PUBLIC_INDEXABLE === 'true';
@@ -56,6 +57,7 @@ export default function RootLayout({
+
{children}
diff --git a/src/components/ads/AdSenseScript.tsx b/src/components/ads/AdSenseScript.tsx
new file mode 100644
index 0000000..c06ccfe
--- /dev/null
+++ b/src/components/ads/AdSenseScript.tsx
@@ -0,0 +1,47 @@
+'use client';
+
+import Script from 'next/script';
+import { usePathname } from 'next/navigation';
+
+export default function AdSenseScript() {
+ const pathname = usePathname();
+
+ // Paths where ads should NOT be shown
+ const excludedPaths = [
+ '/', // English Home
+ '/de', // German Home
+ '/pricing', // Pricing Page
+ '/login', // Login
+ '/signup', // Signup
+ '/forgot-password', // Forgot Password
+ '/qr-code-erstellen', // German landing page
+ '/dashboard', // App Dashboard
+ '/settings', // App Settings
+ '/analytics', // App Analytics
+ '/qr', // QR Creation/Management
+ '/create', // Create Flow
+ ];
+
+ // Check if current path starts with any excluded path
+ // We add '/' to excluded path to match exact path or subpaths,
+ // EXCEPT for root '/' which needs special handling
+ const shouldExclude = excludedPaths.some(path => {
+ if (path === '/') {
+ return pathname === '/';
+ }
+ return pathname === path || pathname?.startsWith(`${path}/`);
+ });
+
+ if (shouldExclude) {
+ return null;
+ }
+
+ return (
+
+ );
+}