Conexión de AdWords Scripts y La API Calendario avanzada

A+ A-
eventos de calendario calendario-ss-1920

secuencias de comandos de AdWords es ahora mucho más útiles gracias a la reciente implantación de API avanzadas.

Estas API adicionales permiten que las secuencias de comandos de AdWords para acceder a otros servicios de Google como Google Analytics y Google Calendar. Cualquiera que esté familiarizado con otros comandos de Google reconocerá estos objetos ya que los mismos se encuentra allí.

Hoy nos vamos a centrar en la API de Calendario y construir una integración que le permite controlar las fechas de inicio de la campaña y a través de su calendario de Google.

Muchas veces, para reuniones o informes, ayuda a ver las cosas presentados en una vista de la semana o del mes para que los elementos superpuestos se destacan. Este script creará entradas en un calendario separado que representa la duración de sus campañas.

Lo primero que recomiendo hacer es crear un nuevo calendario en su cuenta de Google para mantener las fechas de inicio de la campaña y. De esta manera, se puede compartir fácilmente el calendario con otros miembros del equipo o de ocultarlo para reducir el desorden. I llamado a la mía “AdWords”, pero puede que el nombre lo que quiera.

Crear un nuevo calendario Google

Ahora que tiene un lugar para poner todos sus eventos, vamos a empezar a escribir algo de código. Cuando se abre una nueva ventana de secuencias de comandos, se dará cuenta de un nuevo botón al lado del botón de vista previa titulada “API avanzadas.” Aquí es donde se tendrá que habilitar el uso de la API de calendario antes de continuar.

También tendrá que habilitar la API en la Consola de Desarrolladores. Simplemente haga clic en el enlace situado en la parte inferior del cuadro de diálogo y siga las instrucciones.

Una vez que todo está habilitada, volver a la ventana de su secuencia de comandos de AdWords y completar el proceso de autorización de forma normal. Ahora tendrá acceso a una nueva clase de calendario en las secuencias de comandos. Usted tendrá que seguir este proceso de configuración inicial para cada nueva secuencia de comandos que crea.

Calendario API habilitada a través de Google Developers Console

Lo primero que vamos a necesitar es una función que nos permite encontrar el ID del calendario del buen nombre (o resumen) que ha introducido anteriormente. Esta es una adaptación de una parte del código de la muestra en el sitio Scripts desarrollador de AdWords y hace el trabajo muy bien.

 // Busque el ID de calendario dado el resumen
// Si no se encuentra un ID de calendario, se produce un error
función getCalendarId (resumen) {
  var calendarList = Calendar.CalendarList.list ();
  para (i var en calendarList.items) {
    Cal var = calendarList.items [i];
    si (cal.summary === Resumen) {
      cal.id regresar;
    }
  }
  tirar "No calendario con el resumen: ' '+ Resumen +'' encontrado.";
}

Ahora que tenemos el ID del calendario, podemos iniciar la actualización de la misma. Este script va a tomar el enfoque simple y limpiar todas las entradas del calendario cada vez que se ejecuta.

Sí, es un poco desperdicio, pero no debe importar, siempre y cuando usted tiene menos de 2.500 campañas en su MCC. Siempre se puede llamar a la función de borrado varias veces si es necesario, ya que es bastante rápido.

 // Elimina todos los eventos de un calendario dado
función blowAwayTheCalendar (calendarSummary) {
  var calendarId = getCalendarId (calendarSummary);
  calendarEvents var = Calendar.Events.list (calendarId, {maxResults: 2500});
  si (calendarEvents.items && calendarEvents.items.length> 0) {
    for (var i = 0; i <calendarEvents.items.length; i ++) {
      calendarEvent var = calendarEvents.items [i];
      Calendar.Events.remove (calendarId, calendarEvent.id);
    }
  }
}

El guión se va a ejecutar por las cuentas que tenemos, mira todas las campañas, y crear eventos de calendario que reflejan las fechas de inicio y finalización de la campaña.

Vamos a necesitar algo de código para crear realmente el caso. Las cosas más importantes en un evento del calendario son el resumen y las fechas, así que eso es todo lo que voy a preocuparse por aquí.

 // Crea un evento en el calendario dado
función createEvent (calendarId, EVENTO EVENTO, startDate, endDate) {
  var EventData = {
    'Resumen': EVENTO EVENTO,
    'Descripción': '', // Se puede añadir algo aquí si lo desea
    'Inicio': { 'fecha': formatDate (startDate)},
    'Final': { 'fecha': formatDate (endDate)}
  };
  maxRetries var = 3;
  while (maxRetries> 0) {
    tratar {
      var calendarEvent = Calendar.Events.insert (EventData, calendarId);
      Logger.log ( 'New evento con ID = fue creado% s.', CalendarEvent.getId ());
      calendarEvent.getId retorno ();
    } Catch (e) {
      maxRetries--;
      Utilities.sleep (1000);
    }
  }
  tirar "No se pudo crear un evento del calendario:" + EVENTO EVENTO;
}

// Función de ayuda para dar formato a la fecha
función formatDate (theDate) {
  volver Utilities.formatDate (theDate, 
                              AdWordsApp.currentAccount (). GetTimeZone (), 
                              'Yyyy-MM-dd');
}

Con sólo unas pocas líneas de código, ahora podemos crear eventos de nuestras campañas de AdWords. Esto va a crear un nuevo evento de todo el día a partir de la fecha de inicio y finalización en la fecha de finalización. Hay muchos otros parámetros personalizables se pueden agregar, si se quiere, pero esto funcionará por ahora.

Usted puede notar la lógica de reintento de aquí al intentar crear el evento. Si está ejecutando esta en paralelo con otras cuentas, lo más probable es encontrarse con los límites de cinco eventos por segundo. La lógica de reintento captura que y vuelve a intentar después de esperar un segundo.

Esto debería ayudar con cualquier problema de cuotas. Ahora estamos listos para armar el código para iterar a través de nuestras cuentas y añadir los eventos a nuestro calendario. Podemos utilizar un simple comando executeInParallel para lograr esto.

 // Este es el nombre que utilizó al buen
// crear su calendario.
var CALENDAR_SUMMARY = 'AdWords';

función main () {
  blowAwayTheCalendar (CALENDAR_SUMMARY); // eliminar todas las entradas existentes
  . MccApp.accounts () executeInParallel ( 'campaignsToCalender');
}

// itera a través de las campañas en una cuenta
// y añade un evento del calendario usando el principio y 
// fecha final opcional de la campaña.
función campaignsToCalender () {
  var calendarId = getCalendarId (CALENDAR_SUMMARY);
  . Var accountName = AdWordsApp.currentAccount () getName ();
  var campIter = AdWordsApp.campaigns get () ().;
  while (campIter.hasNext ()) {
    var campo = campIter.next ();
    var = inicio camp.getStartDate ()? awDateToDate (camp.getStartDate ()): null;
    Si {continuar (comenzar); } // esto no debería ocurrir
    final var;
    si (camp.getEndDate ()) {
      final = awDateToDate (camp.getEndDate ());
    } Else {
      // longitud campaña por defecto es de un año
      // tal vez unos pocos meses es mejor?
      final = new Date (inicio);
      end.setFullYear (end.getYear () + 1);
    }
    // Nombre del evento será la cuenta> Campaña
    . Resumen var = [accountName, camp.getName ()] join ( '>');
    var = eventId createEvent (calendarId, resumen, inicio, fin);
  }
}

// Función de ayuda para transformar AdWordsDate
// objetos a objetos fecha normal.
función awDateToDate (awDate) {
  return new Date (awDate.year, 
                  awDate.month, 
                  awDate.day, 0, 0, 0);
}

Pensamientos finales

Nuestra función principal se vuelve extremadamente simple, porque hemos creado funciones para todas las cosas complicadas. Una cosa a notar es que, si bien todas las campañas tendrán una fecha de inicio, no todos ellos requieren una fecha de finalización.

En casos como estos, que tendrá que decidir lo que quiere hacer. En este código, yo pongo las campañas para una duración de un año, así que puede realizar un seguimiento de ellos, pero se puede hacer lo que tenga sentido para su cuenta.

Esto es sólo un ejemplo sencillo, por supuesto; pero es de esperar, se desata una idea para que pueda continuar explorando estas nuevas API. Por ejemplo, se podría extender este código para que pueda cambiar los eventos en su calendario y tienen sus campañas se actualizan automáticamente.

Hay un montón de otras API avanzadas que recientemente han sido habilitados, y os animo a comprobar a cabo. Se está haciendo más y más difícil mantenerse al día con el impulso de secuencias de comandos de AdWords, y no puedo esperar para ver lo que tienen en el almacén para nosotros la próxima.


Las opiniones expresadas en este artículo son las del autor y no necesariamente de invitados Search Engine Land. Autores del personal se enumeran aquí.


Ads

Compartir

Reciente

La mente de su negocio: Nuestros columnas de búsqueda local de 2017

los practicantes de SEO locales tienen un papel cada vez má...

SearchCap: Seguimiento de Santa, Google API términos y métricas SEO

A continuación es lo que ocurrió en busca de hoy, según ha ...

Marlene Dietrich Google Doodle honores de la carrera de la legendaria actriz

Marlene Dietrich, la icónica actriz de origen alemán, se es...

resultados de búsqueda de imágenes de Google prueba un nuevo cuadro de búsquedas relacionadas

Google está probando un nuevo cuadro de “búsquedas relacion...

Comentarios