'use client' import { useEffect, useRef } from 'react' interface AdSenseProps { slot: string format?: 'auto' | 'rectangle' | 'vertical' | 'horizontal' responsive?: boolean className?: string } export function AdSense({ slot, format = 'auto', responsive = true, className = '' }: AdSenseProps) { const adRef = useRef(null) const isAdLoaded = useRef(false) useEffect(() => { if (typeof window !== 'undefined' && !isAdLoaded.current) { try { // Check if adsbygoogle is available const adsbygoogle = (window as any).adsbygoogle if (adsbygoogle) { adsbygoogle.push({}) isAdLoaded.current = true } } catch (error) { console.warn('AdSense loading error:', error) } } }, []) // Demo placeholder for development if (process.env.NODE_ENV === 'development') { return (
📺 AdSense Preview ({format})
🎯
{format === 'horizontal' ? '728×90 Banner' : format === 'rectangle' ? '300×250 Square' : format === 'vertical' ? '160×600 Skyscraper' : 'Responsive Ad'}
High-Impact Placement
Slot: {slot} | Format: {format}
) } return (
) } // Banner ad component (728x90) export function BannerAd({ className = '' }: { className?: string }) { return ( ) } // Square ad component (300x250) export function SquareAd({ className = '' }: { className?: string }) { return ( ) } // Sidebar ad component (160x600) export function SidebarAd({ className = '' }: { className?: string }) { return ( ) } // Responsive ad component export function ResponsiveAd({ slot = "2468135790", className = '' }: { slot?: string className?: string }) { return ( ) }