Documentación para el equipo de Paid Media
Última actualización: 20 de marzo 2026
Un script JavaScript que se instala en la web del cliente y detecta si el visitante es un bot o tráfico fraudulento. Los bots hacen clic en anuncios de Google Ads sin intención real de compra, desperdiciando presupuesto.
| Señal | ¿Qué mide? | Bot típico |
|---|---|---|
| WebDriver | Si el navegador está automatizado (Selenium, Puppeteer) | Automático |
| Canvas / WebGL | Fingerprint del navegador — bots usan headless sin GPU real | Sin GPU |
| Movimiento ratón | Humanos mueven el ratón irregularmente, bots no | Sin movimiento |
| Interacción táctil | Scroll, clics, tiempo en página | 0 interacciones |
| Resolución / Idioma | Dimensiones atípicas, idioma que no corresponde al país | 800×600 |
| GeoIP | El servidor detecta el país de la IP | VPN / Datacenter |
| UTMs | Captura gclid, utm_source, utm_campaign, etc. |
Contexto de campaña |
Cada visita recibe un score de 0 a 100:
| Score | Clasificación | Acción |
|---|---|---|
| 0 – 39 | Humano legítimo | No se hace nada |
| 40 – 69 | Sospechoso | Se registra para análisis |
| 70 – 100 | Bot / tráfico fraudulento | Se registra + alerta en dashboard |
El script se instala en la web del cliente con una sola línea antes del cierre de </body>:
El data-site-id se obtiene al crear el site en el dashboard.
Un sistema que analiza los search terms (términos de búsqueda reales) de Google Ads y detecta automáticamente cuáles deberían ser keywords negativas para no desperdiciar presupuesto en clics irrelevantes.
El sistema envía los términos a la IA (OpenAI) junto con el perfil del cliente (marca, productos, audiencia). La IA clasifica cada término en una de tres categorías:
| Veredicto IA | Significado | Ejemplo |
|---|---|---|
| 🚫 NEGATIVE | Irrelevante para el cliente, debería bloquearse | "venta de coches usados" para un concesionario de nuevos |
| ✅ KEEP | Relevante, hay que mantenerlo activo | "comprar skoda octavia nuevo" |
| ⚠️ REVIEW | La IA no está segura, necesita revisión humana | "skoda opiniones" (puede ser intención de compra o solo curiosidad) |
Cada veredicto viene con un porcentaje de confianza (0–100%). A mayor confianza, más segura está la IA.
La tabla muestra todos los términos clasificados. Puedes:
| Acción | Botón | ¿Qué hace? |
|---|---|---|
| Negativizar | 🚫 Negativizar | Confirma que este término debe ser keyword negativa → se incluirá en la exportación para Google Ads |
| Mantener | ✅ Mantener | Este término es relevante, no lo toques → NO se incluirá como negativa |
| Auto-negativizar | 🚫 Auto-negativizar IA ≥80% | Negativiza automáticamente todos los que la IA marcó como NEGATIVE con confianza ≥80% |
| Tecla | Acción |
|---|---|
| A | Negativizar los seleccionados |
| R | Mantener los seleccionados |
[keyword] (concordancia exacta)[termino de busqueda].
Esto bloquea solo ese término exacto, sin afectar a variaciones.
No. El script se carga de forma asíncrona, pesa menos de 5KB y se ejecuta después del page load. No bloquea el renderizado ni afecta a Core Web Vitals.
No, actualmente solo detecta y registra. No bloquea tráfico. El objetivo es dar visibilidad al equipo de paid para tomar decisiones (p.ej. excluir IPs en Google Ads).
En tiempo real. Cada visita se registra al instante. El dashboard se refresca automáticamente cada 60 segundos.
Sí. El sistema detecta duplicados por search_term + campaign + ad_group
y no crea entradas repetidas.
Sí. Puedes seleccionar el término y cambiarlo a "Mantener" en cualquier momento, siempre que no lo hayas subido ya a Google Ads.
Fíjate en el porcentaje de confianza: términos con >80% de confianza suelen acertar. Si ves que se equivoca en un patrón concreto, podemos ajustar el perfil del cliente (productos, términos protegidos, etc).
En el perfil del cliente puedes configurar términos protegidos — la IA nunca sugerirá negativizarlos. Ejemplo: si el cliente vende "Skoda", puedes proteger "skoda" para que nunca lo marque como negativo.
No, actualmente no. El flujo es manual: exportas el CSV y lo importas tú en Google Ads. Esto es intencional para que el equipo de paid tenga control total antes de aplicar cambios.