What Are Google Ads Scripts?
¿Qué son los scripts de Google Ads?
Google Ads Scripts are JavaScript code snippets that run directly inside your Google Ads account. They can read your campaign data, make changes, send emails, and write to Google Sheets, all automatically, on a schedule, without any server or programming infrastructure.
Los scripts de Google Ads son fragmentos de código JavaScript que se ejecutan directamente dentro de tu cuenta de Google Ads. Pueden leer los datos de tu campaña, realizar cambios, enviar correos y escribir en Google Sheets, todo automáticamente, según un horario, sin ningún servidor ni infraestructura de programación.
They are completely free. You write them in the Google Ads interface, authorize them once, and they run on Google's own infrastructure. No API keys, no hosting, no dependencies.
Son completamente gratuitos. Los escribes en la interfaz de Google Ads, los autorizas una vez, y se ejecutan en la propia infraestructura de Google. Sin claves de API, sin hosting, sin dependencias.
Who scripts are for
You don't need to be a programmer. If you can follow a recipe, you can use scripts. This guide gives you three complete, working scripts, you only need to read and understand them, then customize the variables at the top.
No necesitas ser programador. Si puedes seguir una receta, puedes usar scripts. Esta guía te da tres scripts completos y funcionales, solo necesitas leerlos y entenderlos, luego personalizar las variables al principio.
What Scripts Can Do (And Can't Do)
Qué pueden hacer los scripts (y qué no)
Scripts CAN:
Los scripts PUEDEN:
- Adjust keyword bids automatically based on rules or data
- Ajustar pujas de palabras clave automáticamente basándose en reglas o datos
- Pause or enable keywords, ads, and ad groups
- Pausar o habilitar palabras clave, anuncios y grupos de anuncios
- Send email alerts when something needs attention
- Enviar alertas por correo cuando algo requiere atención
- Pull performance data into Google Sheets for dashboards or analysis
- Extraer datos de rendimiento a Google Sheets para dashboards o análisis
- Check for issues like low Quality Score, low impression share, or overspending
- Comprobar problemas como bajo Quality Score, baja cuota de impresiones o gasto excesivo
Scripts CANNOT:
Los scripts NO PUEDEN:
- Create full campaigns from scratch easily (complex, not recommended)
- Crear campañas completas desde cero fácilmente (complejo, no recomendado)
- Replace dedicated automation platforms (they have API rate limits)
- Reemplazar plataformas de automatización dedicadas (tienen límites de velocidad de API)
- Access data from outside Google's ecosystem without custom integrations
- Acceder a datos fuera del ecosistema de Google sin integraciones personalizadas
Setting Up Your First Script
Configurar tu primer script
- In Google Ads, click the wrench icon (Tools & Settings) in the top navigation.
- En Google Ads, haz clic en el icono de llave inglesa (Herramientas y configuración) en la navegación superior.
- Under "Bulk Actions," click "Scripts."
- En "Acciones masivas," haz clic en "Scripts."
- Click the blue "+" button to create a new script.
- Haz clic en el botón azul "+" para crear un nuevo script.
- Give it a descriptive name (e.g., "Budget Alert - All Campaigns").
- Dale un nombre descriptivo (p.ej., "Alerta de presupuesto - Todas las campañas").
- Paste your script code into the editor. Then click "Authorize" and grant access when prompted.
- Pega el código de tu script en el editor. Luego haz clic en "Autorizar" y concede acceso cuando se te solicite.
- Always click "Preview" first, this runs the script in read-only mode and shows you exactly what it would do, without making any changes.
- Haz siempre clic en "Vista previa" primero, esto ejecuta el script en modo de solo lectura y te muestra exactamente lo que haría, sin realizar ningún cambio.
- Once satisfied with the preview, click "Run" or set a schedule.
- Una vez satisfecho con la vista previa, haz clic en "Ejecutar" o establece un horario.
Script 1: Budget Utilization Alert
Script 1: Alerta de utilización del presupuesto
This script emails you if any campaign is spending more than 90% of its daily budget by 3pm, giving you time to act before the day ends.
Este script te envía un correo si alguna campaña está gastando más del 90% de su presupuesto diario a las 3pm, dándote tiempo para actuar antes de que termine el día.
Budget Alert Script (simplified)
Script de alerta de presupuesto (simplificado)
var ALERT_EMAIL = 'you@example.com';
var THRESHOLD = 0.90;
var ALERT_HOUR = 15;
function main() {
var now = new Date();
if (now.getHours() < ALERT_HOUR) return;
var campaigns = AdsApp.campaigns()
.withCondition('Status = ENABLED')
.get();
var alerts = [];
while (campaigns.hasNext()) {
var camp = campaigns.next();
var budget = camp.getBudget().getAmount();
var spent = camp.getStatsFor('TODAY').getCost();
if (spent / budget >= THRESHOLD) {
alerts.push(camp.getName() +
': spent ' + spent.toFixed(2) +
' of ' + budget.toFixed(2));
}
}
if (alerts.length > 0) {
MailApp.sendEmail(ALERT_EMAIL,
'Budget Alert: Campaigns near limit',
alerts.join('\n'));
}
}
Schedule this script to run hourly. It will only send emails when the conditions are met (hour is 3pm or later AND a campaign exceeds 90% spend).
Programa este script para que se ejecute cada hora. Solo enviará correos cuando se cumplan las condiciones (la hora es las 3pm o más tarde Y una campaña supera el 90% del gasto).
Script 2: Low Quality Score Alert
Script 2: Alerta de Quality Score bajo
This script finds all keywords with Quality Score 4 or below AND cost greater than €50 in the last 30 days, then sends you a Google Sheets report.
Este script encuentra todas las palabras clave con Quality Score 4 o inferior Y coste superior a 50€ en los últimos 30 días, y luego te envía un informe en Google Sheets.
Low QS Alert Script (simplified)
Script de alerta de QS bajo (simplificado)
var SHEET_URL = 'YOUR_GOOGLE_SHEET_URL';
var QS_THRESHOLD = 4;
var COST_THRESHOLD = 50;
function main() {
var sheet = SpreadsheetApp
.openByUrl(SHEET_URL).getActiveSheet();
sheet.clearContents();
sheet.appendRow(['Campaign','Ad Group','Keyword',
'QS','Cost (30d)']);
var keywords = AdsApp.keywords()
.withCondition('QualityScore <= ' + QS_THRESHOLD)
.withCondition('Cost >= ' + COST_THRESHOLD)
.forDateRange('LAST_30_DAYS')
.get();
while (keywords.hasNext()) {
var kw = keywords.next();
sheet.appendRow([
kw.getCampaign().getName(),
kw.getAdGroup().getName(),
kw.getText(),
kw.getQualityScore(),
kw.getStatsFor('LAST_30_DAYS').getCost()
]);
}
}
Script 3: Automatic Bid Adjustment by Day of Week
Script 3: Ajuste automático de puja por día de la semana
This script reads a Google Sheet where you define bid adjustment multipliers for each day of the week, then applies them to your campaigns automatically. This is useful when you know that weekends or specific days convert at different rates.
Este script lee una Google Sheet donde defines multiplicadores de ajuste de puja para cada día de la semana, luego los aplica a tus campañas automáticamente. Es útil cuando sabes que los fines de semana o días específicos convierten a tasas diferentes.
The structure: your Google Sheet has two columns, Day (Monday through Sunday) and Multiplier (e.g., 1.2 for +20%, 0.8 for -20%, 1.0 for no change). The script reads these values every day and applies the correct multiplier.
La estructura: tu Google Sheet tiene dos columnas, Día (de lunes a domingo) y Multiplicador (p.ej., 1,2 para +20%, 0,8 para -20%, 1,0 sin cambio). El script lee estos valores cada día y aplica el multiplicador correcto.
Why use a Sheet for this?
By reading from a Google Sheet instead of hardcoding values in the script, non-developers can update the bid adjustments without touching code. The marketing team updates the Sheet; the script reads it automatically.
Al leer de una Google Sheet en lugar de codificar valores directamente en el script, personas sin conocimientos técnicos pueden actualizar los ajustes de puja sin tocar el código. El equipo de marketing actualiza la Sheet; el script la lee automáticamente.
Scheduling Scripts
Programar scripts
After saving a script, click "Frequency" to set a schedule. Available options:
Después de guardar un script, haz clic en "Frecuencia" para establecer un horario. Opciones disponibles:
- Hourly: Best for monitoring scripts (budget alerts, anomaly detection). Runs once per hour at a time you specify.
- Cada hora: Mejor para scripts de monitoreo (alertas de presupuesto, detección de anomalías). Se ejecuta una vez por hora a la hora que especifiques.
- Daily: Best for reporting scripts and QS monitoring. Set it to run early morning so you have data ready to start your day.
- Diariamente: Mejor para scripts de informes y monitoreo de QS. Configúralo para que se ejecute a primera hora de la mañana para tener datos listos al empezar el día.
- Weekly: Best for audit scripts and large-scale reporting. Run these on Monday mornings to fuel your weekly optimization review.
- Semanalmente: Mejor para scripts de auditoría e informes a gran escala. Ejecútalos los lunes por la mañana para alimentar tu revisión de optimización semanal.
Always preview before scheduling
Never schedule a script without previewing it first. The Preview mode shows you exactly what the script would do (what emails it would send, what bids it would change) without executing any changes.
Nunca programes un script sin previsualizarlo primero. El modo Vista previa te muestra exactamente lo que haría el script (qué correos enviaría, qué pujas cambiaría) sin ejecutar ningún cambio.
Resources for More Scripts
Recursos para más scripts
- Google Ads Scripts documentation: developers.google.com/google-ads/scripts, the official reference for all available APIs and methods
- Documentación de Google Ads Scripts: developers.google.com/google-ads/scripts, la referencia oficial de todas las APIs y métodos disponibles
- Free Script Library by Russell Savage: freeadwordsscripts.com, hundreds of pre-built scripts for common tasks
- Biblioteca de scripts gratuita de Russell Savage: freeadwordsscripts.com, cientos de scripts prediseñados para tareas comunes
- What AdPredictor does that scripts can't: Scripts run on schedules and work with data already in your account. AdPredictor adds predictive AI analysis, cross-account pattern recognition, and real-time anomaly detection that scripts alone can't provide.
- Lo que AdPredictor hace y los scripts no pueden: Los scripts se ejecutan según horarios y trabajan con datos ya en tu cuenta. AdPredictor añade análisis de IA predictivo, reconocimiento de patrones entre cuentas y detección de anomalías en tiempo real que los scripts solos no pueden proporcionar.