AdWords Script: Plantilla para hacer scripts ejecutables a nivel MCC y Cuenta

¿Una plantilla a partir de la cual programar tus propios AdWords Scripts que valgan tanto para cuentas como para MCCs? De eso trata esta entrada.

Cuando hice los scripts antiSPAM de Display, desarrollé distintas versiones para ejecutarlos a nivel Cuenta o a nivel MCC. Hacerlo de esta manera, multiplica el número de scripts, dificultando así su mantenimiento ante posibles actualizaciones de la API de AdWords.

Para evitar este problema, en lo que a ejecutar el script a nivel cuenta o MCC se refiere, he desarrollado un sencillo script a modo de plantilla para unificar estas 2 versiones y, en un solo script, poder ejecutarlo en ambos ámbitos (cuenta o MCC) según nos interese. Además, sirve como punto de partida y una estructura inicial, para aquellos a los que nos puede paralizar el “folio en blanco” 😉

Esa plantilla, ¡es lo que os traigo en esta entrada!

Plantilla para hacer #AdWordsScripts que se ejecuten tanto a nivel Cuenta como MCC #ppc Click To Tweet

Características de la plantilla

Antes de analizar en profundidad el script, y para entender el contexto, este es un resumen de las funcionalidades y características de esta plantilla:

  • Podemos elegir si ejecutar el script a nivel Cuenta o a nivel MCC con un sencillísimo cambio.
  • En el caso de ejecutar el script a nivel MCC, podemos filtrar cuentas concretas del MCC mediante una etiqueta.
  • Proporciona una estructura clara, con comentarios explicativos dentro de la propia plantilla, para comenzar a programar tu script.
  • Dispone de una zona específica para el tratamiento de errores de ejecución.
  • ACTUALIZACIÓN V1.1: A nivel MCC, podemos elegir si ejecutar las cuentas de manera paralela o secuencial.

Opciones de configuración del script

Estas son las opciones de configuración:

  • mccLevelScript es la variable global con la que elegimos si ejecutar el script a nivel Cuenta o a nivel MCC.  Por defecto, viene configurada para ejecución a nivel MCC. Si queremos modificarlo, únicamente tenemos que cambiar el valor true por false. Es decir:
    • mccLevelScript = true; significa ejecución a nivel MCC
    • mccLevelScript = false; significa ejecución a nivel Cuenta
  • mccLabelText nos sirve para elegir si filtrar la ejecución del script a cuentas concretas de un MCC. Por defecto, el filtrado está deshabilitado. Para ello, funciona de la siguiente manera:
    • mccLabelText = ‘no label’; significa que NO filtrará ninguna cuenta. Es decir, ejecutará el script para todas las cuentas del MCC. Esta es la opción por defecto.
    • mccLabelText = ‘otro texto cualquiera’; significa que filtrará la ejecución del script a aquellas cuentas que tengan aplicada, en el MCC, la etiqueta con el texto introducido.
  • V1.1: parallelExecution nos sirve para elegir si ejecutar las cuentas a nivel MCC de forma paralela o estrictamente secuencial. Por defecto, la ejecución en paralela está deshabilitada. Funciona de la siguiente manera:
    • parallelExecution = false; significa que NO ejecutará las cuentas en paralelo y lo hará de manera estrictamente secuencial. Esta es la opción por defecto y, a priori, recomendada.
    • parallelExecution = true; significa que ejecutará, hasta 50 cuentas, de manera paralela. Si el nº de cuentas fuese superior a 50, el resto las ejecutará de manera secuencial, una vez haya terminado la ejecución en paralelo de las primeras 50.

Estructura del código del script

La estructura del script diferencia entre las siguientes zonas:

  • Definición y configuración de variables globales. Aquí se crean las variables que serán utilizadas a lo largo de todo el script (¡mucho cuidado!). Es precisamente en esta zona donde se encuentran las mencionadas en el apartado anterior: mccLevelScript, mccLabelText y parallelExecution.

También os recomiendo, en especial si el script será utilizado por otras personas, que agrupéis todas las opciones configurables del script en esta zona. De esta manera, el usuario no tendrá que estar ‘buceando’ por todo el script para cambiar los valores que le interesen.

  • Código a ejecutar ANTES de seleccionar ninguna cuenta. Es lo primero que se ejecutará de todo el script.
  • Código a ejecutar para CADA CUENTA (si es a nivel Cuenta, sólo será una vez). En esta zona se programará el grueso del script.
  • Código a ejecutar DESPUÉS de procesar todas las cuentas. Es lo último que se ejecutará de todo el script.
  • Zona de tratamiento en caso de error de ejecución. Si, durante la ejecución del script, se produjera algún error, dejará de ejecutar el código de la zona donde se encontrara y pasará a esta zona.

Variables globales

Aunque esta es una opción de la que no hay que abusar (es el origen de buena parte de los errores de programación), en ocasiones hay información de la que queremos disponer en todo momento, sin que dependa de otros factores. Sin ir más lejos, tenemos como ejemplo las variables mccLevelScript y mccLabelText.

Además, recomiendo agrupar en primer lugar todas aquellas variables que estén pensadas para que el usuario las configure según sus intereses.

Para ver un ejemplo claro, podéis consultar este otro script, hecho a partir de esta misma plantilla, que pausa keywords en función de una serie de KPIs configurables por el usuario.

Código inicial (antes de seleccionar cuenta)

Dentro de la función main, que es donde empieza siempre la ejecución de un script, lo primero que nos encontramos (y que se ejecuta) es esta zona:

Aquí es donde programaríamos aquellas acciones que queremos realizar antes de “entrar” a la/s cuenta/s de AdWords. Normalmente, son acciones de inicialización (por ejemplo, igualar un contador a cero que luego vaya contando lo que queramos).

Función principal accountCodeExecution

Inmediatamente después del código inicial, el script comprueba si se ha configurado para ejecutarse a nivel Cuenta o a nivel MCC y, en el 2º caso, obtiene las cuentas de AdWords correspondientes, teniendo en cuenta si se ha aplicado el filtro por etiqueta o no. También comprueba, en el 2º caso, si las cuentas se ejecutarán en paralelo o de manera secuencial.

Hecha esta comprobación, hace una llamada a la función accountCodeExecution, que es la que contendrá el código a ejecutar para cada cuenta de AdWords seleccionada.

 

Como podéis ver en el propio código, si vais a implementar funciones auxliares, recomiendo hacerlo justo debajo de esta función. Así tendréis más a mano todas las funciones.

Decir que esta función la he configurado para que devuelva algún valor porque, a pesar de no realizar ninguna acción posterior con el valor devuelto (aunque esto es decisión vuestra y podríais tratar el resultado), es más sencillo interrumpir la ejecución de la función sin tener que llegar al final de la misma. Un claro ejemplo de esto lo tenéis en la función run() del script antes mencionado.

Código final (después de ejecutar todas las cuentas)

Una vez se ha ejecutado con éxito la función accountCodeExecution para todas las cuentas, pasamos a la última parte del script.

Salvo que se produzca algún error durante la ejecución, esta es la última parte que se ejecutará del script.

En este caso, una acción típica suele ser las de notificar los resultados, ya sea por email, actualizando un SpreadSheet, etc.

Zona de tratamiento de errores

En último término, tenemos la zona de tratamiento de errores.

Este será el código que se ejecute en caso de producirse algún error.

Por otra parte, a lo largo de todo el código, podéis encontrar instrucciones de Logger.getLog comentadas (es decir, que no se ejecutan). Por ejemplo, en esta misma zona tenéis Logger.getLog();

Estas instrucciones muestran información en la consola de AdWords. Únicamente muestran información, no realizan ninguna modificación en las cuentas:

Resultados Logger.log en la consola de AdWords

Es extremadamente útil cuando se quiere depurar el script y localizar errores. Para habilitarlas, únicamente debéis quitarle los símbolos de comentario “//” que aparecen a su izquierda en cada caso.

 

¡Hasta aquí la entrada de hoy! Podéis copiar y descargar la plantilla completa en este enlace a GitHub.

Espero que os sea de utilidad y os sirva para programar muchos scripts muy chulos 🙂

Plantilla para hacer #AdWords #Scripts que se ejecuten tanto a nivel Cuenta como MCC #ppc Click To Tweet

 

Especializado en el diseño y ejecución de Estrategias Digitales enfocadas en conseguir la conversión y aumentar el ROI, ofrezco servicios de consultoría, creación y gestión avanzada de campañas PPC en Buscadores (Google AdWords, Bing Ads, etc.) y Redes Sociales (Facebook Ads, Twitter Ads, Instagram Ads, LinkedIn Ads, etc.), Analítica Web Avanzada y Diseño Web con criterios de CRO (Conversion Rate Optimization).

Más entradas

Ver todas
1 Comment
  1. Reply

    Gran aporte. Los voy a probar en 3, 2, 1

    Gracias por compartirlo.

Deja tu comentario