Hoy vamos a aprender cómo podemos añadir Google Adsense en React.
Lo primero que tenemos que hacer es crear una cuenta en Google Adsense y obtener nuestro código de página.
Ahora tenemos que añadir el código dentro de nuestro head de esta forma:
<head> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-XXXXXXXXXXXXX" crossOrigin="anonymous"> </script> </head>
Donde en ca-pub-XXXXXXXXXXXXX debemos indicar nuestro id de Google Adsense.
Y ahora creamos nuestro componente GoogleAds.tsx
import React, { useEffect } from 'react'; declare global { interface Window { adsbygoogle: any; } } export enum DataAdLayout { IN_ARTICLE = 'in-article', IN_FEED = 'in-feed' } export enum AdSenseFormat { AUTO = 'auto', RECTANGLE = 'rectangle', HORIZONTAL = 'horizontal', VERTICAL = 'vertical', LEADERBOARD = 'leaderboard', SKYSCRAPER = 'skyscraper', LARGE_RECTANGLE = 'large_rectangle', RESPONSIVE = 'responsive', FLUID = 'fluid', LINK_UNIT = 'link_unit', AUTO_RELAXED = 'auto_relaxed', } interface AdSenseProps { client: string; // ID de cliente de AdSense slot: string; // ID de slot de AdSense dataAdLayout?: DataAdLayout; format: AdSenseFormat; // Formato de anuncio de AdSense dataFullWidthResponsive: boolean; // Formato de anuncio de AdSense } const GoogleAds: React.FC<AdSenseProps> = ({ client, slot, format, dataFullWidthResponsive, dataAdLayout }) => { useEffect(() => { // Cargar el script de AdSense solo una vez const script = document.createElement('script'); script.src = `https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js`; script.async = true; document.body.appendChild(script); return () => { // Eliminar el script cuando el componente se desmonte document.body.removeChild(script); }; }, []); useEffect(() => { // Mostrar el anuncio de AdSense (window.adsbygoogle = window.adsbygoogle || []).push({}); }, []); return ( <ins className="adsbygoogle" style={{ display: 'block' }} data-ad-client={client} data-ad-layout={dataAdLayout} data-ad-slot={slot} data-ad-format={format} data-full-width-responsive={dataFullWidthResponsive} /> ); }; export default GoogleAds;
Para llamar a un anuncio debemos poner:
<GoogleAds client="tu-id-de-cliente" slot="tu-id-de-slot" format={AdSenseFormat.AUTO} />
Recuerda que solo funcionan en el dominio, en local no te van a cargar los anuncios.
Ingeniero en Informática, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.