Mantenga sus scripts de AdWords f√°ciles de mantener con estos tres consejos

Si ha estado utilizando las secuencias de comandos de AdWords durante un período de tiempo considerable, su cuenta puede parecer una estantería desordenada. Hay guiones inacabados por todas partes. Algunos guiones fueron agregados por el tipo que dejó la empresa hace unos meses, otros por su pasante que tenía curiosidad y comenzó a jugar antes de irse para el verano. […]

estante-desordenado-libros-desorden-ss-1920

Si ha estado utilizando las secuencias de comandos de AdWords durante un período de tiempo considerable, su cuenta puede parecer una estantería desordenada.

Hay guiones inacabados por todas partes. Algunos guiones fueron agregados por el tipo que dejó la empresa hace unos meses, otros por su pasante que tenía curiosidad y comenzó a jugar antes de irse para el verano.

Hay más scripts sin nombre que con nombre. Puede que empieces a pensar que es una alegoría de tu vida. Tal vez debería hablar con su terapeuta la próxima vez.

Ese es siempre el problema con cualquier sistema que crece org√°nicamente con el tiempo. Si no tienes cuidado, terminar√°s con algo imposible de mantener. Ma√Īana, llegas al trabajo y se rompe un gui√≥n en una de tus m√°s de 300 cuentas. No tienes idea de c√≥mo encontrarlo. Iniciar y cerrar sesi√≥n en cuentas puede consumir horas de su tiempo en una semana.

Pero puede detener (o al menos ralentizar) el proceso con un poco de vigilancia y planificación. Hoy, analizaré tres técnicas que puede utilizar para ayudar a reducir el mantenimiento a largo plazo de los scripts en sus cuentas.

1. Re√ļna sus scripts existentes en su MCC m√°s alto

Lo primero que debe hacer es hacer un inventario de todos los scripts que actualmente tiene ejecutándose en sus cuentas. Algunos estarán extremadamente personalizados para una cuenta específica y otros serán genéricos. Esta bien; recogerlos todos de todos modos.

Si estaba desarrollando scripts antes de la llegada de los scripts de MCC, probablemente tenga el mismo script copiado en varias cuentas. Por supuesto, eso significa que también tiene el mismo error copiado en varias cuentas. Llevar scripts como este al nivel de MCC significa que hay una sola pieza de código que se debe observar al depurar un problema.

Esto también promueve la disciplina de escribir código genérico y reutilizable que se puede aplicar a muchas cuentas. Puede tomar un poco más de tiempo pensar y escribir el guión, pero a la larga, valdrá la pena cuando comience a acumular cientos de cuentas.

Si resulta que tiene muchos m√°s scripts especializados que aparentemente solo se pueden ejecutar en cuentas espec√≠ficas, es posible que desee mirar de cerca y comprender si alguno de ellos se puede hacer m√°s gen√©rico utilizando par√°metros de configuraci√≥n o realizando peque√Īos cambios en el c√≥digo.

A continuación, se muestra un código genérico que puede usar a nivel de MCC para comenzar a ejecutar sus scripts en varias cuentas mediante etiquetas.

var SCRIPT_LABEL = 'GenericScript';
var MAX_ACCOUNTS = 50;
var RUN_HOURLY = false;

function main() {
  var accountsToRunOn = [];
  var hour = Utilities.formatDate(new Date(), 
                                  AdWordsApp.currentAccount().getTimeZone(), "H");
  var labelName = (RUN_HOURLY) ? [SCRIPT_LABEL,hour].join('-') : SCRIPT_LABEL;
  try {
    var accountIterator = MccApp.accounts()
        .withCondition("LabelNames CONTAINS '"+labelName+"'")
        .get();
    while (accountIterator.hasNext()) {
      var account = accountIterator.next();
      accountsToRunOn.push(account.getCustomerId()); 
    }
  } catch (e) {
    if(e.message && e.message.indexOf("does not exist")>=0) {
      //ignore the error if the label does not exist
      Logger.log(e);
    } else {
      throw e;
    }
  }
  if(accountsToRunOn.length > 0) {
    if(accountsToRunOn.length > MAX_ACCOUNTS) {
      throw "There are "+accountsToRunOn.length+" accounts in this batch."
    }
    MccApp.accounts().withIds(accountsToRunOn).executeInParallel("GenericScriptFunction"); 
  }
}

function GenericScriptFunction() {
  return true; 
}

Este c√≥digo se ejecutar√° en todas sus cuentas y buscar√° las etiquetadas con el nombre utilizado en la variable SCRIPT_LABEL. Cuando programe este script para que se ejecute diariamente, procesar√° todas las cuentas con esa etiqueta hasta MAX_ACCOUNTS, que es el n√ļmero m√°ximo de cuentas en las que puede ejecutar la funci√≥n executeInParallel ().

Puede programar este código para que se ejecute una vez al día si tiene menos de MAX_ACCOUNTS cuentas en las que desea ejecutar un solo script. Para cuentas realmente grandes, puede programar la secuencia de comandos para que se ejecute cada hora y establecer el valor de RUN_HOURLY en verdadero.

Ahora el script buscar√° la etiqueta denominada SCRIPT_LABEL-HOUR, por lo que cuando este script se ejecute a las 6 pm, buscar√° todas las cuentas con la etiqueta ‚ÄúGenericScript-18‚ÄĚ. Agrupe sus cuentas en lotes de MAX_ACCOUNTS de modo que el primer conjunto tenga la etiqueta ¬ęGenericScript-1¬Ľ, luego el siguiente ¬ęGenericScript-2¬Ľ, y as√≠ sucesivamente. Con este m√©todo, puede ejecutar cualquier secuencia de comandos en hasta 1200 cuentas en su MCC.

Debe reemplazar GenericScriptFunction () con su c√≥digo de secuencia de comandos gen√©rico espec√≠fico que recopil√≥ anteriormente. Aseg√ļrese de cambiar el nombre de la funci√≥n main () a algo √ļnico, ya que solo puede haber una funci√≥n principal por script. Luego agregue esa funci√≥n de nombre a la llamada executeInParallel tambi√©n.

Debe repetir este proceso para cada script genérico que necesite ejecutar en varias cuentas. Cuando haya terminado, tendrá un montón de scripts en su MCC que están programados para ejecutarse una vez al día o cada hora.

El siguiente paso sería aplicar los nombres de las etiquetas a las cuentas en las que desea que se ejecute el script.

2. Cree un MCC de prueba lejos de su MCC principal

Después de hablar en SMX East hace unas semanas, me preguntaron cómo pruebo mis scripts. Creo que la mejor manera de mantener sus cuentas de producción a salvo de errores de secuencia de comandos es abrir una nueva cuenta de MCC y crear cuentas de prueba debajo de ella.

Cree una cuenta de prueba de MCC y llénela con cuentas de prueba.

Dado que la mayoría de mis cosas son bastante experimentales, la mayoría de mis cuentas son cuentas de prueba. Este conjunto de cuentas de prueba y el MCC es el lugar donde experimentará y probará nuevos scripts.

Deberá llenar estas cuentas con palabras clave, anuncios y ofertas predeterminadas (probablemente usando scripts), pero pueden ser cualquier cosa ya que estas cuentas nunca estarán activas. De hecho, probablemente ni siquiera desee agregar ninguna información de facturación solo para asegurarse de que nunca vean la luz del día.

Ahora todos sus scripts meteorol√≥gicos sin nombre y a medio terminar tienen un lugar para vivir que no abarrotar√° su MCC principal. Si su pasante quiere experimentar, puede jugar todo lo que quiera aqu√≠. Adem√°s, si est√° trabajando con una agencia para crear nuevos scripts, puede darles acceso a esta cuenta sin perder el sue√Īo.

3. Cree un proceso de revisión de código

En el desarrollo de software, las revisiones de código son una parte esencial para llevar el código a producción. La idea es similar a que otra persona revise su escrito. Dado que no están familiarizados con la escritura y el tema, serán objetivos y encontrarán problemas o errores de código que puede haber pasado por alto.

Le recomiendo que antes de mover cualquier código de sus cuentas de prueba a su MCC principal, busque a alguien en su empresa con quien sentarse y analizar cómo funciona su código y cómo se ve el código. Preferiblemente, sería un ingeniero con conocimientos de JavaScript, pero encontrar a alguien que esté familiarizado con AdWords y comprenda los conceptos es un buen comienzo.

Siéntelos, guíelos a través de su lógica y proceso de pensamiento para el script, y ejecute el script con ellos en sus cuentas de prueba. Incluso puede encontrar algunos errores usted mismo simplemente guiando a otra persona a través de su código.

Conclusión

Los guiones han avanzado mucho en los √ļltimos a√Īos. Han madurado hasta convertirse en algo que creo que la mayor√≠a de la gente deber√≠a usar en sus cuentas.

Dar un paso atrás del día a día y observar los procesos generales y la estrategia de creación e implementación de estos scripts puede ser una forma valiosa de evitar que su cuenta se convierta en una pesadilla de mantenimiento.

Recuerde que es posible que no siempre esté presente para revisar las cosas. Organizar y documentar un proceso para su locura de scripting le da al próximo gerente de cuenta una cosa menos de qué hablar con su terapeuta.


Las opiniones expresadas en este artículo pertenecen al autor invitado y no necesariamente a El Blog informatico. Los autores del personal se enumeran aquí.


Deja un comentario