Google AdWords ahora se llama Google Ads. Este nuevo nombre refleja toda la gama de opciones publicitarias que ofrecemos en las redes de Búsqueda y de Display, en YouTube y en muchos otros sitios y plataformas web. Más información

484 anunciantes en línea
484 anunciantes en línea
Bienvenidos a la Comunidad Oficial de Google AdWords
favorite_border

Secuencias de comandos (scripts): Parte 5 - Programar campañas para los feriados

Suele ocurrir en AdWords la necesidad de modificar campañas para días no laborables. Por ejemplo, hay negocios offline que utilizan la plataforma para promocionarse pero necesitan hacerlo solamente mientras están abiertos. También hay campañas específicas que sabemos que rendirán peor en los días no laborables, pero solemos resignarnos a modificar su oferta o pausarlas solamente hacia los fines de semana.

Sin embargo, hoy en día no existe una manera de decirle a Google: "Necesito pausar determinadas campañas los días feriados".

O no existía...¡hasta ahora!

 

Combinando el poder de las hojas de cálculo de Google Drive con el de AdWords, podemos fácilmente automatizar qué sucederá en nuestras cuentas durante los días feriados.

 

Paso 1: buscar una lista de días feriados (en Google encontraremos muy fácilmente) del país en el que decidamos anunciar

 

Paso 2: ingresar a la hoja de cálculo de ejemplo que les dejo a continuación:

https://docs.google.com/spreadsheet/ccc?key=0AhwrIOCsd5K4dE5hLWc4WlF6dnc5NzBpTWEzUGdzcVE#gid=0

Ir a "Archivo", "Crear una copia", para agregar esta hoja de ejemplo a nuestro Google Drive y poder editarla.

 

Paso 3: En la columna "A" he dejado cargadas las fechas de feriados 2013 para Argentina que quedan del año. Ahí, deberás modificar estas para las del país que necesites. Nótese que la celda "D2" se actualizará automáticamente poniendo "SI" o "NO" según si el día de hoy se encuentra en la lista de feriados. NO HAY QUE TOCAR ESTA CELDA.

 

Paso 4: Crear en AdWords la etiqueta "Pausar_en_feriados" y aplicarla a las campañas que deseemos que se pausen durante las fechas que carguemos en el archivo de Google Drive.

 

Paso 5: Ingresar a Google AdWords y crear una nueva secuencia de comandos. 

Para crear un script, debes ingresar a tu cuenta de AdWords, hacer click en "Operaciones masivas" (en la columna izquierda), ir a "Secuencias de comandos" y presionar el botón verde: Crear secuencia de comandos.

 

Ahí, deberemos copiar el código que acabamos de ingresar. En cualquier momento, haciendo click en "vista previa" podremos observar qué cambios le realizaría el script a nuestra cuenta antes de ejecutarlo por primera vez. Es fundamental SIEMPRE ver la vista previa de lo que el script hará, porque no hay manera de deshacer esos cambios una vez ejecutados.

 

Para poder usar el script, primero debemos hacer click en "Autorizar ahora" para autorizar el script a tener acceso a nuestra cuenta:

 

 

 

Paso 6: copiar el siguiente código:

 

function main() {
  var SPREADSHEET_URL="REEMPLAZAR_ESTO_POR_LA_URL_DE_TU_ARCHIVO_DE_DRIVE";
var aa= SpreadsheetApp.openByUrl(SPREADSHEET_URL);
  var sheet = aa.getActiveSheet();
// var ss =SpreadsheetApp.getActiveSpreadsheet();
// var sheet = ss.getSheets()[0];

 var range = sheet.getRange("D2");
   var Hoy_Feriado = range.getValue();
      Logger.log(Hoy_Feriado);

if (Hoy_Feriado="SI") {
var campaignsIterator =AdWordsApp.campaigns()
.withCondition("LabelNames CONTAINS_ANY ['Pausar_en_feriados']")
      .get();

  while(campaignsIterator.hasNext()){
    var campaign = campaignsIterator.next();
// esta es la acción que se realiza en las campañas. La puedes modificar por otra. En el ejemplo, se pausan. campaign.pause(); }
else {var campaignsIterator =AdWordsApp.campaigns() .withCondition("LabelNames CONTAINS_ANY ['Pausar_en_feriados']") .get(); while(campaignsIterator.hasNext()){ var campaign = campaignsIterator.next(); // esta es la acción que se realiza en las campañas cuando el día no es feriado. La puedes modificar por otra. En el ejemplo, se activan. campaign.enable(); } }}

 

Paso 7: Apretar "Guardar" en la secuencia de comandos. En el menú de "secuencias de comandos", seleccionar la opción "crear programación" y definir que este script se ejecute diariamente a las 00.

 

Espero que les sirva. ¡Saludos!

Acerca de Alan Daitch

Fundador de la consultora Digodat Analytics, con presencia local en Argentina, México y Portugal. Google Regional Trainer. Estamos certificados en toda la suite de Google Analytics 360: Optimize, Data Studio y Tag Manager. Contacto: alan@digodat.com

Comentarios
por JorgeGeotelecom Colaborador Principal
julio 2013

Fantástico Alan.

 

Excelente aportación. Muchas gracias por todo.

 

Saludos,

por MarceloFdez Usuario Destacado
julio 2013

Gracias Alan

por Colaborador Principal Alumni JoseRomeroSEM Colaborador Principal Alumni
julio 2013

Excelente Alan!! 

 

Como siempre Guiño

 

saludos!!

por AlanDaitch Colaborador Principal
julio 2013

gracias por los comentarios! Si se les ocurre algún script que necesiten materializar, me avisan Guiño

por AlanDaitch Colaborador Principal
agosto 2013

Agrego un detalle: desde hace una semana, AdWords elevó el límite de scripts activos por usuario de 25 a 250, aviso por si alguien estaba teniendo alguna dificultad con este límite. Saludos!

por Xyborg
agosto 2013

Excelente tip Alan! Emoticono muy feliz

por Adwords T
enero 2014

Hola Alan, estoy en pleno proceso de un script para hacer lo siguiente. a ver si se te ocurre cono hacerlo. El script, ya lo tengo hecho y es simplemente etiquetar una palabras o bajar el CPC, segun cumpla una condiciones. Esta parte la tengo hecha sin problemas. El problema radica en que ahora el cliente me pide que esos cambios en etiquetas y en el CPC se realice en las palabras que cumplan las condiciones que me dice, pero ademas que si la campaña a la que pertenece esa palabra esta etiquetada con una etiqueta determinada no se haga. En resumen que se ejecuten unos cambios en palabras que cunplan unos requisistos y que a su vez su campaña no tenga una etiqueta concreta que pondria el propio cliente a mano.

 

Espero haberme explicado.

 

Saludos y gracias

por AlanDaitch Colaborador Principal
enero 2014

Hola, cómo va? Por partes:

 

- Para requisitos de una keyword, se hace un if simple. Por ejemplo, keywords con CPC máximo de hasta 0.15:

 

var keywordMaxCpc = keyword.getMaxCpc;

if (keywordMaxCpc < 0.16) {

lo que quieras}

 

- Para requisitos de los labels de la campaña:

 

var keywordCampaignLabels = keyword.getCampaign().labels;

 

Ahí se crea un selector de los labels de la campaña sobre el que se pueden aplicar condiciones.

 

Saludos!

por leonardow3
enero 2014

¡Estupendo!

por keriosp
enero 2014

Está muy bien el script, en mi caso tuve que añadir un } para cerrar el primer if y la condición

ponerla con el doble = de comparaión en javascript.

Hoy_Feriado == "SI"
por Flavio G
agosto 2014

Hola. Como estas? Mi nombre es Flavio. Lo que tengo que hacer es que cuando un determinado visitante (determinada IP) entre al sitio luego la pueda agregar dinamicamente a la lista de ip excluidas. Crees que se podra hacer? Me podrias orientar? Desde ya muchas Gracias

 

Aca te explico el porque de mi problema Tengo un cliente que la competencia le puso un robot a hacer clic. Por supuesto que Google tiene un filtrado y cuenta los clics, los valida, los devuelve (todo esto en poco tiempo) y el aviso sigue saliendo (cuando el robot clickea con intervalo de segundo funciona). Si lo hace con intervalos de minutos no funciona el filtrado de Google!!! Las ips son todas de argentina y cambian permanentemente y los clics se queman!!!

por Eduardo T
mayo 2016

Hola Alan, ante todo gracias por el script. De todos modos tengo el siguiente problema:
Cuando copio el codigo en mi cuenta adwords y le doy a Vista Previa, salta el siguiente error: Syntax error. (línea 22)

Aclaro que no soy justamente un experto en desarrollo web. Me doy maña simplemente... Pero en este caso no llego a darme cuenta que puede estar mal en la linea 22

Copio a continuacion como queda el codigo despues de reemplazarlo por la URL de mi planilla:

 

function main() {
var SPREADSHEET_URL="https://docs.google.com/spreadsheets/d/1zJuC_ge6bfNh_ybsubRSzTRG7MaU9d5OIoXhjj5QlqI/edit?usp=sharing...
var aa= SpreadsheetApp.openByUrl(SPREADSHEET_URL);
var sheet = aa.getActiveSheet();
// var ss =SpreadsheetApp.getActiveSpreadsheet();
// var sheet = ss.getSheets()[0];

var range = sheet.getRange("D2");
var Hoy_Feriado = range.getValue();
Logger.log(Hoy_Feriado);

if (Hoy_Feriado="SI") {
var campaignsIterator =AdWordsApp.campaigns()
.withCondition("LabelNames CONTAINS_ANY ['Pausar_en_feriados']")
.get();

while(campaignsIterator.hasNext()){
var campaign = campaignsIterator.next();
// esta es la acción que se realiza en las campañas. La puedes modificar por otra. En el ejemplo, se pausan.
campaign.pause();
}
else {var campaignsIterator =AdWordsApp.campaigns()
.withCondition("LabelNames CONTAINS_ANY ['Pausar_en_feriados']")
.get();

while(campaignsIterator.hasNext()){
var campaign = campaignsIterator.next();
// esta es la acción que se realiza en las campañas cuando el día no es feriado. La puedes modificar por otra. En el ejemplo, se activan.
campaign.enable();
}
}}

 

Agradezco desde ya si me podes ayudar a resolverlo.

Abrazo

Eduardo