✓ 100% GRATIS

Google Ads Scripts: Tutorial Gratis

¡Bienvenido al tutorial más completo de Google Ads Scripts en español! Este curso 100% gratuito te enseñará desde cero cómo automatizar y optimizar tus campañas de Google Ads usando JavaScript, sin necesidad de experiencia previa en programación.

Introducción al Tema

Google Ads Scripts es una plataforma poderosa que te permite automatizar tareas repetitivas en tus campañas publicitarias usando JavaScript. Con estos scripts puedes:

Esta herramienta es especialmente valiosa para quienes trabajan con arbitraje de tráfico, ya que permite escalar operaciones y optimizar campañas de manera eficiente las 24 horas del día.

¿Qué vas a aprender?

Objetivos del curso:

Requisitos Previos

Este curso está diseñado para principiantes. Solo necesitas:

Contenido del Curso

Lección 1: Primeros Pasos con Google Ads Scripts

Accediendo a Google Ads Scripts:

  1. Inicia sesión en tu cuenta de Google Ads
  2. Ve a "Herramientas y configuración" > "Automatización" > "Scripts"
  3. Haz clic en el botón "+" para crear un nuevo script

Tu primer script:

function main() {
  Logger.log("¡Hola mundo desde Google Ads Scripts!");
  
  // Obtener información básica de la cuenta
  var account = AdsApp.currentAccount();
  Logger.log("Cuenta: " + account.getName());
  Logger.log("ID de cuenta: " + account.getCustomerId());
}

Ejecutando el script:

  1. Pega el código en el editor
  2. Haz clic en "Vista previa" para probar
  3. Ve a "Logs" para ver el resultado

Lección 2: Conceptos Básicos de JavaScript para Scripts

Aunque no necesitas ser programador, entender estos conceptos básicos te ayudará:

Variables y tipos de datos:

function main() {
  // Números
  var ctr = 2.5;
  var clicks = 100;
  
  // Texto (strings)
  var campaignName = "Mi Campaña de Arbitraje";
  
  // Booleanos (verdadero/falso)
  var isActive = true;
  
  Logger.log("CTR: " + ctr + "%");
  Logger.log("Campaña: " + campaignName);
}

Condicionales (if/else):

function main() {
  var ctr = 1.5;
  
  if (ctr < 2.0) {
    Logger.log("CTR bajo, necesita optimización");
  } else {
    Logger.log("CTR aceptable");
  }
}

Lección 3: Trabajando con Campañas

Listar todas las campañas:

function main() {
  var campaignIterator = AdsApp.campaigns()
    .withCondition("Status = ENABLED")
    .get();
  
  while (campaignIterator.hasNext()) {
    var campaign = campaignIterator.next();
    Logger.log("Campaña: " + campaign.getName());
    Logger.log("Presupuesto: $" + campaign.getBudget().getAmount());
  }
}

Script para pausar campañas con bajo rendimiento:

function main() {
  var campaigns = AdsApp.campaigns()
    .withCondition("Status = ENABLED")
    .forDateRange("YESTERDAY")
    .get();
  
  while (campaigns.hasNext()) {
    var campaign = campaigns.next();
    var stats = campaign.getStatsFor("YESTERDAY");
    
    if (stats.getClicks() > 50 && stats.getCtr() < 1.0) {
      Logger.log("Pausando campaña: " + campaign.getName() + 
                 " (CTR: " + stats.getCtr().toFixed(2) + "%)");
      // campaign.pause(); // Descomenta para pausar realmente
    }
  }
}

Lección 4: Automatización de Pujas

Script para ajustar pujas automáticamente:

function main() {
  var keywords = AdsApp.keywords()
    .withCondition("Status = ENABLED")
    .withCondition("CampaignStatus = ENABLED")
    .forDateRange("LAST_7_DAYS")
    .get();
  
  while (keywords.hasNext()) {
    var keyword = keywords.next();
    var stats = keyword.getStatsFor("LAST_7_DAYS");
    var currentBid = keyword.bidding().getCpc();
    
    // Si el CTR es alto, aumentar puja en 10%
    if (stats.getCtr() > 3.0 && stats.getClicks() > 20) {
      var newBid = currentBid * 1.1;
      keyword.bidding().setCpc(newBid);
      Logger.log("Aumentando puja para: " + keyword.getText());
    }
    
    // Si el CTR es bajo, reducir puja en 15%
    if (stats.getCtr() < 1.0 && stats.getClicks() > 10) {
      var newBid = currentBid * 0.85;
      keyword.bidding().setCpc(newBid);
      Logger.log("Reduciendo puja para: " + keyword.getText());
    }
  }
}

Lección 5: Reportes Automáticos con Google Sheets

Crear un reporte diario en Google Sheets:

function main() {
  // ID de tu Google Sheet (obténlo de la URL)
  var SPREADSHEET_ID = "tu_spreadsheet_id_aqui";
  
  var spreadsheet = SpreadsheetApp.openById(SPREADSHEET_ID);
  var sheet = spreadsheet.getActiveSheet();
  
  // Limpiar datos anteriores
  sheet.clear();
  
  // Encabezados
  sheet.getRange(1, 1, 1, 5).setValues([
    ["Campaña", "Clicks", "Impresiones", "CTR", "CPC"]
  ]);
  
  var campaigns = AdsApp.campaigns()
    .withCondition("Status = ENABLED")
    .forDateRange("YESTERDAY")
    .get();
  
  var row = 2;
  while (campaigns.hasNext()) {
    var campaign = campaigns.next();
    var stats = campaign.getStatsFor("YESTERDAY");
    
    sheet.getRange(row, 1, 1, 5).setValues([[
      campaign.getName(),
      stats.getClicks(),
      stats.getImpressions(),
      (stats.getCtr() * 100).toFixed(2) + "%",
      "$" + stats.getAverageCpc().toFixed(2)
    ]]);
    
    row++;
  }
  
  Logger.log("Reporte actualizado en Google Sheets");
}

Lección 6: Sistema de Alertas por Email

Script para enviar alertas automáticas:

function main() {
  var EMAIL = "tu_email@gmail.com";
  var alertas = [];
  
  // Verificar campañas sin impresiones
  var campaigns = AdsApp.campaigns()
    .withCondition("Status = ENABLED")
    .forDateRange("TODAY")
    .get();
  
  while (campaigns.hasNext()) {
    var campaign = campaigns.next();
    var stats = campaign.getStatsFor("TODAY");
    
    if (stats.getImpressions() == 0) {
      alertas.push("⚠️ Campaña sin impresiones: " + campaign.getName());
    }
    
    // Verificar presupuesto agotado
    if (campaign.getBudget().getAmount() < 10) {
      alertas.push("💰 Presupuesto bajo: " + campaign.getName() + 
                   " ($" + campaign.getBudget().getAmount() + ")");
    }
  }
  
  // Enviar email si hay alertas
  if (alertas.length > 0) {
    var subject = "🚨 Alertas Google Ads - " + new Date().toLocaleDateString();
    var body = "Se detectaron los siguientes problemas:\n\n" + 
               alertas.join("\n");
    
    MailApp.sendEmail(EMAIL, subject, body);
    Logger.log("Email de alerta enviado");
  } else {
    Logger.log("Todo funcionando correctamente");
  }
}

Lección 7: Script Avanzado para Arbitraje de Tráfico

Optimizador automático para arbitraje:

function main() {
  var PROFIT_MARGIN = 0.20; // 20% de margen mínimo
  
  var campaigns = AdsApp.campaigns()
    .withCondition("Status = ENABLED")
    .withCondition("LabelNames CONTAINS_ANY ['Arbitraje']")
    .forDateRange("LAST_3_DAYS")
    .get();
  
  while (campaigns.hasNext()) {
    var campaign = campaigns.next();
    var stats = campaign.getStatsFor("LAST_3_DAYS");
    var cost = stats.getCost();
    var conversions = stats.getConversions();
    
    // Calcular ROI estimado
    var revenue = conversions * 5; // Asumiendo $5 por conversión
    var profit = revenue - cost;
    var roi = cost > 0 ? profit / cost : 0;
    
    Logger.log("Campaña: " + campaign.getName());
    Logger.log("ROI: " + (roi * 100).toFixed(2) + "%");
    
    if (roi < PROFIT_MARGIN && cost > 50) {
      Logger.log("⚠️ ROI bajo, pausando campaña");
      // campaign.pause(); // Descomenta para pausar
    } else if (roi > 0.5 && conversions > 10) {
      Logger.log("📈 Excelente ROI, aumentando presupuesto");
      var currentBudget = campaign.getBudget().getAmount();
      var newBudget = currentBudget * 1.2;
      // campaign.getBudget().setAmount(newBudget);
    }
  }
}

Tips y Mejores Prácticas

Consejos para usar Google Ads Scripts efectivamente:

Errores Comunes a Evitar

Errores que debes evitar:

Programación de Scripts

Para automatizar completamente tus scripts:

  1. En el editor de scripts, haz clic en "Crear programación"
  2. Elige la frecuencia (diaria, semanal, mensual)
  3. Selecciona la hora de ejecución
  4. Guarda la programación
Recomendación: Programa scripts de optimización para ejecutarse diariamente a las 2:00 AM, cuando hay menos competencia y los cambios pueden estabilizarse antes del tráfico principal del día.

Recursos Adicionales Gratuitos

Documentación oficial: Google Ads Scripts Reference - developers.google.com/google-ads/scripts
Plantillas gratuitas de scripts: Google proporciona ejemplos listos para usar en su documentación oficial
Comunidad de Google Ads Scripts: Foros oficiales donde puedes hacer preguntas y compartir scripts
Google Sheets API: Para crear reportes más avanzados - developers.google.com/sheets/api

Próximos Pasos

Una vez que domines estos conceptos básicos, puedes avanzar hacia:

¡Felicitaciones! Has completado el tutorial básico de Google Ads Scripts. Ahora tienes las herramientas para automatizar tus campañas y llevar tu arbitraje de tráfico al siguiente nivel. Recuerda siempre probar tus scripts en un entorno seguro antes de implementarlos en campañas con presupuestos altos.

La automatización es clave en el arbitraje de tráfico moderno. Con estos scripts, puedes operar las 24 horas del día, optimizando continuamente mientras te enfocas en estrategias de mayor nivel. ¡Empieza con scripts simples y ve construyendo tu arsenal de automatización gradualmente!

📚 Artículos Relacionados