#7 Scripts útiles y prácticos para el día a día – Google ADS Scripts

Accede a la lección en vídeo de la membresía. Cada martes, jueves y sábado aprende con una clase nueva. Puedes o suscribirte a los cursos.

SUSCRIBIRME POR 15€ / MES

Contenido de la clase

(Recordar que este contenido es la escaleta del vídeo)

1️⃣ Script: Pausar campañas los fines de semana

function main() {

  var today = new Date();

  var day = today.getDay(); // Domingo = 0, Sábado = 6

  // Comprobamos si es fin de semana (domingo o sábado)

  if (day === 0 || day === 6) {

    var campaigns = AdsApp.campaigns().withCondition(«Status = ‘ENABLED'»).get();

    // Verificamos si hay campañas activas

    if (campaigns.hasNext()) {

      while (campaigns.hasNext()) {

        var campaign = campaigns.next();

        campaign.pause(); // Pausamos la campaña

        Logger.log(«Campaña pausada: » + campaign.getName()); // Registramos el nombre de la campaña pausada

      }

    } else {

      Logger.log(«No hay campañas activas para pausar.»);

    }

  } else {

    Logger.log(«Hoy no es fin de semana, no se pausan campañas.»);

  }

}

🟢 ¿Qué hace este script?

👉 Funcionalidad principal:
Pausa todas las campañas activas durante los fines de semana (sábado y domingo).


📌 Desglose línea por línea:

function main() {

✅ Define la función principal main() que es donde se ejecuta el script.

 var today = new Date();

  var day = today.getDay(); // Domingo = 0, Sábado = 6

✅ Obtiene la fecha actual y el número del día de la semana:

  • Domingo = 0
  • Lunes = 1

  • Sábado = 6

 if (day === 0 || day === 6) {

✅ Comprueba si hoy es domingo (0) o sábado (6).
Si es uno de esos días, entonces sigue con la ejecución. Si es cualquier otro día, el script no hace nada.

   var campaigns = AdsApp.campaigns().withCondition(«Status = ‘ENABLED'»).get();

✅ Recupera todas las campañas que están activas (ENABLED).

   while (campaigns.hasNext()) {

      var campaign = campaigns.next();

      campaign.pause();

      Logger.log(«Campaña pausada: » + campaign.getName());

    }

✅ Por cada campaña activa:

  1. La pausa con campaign.pause().
  2. Escribe en el log el nombre de la campaña que ha pausado.

 }

}

✅ Cierra el if y la función.

Resumen:

  1. Comprobamos el día de la semana: El script sigue verificando si es domingo (0) o sábado (6). Si es uno de esos días, entra en la condición.
  2. Revisión de campañas activas:
    • Si hay campañas activas (campaigns.hasNext()), las pausamos una por una y registramos en los logs que se ha pausado la campaña.
    • Si no hay campañas activas, se muestra el mensaje: «No hay campañas activas para pausar.».
  3. Si no es fin de semana: Si no es ni sábado ni domingo, el script muestra el mensaje: «Hoy no es fin de semana, no se pausan campañas.».

2️⃣ Script: Enviar alerta si el gasto supera 100€/día

function main() {

  var campaigns = AdsApp.campaigns().get();

  // Definimos el límite de gasto

  var limiteGasto = 100;

  while (campaigns.hasNext()) {

    var campaign = campaigns.next();

    var stats = campaign.getStatsFor(«TODAY»);

    var cost = stats.getCost();

    // Si el gasto supera el límite, enviamos una alerta

    if (cost > limiteGasto) {

      MailApp.sendEmail(«tucorreo@tudominio.com», 

                        «¡Alerta de gasto!», 

                        «La campaña » + campaign.getName() + » ha gastado » + cost + «€ hoy.»);

    } 

    // Si el gasto no supera el límite, enviamos un informe

    else {

      MailApp.sendEmail(«tucorreo@tudominio.com», 

                        «Informe de gasto», 

                        «La campaña » + campaign.getName() + » ha gastado » + cost + «€ hoy, que está por debajo del límite.»);

    }

  }

}

Explicación:

  1. Definir el límite de gasto: En el script he añadido la variable limiteGasto que define el límite de 100€.
  2. Condición de gasto:
    • Si el gasto (cost) es superior al límite de 100€, se envía un correo con el asunto ¡Alerta de gasto! indicando que la campaña ha gastado más de lo permitido.
    • Si el gasto es inferior o igual al límite de 100€, se envía un correo con el asunto Informe de gasto indicando que el gasto está por debajo del límite.

¿Qué verás en los correos?

  1. Si el gasto es superior a 100€:

Asunto: ¡Alerta de gasto!

Cuerpo: La campaña [Nombre de la campaña] ha gastado [Cantidad]€ hoy.

  1. Si el gasto es inferior o igual a 100€:

Asunto: Informe de gasto

Cuerpo: La campaña [Nombre de la campaña] ha gastado [Cantidad]€ hoy, que está por debajo del límite.

Objetivo de la clase

Tener a mano scripts listos para automatizar las tareas más comunes en e-commerce.

📌 Ejercicio:

Al último script podrías hacer que no tengamos que añadir el correo dos veces, declarando una sola vez el correo?

💡 Idea:

Puedes añadir var para declarar el correo destino y remplazar el «tucorreo@tudominio.com» por “correoDestino” 

¿A ver cómo te queda?

📌 Contenidos:

function main() {

  var correoDestino = «tucorreo@tudominio.com»; // Correo declarado una sola vez

  var limiteGasto = 100;  // Definimos el límite de gasto

  var campaigns = AdsApp.campaigns().get();

  while (campaigns.hasNext()) {

    var campaign = campaigns.next();

    var stats = campaign.getStatsFor(«TODAY»);

    var cost = stats.getCost();

    // Si el gasto supera el límite, enviamos una alerta

    if (cost > limiteGasto) {

      MailApp.sendEmail(correoDestino, 

                        «¡Alerta de gasto!», 

                        «La campaña » + campaign.getName() + » ha gastado » + cost + «€ hoy.»);

    } 

    // Si el gasto no supera el límite, enviamos un informe

    else {

      MailApp.sendEmail(correoDestino, 

                        «Informe de gasto», 

                        «La campaña » + campaign.getName() + » ha gastado » + cost + «€ hoy, que está por debajo del límite.»);

    }

  }

}

Explicación:

Luego, esa variable correoDestino se utiliza en todas las llamadas a MailApp.sendEmail().

Correo declarado una sola vez: He creado la variable correoDestino al principio del script para que solo tengas que escribir el correo una vez.

¿Dudas? Te leemos

Si necesitas mas ayuda escríbenos en el apartado de soporte. Y te ayudaremos encantados :)

Siguientes cursos

INICIAR SESIÓN