import { shouldServeAds } from '@/lib/ads'
import { AdSenseScript } from './AdSenseScript'

/**
 * Google AdSense: etiqueta de verificación de la cuenta + script de anuncios
 * («Auto ads»: se pega en todas las páginas y Google decide dónde colocarlos).
 *
 * TRES interruptores:
 *
 * 1. `ADSENSE_CLIENT_ID` en el .env. Vacío o sin poner = no se emite nada. Es el
 *    interruptor del administrador. No lleva prefijo NEXT_PUBLIC_ a propósito:
 *    esto se renderiza en el servidor (el layout ya es dinámico porque <Header/>
 *    lee la sesión), así que no hace falta exponerlo al bundle del cliente ni
 *    rebuildear para activarlo o desactivarlo.
 * 2. El filtro común de publicidad (`shouldServeAds`, ver lib/ads.ts): fuera para
 *    admins y para quien sea rango 2+ o haya pagado alguna vez.
 * 3. El consentimiento «Marketing» del visitante, pero SOLO para el script, en
 *    <AdSenseScript/> (cliente). La <meta> se queda fuera del banner a propósito:
 *    es un identificador estático de la cuenta, no carga nada ni escribe cookies,
 *    y Google la quiere presente para poder verificar el sitio aunque el visitante
 *    rechace los anuncios.
 */
export async function AdSense() {
  const client = process.env.ADSENSE_CLIENT_ID
  if (!client) return null

  if (!(await shouldServeAds())) return null

  return (
    <>
      <meta name="google-adsense-account" content={client} />
      <AdSenseScript client={client} />
    </>
  )
}
