Automatiza tus campañas y ahorra horas de trabajo

A lo largo de estos meses hemos cubierto, oportunamente, de pies a cabeza los Betas como Google Draft (cuando lo fue), Universal Apps y también algunos Tips para la optimización de Adwords, pero la verdad es que no todos disponemos del tiempo suficiente para implementar experimentos o reestructurar campañas. Nos come el día a día y cuando nos damos cuenta hemos pasado respondiendo correos, en calls, en reuniones, etc. Aquí encontrarás algunas las funciones de Reglas Automáticas y Adwords Scripts que te ahorrarán horas de reportes y trabajo de optimización.

  • ¿Qué es Adwords Scripts?

    También conocido como Secuencia de Comandos, son funciones que automatizan y/o programan cambios, reportes y optimización en la plataforma de Google Adwords, a diferencia de las reglas automáticas Adwords Scritps puede generar reportes y su configuración es a través de código debido a la enorme cantidad de funciones que puede llegar a realizar.

  • ¿Qué es Reglas Automáticas? 

    Son funciones del panel de Adwords que nos permiten automatizar tareas simples como detener o reactivas campañas, anuncios o palabras clave, aumentar el Costo por clic máximo o presupuesto, etc. También se pueden crear reglas condicionales, como detener una keyword que supera el Costo por pedido promedio.

Ahora que hemos definido ambas funciones probablemente hay surgido la pregunta ¿Cuál es la diferencia entre Adwords Scripts y Reglas Automáticas? Reglas Automáticas se configurar de una manera fácil y rápida, no se requiere conocimiento de Códigos para implementar pero en parte eso es lo que limita sus funciones. Adwords Scritp por otro lado, ejecutar reportes bastante detallados pero al trabajar con código se requiere de un mayor esfuerzo de implementación y verificación de las funciones.

Consejo: Si deseas que las campañas se detengan al inicio un feriado usa Reglas Automáticas. Si vas a crear una campaña que deseas que se detengan en los días de lluvia, usa Adwords Scritps.

Ahora que ya explicamos la diferencia entre ambos formatos y cuando usar cada uno pasamos a las funciones:

 

1. Reglas Automáticas para la Optimización

 
Esta es probablemente una de las mejores funciones de Adwords que nadie está usando pese a ser la de mayor utilidad para la optimización de las campañas. Aquellos que manejan de dos a tres campañas de Display o Search a razón de 5 grupos de anuncios por campaña no deberían tener problemas en la optimización de anuncios, es algo que se puede monitorear en cuestión de minutos, pero se manejas 5 o 10 campañas entonces requiere una mayor cantidad de tiempo para detectar anuncios poco rentables. La regla que te brindaremos te librará de la función de monitoreo de anuncios.

Primero, debemos situamos en la pestaña de anuncios y filtramos las campañas que deseamos optimizar.

anuncios-y-filtros

Una vez filtradas hacemos clics en Automatizar y, de entre todas las opciones, marcamos “Detener los anuncios cuando…”

automatizar

Luego establecemos un rendimiento condicional, si el costo por pedido promedio de las campañas de Search o Display es de $ 30 entonces podemos pedirle a la herramienta que cuando un anuncio supere la inversión de $ 30 y sus conversiones sean menores a 1*  de  se ejecutará esta regla. Finalmente establecemos una frecuencia para la ejecución de esta regla y cuantos días de data debe tomar en cuenta. Recomendamos ejecutar esta regla cada semana utilizando la data de los últimos 14 o 30 días pues periodos más cortos no suelen tener suficiente data para optimizar.

reglas-de-auomatizacion

*NOTA: No hay la opción Igual para las reglas de automatización

 

2. Reglas Automáticas para Optimizar Presupuesto

 
Muchas veces al monitorear las campañas encontramos un mensaje como este:

reglas-automaticas-para-optimizar-presupuesto

Si bien, no todas las campañas son rentables y preferimos hacer el ajuste del presupuesto nosotros mismos, una vez hemos identificado nuestras mejores campañas, estas se vuelven candidatas para la ejecución de esta regla.

Cuando la campaña más rentable muestra el mensaje “Limitada por el presupuesto” es evidente que se están perdiendo conversiones pero no podemos monitorear las campañas a cada momento ¿Qué sucede si esto ocurre durante un fin de semana? es aquí donde podemos automatizar el manejo de presupuesto.

limitada-por-el-presupuesto

Primero debemos seleccionar la(s) campaña(s) que deseamos automatizar el manejo de inversión, de usarse en varias recomendamos que sean campañas con presupuestos similares. Luego debemos indicarle a la herramienta porcentualmente cuanto debe aumentar el presupuesto diario, también está la opción de establecer una límite, es decir hasta que cifra puede subir nuestro presupuesto diario por campaña. Entonces debemos indicar cuánto deben haber invertido la campaña hasta el momento de hacer el barrido de datos con la herramienta. Si quisiéramos asegurar que el costo por pedido no superase el promedio de las campañas, por ejemplo $ 10, basta con añadir una variable más a la regla y finalmente pedimos a la herramienta que emplee data del Día anterior.

dia-anterior

En el ejemplo de la parte superior vemos que la regla se ejecutará diariamente a las 2 de la tarde, si la campaña hubiese consumido más de $ 50 el día anterior (donde $ 50 es el presupuesto por día) entonces el presupuesto diario se incrementaría un 25%, es decir que subiría a $ 62,5, si y solo si el Costo por pedido (Coste/conv.) no ha superado los $ 10.

 

Adwords Scritps

 
Ahora pasaremos a la parte de Adwords Scritps, como esta función requiere una configuración previa a su uso haremos una breve explicación.

¿Cómo funciona?

Primero, para crear una secuencia de comandos debemos hacer clic en “+ Secuencia de comandos”

adwords-scritps-como-funciona

Luego nos llevará al siguiente panel donde es importante que autoricemos la secuencia de comandos, sin este paso nuestros Scripts no pueden ejecutarse. Una vez se autorice la barra amarilla en la parte superior desaparecerá.

adwords-scritps-secuencia-de-comandos

adwords-scritps-secuencia-de-comandos-2

La plataforma tiene varias plantillas, algunos son fáciles de completar y pedirán cosas como remplazar el texto de una línea por el nombre de una campaña, asignar una fecha de inicio/fin, colocar un objetivo, etc.

NOTA: Para encontrar las plantillas basta con hacer clic en Mostar Ejemplos y seleccionar la categoría de estos. Por ejemplo podemos encontrar ejemplos de Informes. El código se genera en la parte derecha, deberás copiarlo y pegarlo en el contendor de la parte inferior.

adwords-scritps-vista-previa

Si bien es importante saber de código para entender cómo trabaja Adwords Scritps, no es necesario un conocimiento avanzado de código, los que Adwords nos proporciona vienen con instrucciones de que partes debemos modificar y algunas de las funciones que desempeñan.

adwords-scritps-crea-un-informe

Ahora que conoces lo que son los Adwords Scripts procederemos a compartirte algunas de las funciones que utilizamos en todas nuestras cuentas para automatizar reportes y el trabajo de optimización.

 

3. Script de alerta

 
¿Cuántas veces has recibido una llamada de tu cliente indicando que si site se ha caído y que todas las campañas deben detenerse inmediatamente?  Podría ser peor ¿Qué pasa si esto ocurre un fin de semana y simplemente nadie lo detecta? Aquí un código que escaneará las URL de destino de tus campañas cada hora y nos notificará cuando algo ande mal: Adwords Script para detectar URL Rota.

function main() {

var BAD_CODES = [404,500];

var TO = [‘jrodriguez@attachmedia.com’];

var SUBJECT = ‘Broken Url Report Movistar – ‘ + _getDateString();

var HTTP_OPTIONS = {

muteHttpExceptions:true

};

 

var iters = [

AdWordsApp.ads()

.withCondition(“Status = ‘ENABLED'”)

.withCondition(“AdGroupStatus = ‘ENABLED'”)

.withCondition(“CampaignStatus = ‘ENABLED'”)

.get(),

AdWordsApp.keywords()

.withCondition(“Status = ‘ENABLED'”)

.withCondition(“DestinationUrl != ””)

.withCondition(“AdGroupStatus = ‘ENABLED'”)

.withCondition(“CampaignStatus = ‘ENABLED'”)

.get()

];

 

var already_checked = {};

var bad_entities = [];

for(var x in iters) {

var iter = iters[x];

while(iter.hasNext()) {

var entity = iter.next();

if(entity.getDestinationUrl() == null) { continue; }

var url = entity.getDestinationUrl();

if(url.indexOf(‘{‘) >= 0) {

url = url.replace(/\{[0-9a-zA-Z]+\}/g,”);

}

if(already_checked[url]) { continue; }

var response_code;

try {

Logger.log(“Testing url: “+url);

response_code = UrlFetchApp.fetch(url, HTTP_OPTIONS).getResponseCode();

} catch(e) {

bad_entities.push({e : entity, code : -1});

}

if(BAD_CODES.indexOf(response_code) >= 0) {

bad_entities.push({e : entity, code : response_code});

}

already_checked[url] = true;

}

}

var column_names = [‘Type’,’CampaignName’,’AdGroupName’,’Id’,’Headline/KeywordText’,’ResponseCode’,’DestUrl’];

var attachment = column_names.join(“,”)+”\n”;

for(var i in bad_entities) {

attachment += _formatResults(bad_entities[i],”,”);

}

if(bad_entities.length > 0) {

var options = { attachments: [Utilities.newBlob(attachment, ‘text/csv’, ‘bad_urls_’+_getDateString()+’.csv’)] };

var email_body = “There are ” + bad_entities.length + ” urls that are broken. See attachment for details.”;

 

for(var i in TO) {

MailApp.sendEmail(TO[i], SUBJECT, email_body, options);

}

}

}

 

function _formatResults(entity,SEP) {

var e = entity.e;

if(typeof(e[‘getHeadline’]) != “undefined”) {

return [“Ad”,

e.getCampaign().getName(),

e.getAdGroup().getName(),

e.getId(),

e.getHeadline(),

entity.code,

e.getDestinationUrl()

].join(SEP)+”\n”;

} else {

return [“Keyword”,

e.getCampaign().getName(),

e.getAdGroup().getName(),

e.getId(),

e.getText(),

entity.code,

e.getDestinationUrl()

].join(SEP)+”\n”;

}

}

 

//Helper function to format todays date

function _getDateString() {

return Utilities.formatDate((new Date()), AdWordsApp.currentAccount().getTimeZone(), “yyyy-MM-dd”);

}

 
Lo único que necesitas para usarlo es reemplazar tu email en donde corresponde, luego para hacer el código efectivo debes programarlo para que se ejecute una vez cada hora.

script-de-alerta

NOTA: El tiempo mínimo de ejecución para un Adwords Script es de una hora por lo que si su site se cae a las 4:30 recibirás una alerta a las 5, pero sigue siendo una función indispensable para cualquiera que maneja campañas de Google Adwords.

 

4. Adwords Script para reportes

 
Es aquí donde Adwords Scripts hace gala de todo su potencial, la cantidad y variedad de reportes que se pueden hacer en Adwords utilizando secuencia de comandos es virtualmente ilimitada, reportes que van de lo más básico; como un reporte de clics, impresiones y costo de las campañas, hasta algo más elaborado como un reporte por grupos de anuncios de Display a nivel de sites que hayan generado una conversión en el periodo de los últimos 30 días y cuyo CTR sea mayor a 0.25%. Adwords Script tiene la capacidad de automatizar prácticamente cualquier reporte que presentes a tu cliente.

Aquí te dejamos un reporte por campaña, grupo de anuncios y detalle de sites que por lo menos hayan generado una conversión en los últimos 30 días. Con ello se pueden crear grupos de anuncios solo pero esos sites o detectar cuáles son los sites en toda la cuenta que generan la mayoría de conversiones. También dejaremos un segundo código que dará la lista de sites con más de 100 clics que no han generado conversiones y por tanto están listas para ser excluidas de sus grupos de anuncios.

adwords-script-para-reportes

Aquí los códigos correspondientes:

  • Scritp para Sites con conversiones

var TIEMPO_PROMEDIO = “LAST_7_DAYS”;

var TO = [“test@attachmedia.com”];

SPREADSHEET_URL = “https://docs.google.com/spreadsheets/d/test/edit?usp=sharing”;

function main() {

for(var m in TO) {

MailApp.sendEmail(TO[m], “Reporte por Site – Google Adwords”,”Hola,\nEl Reporte de conversiones por site de Google Adwords está listo, lo puedes ver en el siguiente link\n”+SPREADSHEET_URL+”\n\nSaludos”);

}

var spreadsheet = SpreadsheetApp.create(“UTEC Sites con conversión”);

var report = AdWordsApp.report(

“SELECT CampaignName, AdGroupName, Url, Cost, Conversions, CostPerConversion   ” +

” FROM URL_PERFORMANCE_REPORT ” +

” WHERE ” +

” Conversions > 0 ” +

” DURING LAST_7_DAYS” );

report.exportToSheet(spreadsheet.getActiveSheet());

Logger.log(“Report avilable at ” + spreadsheet.getUrl());

}

  • Script para Sites sin conversiones

var TIEMPO_PROMEDIO = “LAST_30_DAYS”;

var TO = [“jrodriguez@attachmedia.com”];

SPREADSHEET_URL = ” https://docs.google.com/spreadsheets/d/test/edit?usp=sharing “;

function main() {

for(var m in TO) {

MailApp.sendEmail(TO[m], “Reporte Site Negativos – Google Adwords”,”Hola,\nEl Reporte de conversiones por site de Google Adwords está listo, lo puedes ver en el siguiente link\n”+SPREADSHEET_URL+”\n\nSaludos”);

}

var spreadsheet = SpreadsheetApp.create(“Movistar Sites sin conversión”);

var report = AdWordsApp.report(

“SELECT CampaignName, AdGroupName, Url, Cost, Conversions, Clicks ” +

” FROM URL_PERFORMANCE_REPORT ” +

” WHERE ” +

” Conversions < 1 AND Cost > 20 AND Clicks > 100″ +

” DURING LAST_30_DAYS”);

report.exportToSheet(spreadsheet.getActiveSheet());

Logger.log(“Report avilable at ” + spreadsheet.getUrl());

}

Para ambos reportes los cambios que se deben hacer son mínimos, los más fáciles son remplazar el asunto del mail y el texto dentro de este, también se deberá colocar el mail al cual se enviará el reporte.

codigos-correspondientes

Es importante crear un archivo Sheet en Google Drive pues es aquí donde se generan los reportes de Adwords Script, la forma correcta de utilizarlos es la siguiente:

Una vez creado el archivo (en blanco) y asignarle un nombre, vamos a la opción de Share o Compartir que está en la parte superior derecha. Luego deberemos copiar el Link de Compartido para remplazarlo en el Adwords Script donde dice SREADHEET_URL = “….”.

adwords

Finalmente como en el reporte anterior debemos establecer la frecuencia con la que se ejecuta que en este caso recomendamos cada semana.

cierre-de-semana

 

 Cierre…

 

Los Adwords Scripts y las Reglas Automáticas podrán ayudarte en el día a día para facilitar la labor de optimización y dedicarnos a la mejora de estrategias. Recuerda que estas son solo herramientas y su efectividad dependerá siempre de en qué manos se encuentren.

Espero les haya gustado el artículo, Google acaba de habilitar un Beta de Smart Display y Search con Datos Demográficos, ya los estamos probando para escribir nuestro próximo artículo. No olvides suscribirte a nuestro blog para más consejos de optimización de tus campañas, Betas o experimentos.