Files
SkinbaseNova/resources/js/components/ads/AdSenseUnit.jsx
T
klevze 04a60a981e Keep AdSense rendering limited to anonymous visitors.
Show guest-only ad units on public pages and skip the AdSense script entirely for signed-in users.
2026-09-20 14:49:34 +02:00

46 lines
1011 B
React

import React, { useEffect, useRef } from 'react'
export default function AdSenseUnit({
slot,
client = 'ca-pub-6457864535683080',
format = 'auto',
className = '',
enabled = true,
}) {
const pushed = useRef(false)
useEffect(() => {
if (!enabled || !slot || pushed.current) {
return undefined
}
pushed.current = true
try {
window.adsbygoogle = window.adsbygoogle || []
window.adsbygoogle.push({})
} catch {
// AdSense may be blocked or not yet loaded (consent not granted).
}
return undefined
}, [enabled, slot])
if (!enabled || !slot) {
return null
}
return (
<div className={['flex w-full justify-center', className].filter(Boolean).join(' ')}>
<ins
className="adsbygoogle w-full max-w-3xl"
style={{ display: 'block', textAlign: 'center' }}
data-ad-client={client}
data-ad-slot={slot}
data-ad-format={format}
data-full-width-responsive="true"
/>
</div>
)
}