A lo largo de estos meses hemos cubierto los Betas como Google Draft (cuando lo fue), Universal Apps. Asimismo, también hablamos sobre 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.

En este artículo, encontrarás algunas de las funciones de Reglas Automáticas y Adwords Scripts que te ahorrarán horas de reportes y trabajo de optimización.

Estrategia Digital

¿QUÉ ES ADWORDS SCRIPTS Y QUÉ SON LAS REGLAS AUTOMÁTICAS?

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 Scripts 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.

Ahora, las 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. Además, se pueden crear reglas condicionales, como detener una keyword que supera el costo por pedido promedio.  

Google Adwords scripts

CAMPAÑAS ADWORDS ¿CUÁL ES LA DIFERENCIA ENTRE ADWORDS SCRIPTS Y REGLAS AUTOMÁTICAS?

Las Reglas Automáticas se configuran 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.

Por otro lado, con Adwords Scripts podrás ejecutar reportes bastante detallados, sin embargo, 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 de 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 Scripts.

Ya que conoces la diferencia entre ambos formatos y cuándo usar cada uno pasamos a explicarte las funciones.

REGLAS AUTOMÁTICAS PARA LA OPTIMIZACIÓN

Esta es probablemente una de las mejores funciones de Google Adwords y 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.

La situación cambia cuando manejas 5 o 10 campañas, entonces requiere una mayor cantidad de tiempo para detectar anuncios poco rentables. La regla que te brindaremos a continuación te librará de la función de monitoreo de anuncios.

Primero, nos 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 después 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 desactive esta regla.

Finalmente, establecemos una frecuencia para la ejecución de esta regla y cuántos 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 automatización

NOTA: No hay la opción ‘Igual’ para las reglas de automatización.

4

REGLAS AUTOMÁTICAS PARA OPTIMIZAR PRESUPUESTOS

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

reglas automáticas para optimizar presupuesto

Si bien, no todas las campañas son rentables y preferimos hacer el ajuste del presupuesto nosotros mismos, una vez que 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, hay que indicarle a la herramienta porcentualmente cuánto debe aumentar el presupuesto diario, también está la opción de establecer un límite, es decir, hasta qué cifra puede subir nuestro presupuesto diario por campaña.

Entonces, tenemos que 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 supere 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 sólo si, el costo por pedido (Coste/conv.) no ha superado los $10.

Guía: Cómo Posicionar tu Web en Google
Guía: Cómo Posicionar tu Web en Google
5

¿CÓMO FUNCIONA ADWORDS SCRIPTS?

Ahora pasaremos a la parte de Adwords Scripts, 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 scripts como funciona

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

adwords scripts secuencia de comandos 2

La plataforma tiene varias plantillas, algunas son fáciles de completar y te pedirán cosas cómo reemplazar 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 “Mostrar Ejemplos” y seleccionar la categoría de estos. Ahí, podemos encontrar ejemplos de Informes. El código que se genera en la parte derecha, deberás copiarlo y pegarlo en el contenedor de la parte inferior.

adwords scripts vista previa

Si bien es importante saber de código para entender cómo trabaja Adwords Scripts, no es necesario un conocimiento avanzado.

Los códigos que Adwords nos proporciona vienen con instrucciones de qué partes debemos modificar y algunas de las funciones que desempeñan.

adwords scripts 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.

código
6

SCRIPTS DE ALERTA

¿Cuántas veces has recibido una llamada de tu cliente indicando que su site se ha caído y que todas las campañas deben detenerse inmediatamente?

Esto podría ser peor ¿Qué pasa si esto ocurre un fin de semana y simplemente nadie lo detecta? Aquí, la solución es un código que escaneara las URL de destino de tus campañas cada hora y notificará cuando algo ande mal: Adwords Scripts 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('{') & gt; = 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) & gt; = 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 & gt; 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. 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 Scripts es de una hora, por lo que si tu site se cae a las 4:30 recibirás una alerta a las 5, sin embargo, sigue siendo una función indispensable para cualquiera que maneja campañas de Google Adwords.

scripts reportes

ADWORDS SCRIPTS PARA REPORTES

Es aquí donde Adwords Scripts hace gala de todo su potencial, la cantidad y variedad de reportes que se pueden hacer en Google Adwords utilizando secuencia de comandos es virtualmente ilimitada.

Podrás hacer 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 Scripts 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 o detectar cuáles son los sites en toda la cuenta que generan la mayoría de las conversiones.

También, te dejaremos un segundo código que dará la lista de sites con más de 100 clics y que no han generado conversiones, y por tanto están listas para ser excluidas de sus grupos de anuncios.

adwords scripts para reporte

Aquí los códigos correspondientes:

Scrips para sites con conversiones

var TIEMPO_PROMEDIO = "LAST_7_DAYS";

var TO = ["test@attachmedia.com"];

var 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());

}

Scripts para sites sin conversiones

var TIEMPO_PROMEDIO = "LAST_30_DAYS";

var TO = ["jrodriguez@attachmedia.com"];

var 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 reemplazar el asunto del mail y el texto dentro de este, también se deberá colocar el mail al cual se enviará el reporte.

códigos correspondientes

Es importante crear un archivo Sheet en Google Drive pues es aquí donde se generan los reportes de Adwords Scripts, 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 reemplazarlo en el Adwords Scripts donde dice SREADHEET_URL = “….”.

adwords

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

cierre de semana

CONCLUSIONES

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. 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.

Esperamos que te haya gustado este artículo. No olvides suscribirte a nuestro blog para más consejos de optimización de tus campañas, Betas o experimentos.

¿ESTÁS PENSANDO EN CAMPAÑAS ADWORDS? PONTE EN CONTACTO CON NOSOTROS. EN ATTACH TE AYUDAMOS CON TU PROYECTO!

TEMAS: Publicidad Digital, Google Adwords

Guía: Cómo Posicionar tu Web en Google
Guía: Cómo Posicionar tu Web en Google