Borradores y experimentos de campañas

Las secuencias de comandos de Google Ads admiten borradores y experimentos de campañas, que se usan para preparar y probar cambios en las campañas de la Red de Búsqueda y de Display.

En esta guía, se explica el flujo de trabajo básico para trabajar con borradores y experimentos en una secuencia de comandos.

Borradores

Un borrador es un clon de una campaña existente que no publicará sus propios anuncios, pero que se puede usar para organizar cambios sin modificar la campaña original. Luego, los cambios organizados se pueden aplicar a la campaña de base.

Crear un borrador

Para crear un borrador, se usa una campaña de base existente con un DraftBuilder y se le proporciona un nombre único. La campaña de base debe ser una campaña de Búsqueda, de la Red de Búsqueda con expansión de Display o de Display (excepto la campaña de aplicaciones para la Red de Display) y no debe tener un presupuesto compartido.

const campaign = AdsApp.campaigns()
    .withCondition(`campaign.name = "${campaignName}"`)
    .get()
    .next();

const draftBuilder = campaign.newDraftBuilder()
    .withName("INSERT_DRAFT_NAME_HERE")
    .build();

const draft = draftBuilder.getResult();

DraftBuilder.build() muestra un DraftOperation, una operación típica en las secuencias de comandos. Consulta nuestra guía para creadores para obtener más detalles.

Un draft se identifica de forma única por la combinación de su ID de campaña de base y su ID de borrador. Consulta DraftSelector.withIds() para obtener más información.

Aprovisionar el borrador de campaña

Un objeto draft relaciona una campaña de base y un borrador de campaña. Para organizar las actualizaciones de la campaña de base, debes propagar los cambios a través del borrador de campaña.

Al igual que cualquier otra campaña, una campaña de borrador tiene métodos para obtener y establecer sus diversos atributos, como criterios, grupos de anuncios, ofertas y anuncios.

const draftCampaign = draft.getDraftCampaign();

draftCampaign.setAdRotationType("CONVERSION_OPTIMIZE");
draftCampaign.createNegativeKeyword("shoes");

Las verificaciones de la política de anuncios se realizan para un borrador de campaña de la misma manera que para la campaña de base. No podrás ejecutar un experimento a partir de una borrador de campaña que tenga anuncios que infrinjan la política.

Ejecutar el borrador

Después de aprovisionar el borrador de campaña, puedes hacer una de las siguientes acciones:

  1. Si no quieres usar los cambios, puedes quitar el borrador. La eliminación del borrador es irreversible, pero aún se puede ver en Todos los borradores en la pestaña Borradores de la IU de Google Ads.

        draft.remove();
    
  2. Si decides conservar los cambios que realizaste en el borrador, puedes aplicarlos:

        draft.startApplying();
    

    Este método inicia el proceso de aplicación de las actualizaciones a la campaña de base, por lo que el borrador tendrá el estado Aplicando... en la IU de Google Ads. Sin embargo, el método no te notificará cuando se complete el proceso.

  3. Si quieres probar los cambios primero, puedes usar el borrador para crear un experimento.

Experimentos

Un experimento ejecuta una campaña personalizable en paralelo a la campaña original y muestra anuncios a un porcentaje especificado de tráfico. Según los resultados del experimento, puedes aplicar los cambios a la campaña original, bifurcar el experimento a una campaña independiente o abandonar la campaña experimental.

Crear un experimento

Un experiment es similar a un borrador y también se crea a partir de una campaña de base. Puedes crear un experiment con un ExperimentBuilder. Esto creará automáticamente un experimento con dos "grupos" que representan las diferentes partes del experimento. Un grupo (llamado grupo de control) contendrá la campaña de base, y el otro (llamado grupo de tratamiento) contendrá una nueva campaña de borrador que personalizarás (según los pasos del borrador que se mostraron anteriormente) antes de programar el experimento.

Cuando crees un experimento, asegúrate de establecer todo lo siguiente en el creador:

withCampaign
La campaña en la que quieres que se base el experimento.
withTrafficSplitPercent
La cantidad de tráfico que se dirigirá al grupo experimental. Para el 50%, especifica 50.
withStartDate y withEndDate
Especifica la fecha de inicio y finalización de la campaña. Especifica en formato YYYYMMdd.
withType
`SEARCH_CUSTOM` o `DISPLAY_CUSTOM`, según la red que uses.
SEARCH_CUSTOMDISPLAY_CUSTOM
withSuffix
Especifica un sufijo que se agregará al nombre de la campaña de tratamiento cuando se cree.
withGoals
Especifica los objetivos de este experimento. Esto es solo un recordatorio de cuáles eran tus objetivos cuando lo creaste. Un buen valor predeterminado es [{metric: 'CLICKS', direction: 'INCREASE'}].

El porcentaje de división del tráfico determina qué parte del tráfico mostrará anuncios de la campaña experimental en lugar de la campaña de base. Por este motivo, cada campaña de base puede tener solo un experimento en ejecución a la vez.

const experiment = AdsApp.newExperimentBuilder()
  .withCampaign(campaign)
  .withTrafficSplitPercent(50)
  .withStartDate("20230501")
  .withEndDate("20230601")
  .withType("SEARCH_CUSTOM")
  .withSuffix("experiment")
  .withGoals([{metric: 'CLICKS', direction: 'INCREASE'}])
  .build();

// The experimentCampaign represents the customizeable draft.
const experimentCampaign = experiment.getExperimentCampaign();

A diferencia de los borradores, los experimentos se identifican de forma única con un solo ID. Consulta ExperimentSelector.withIds() para obtener más información.

Aprovisionar la campaña experimental

Al igual que un draft, un experiment en sí no es una campaña. Más bien, relaciona la campaña de base, el borrador y la campaña experimental. Los campos de una campaña experimental se pueden modificar, con las siguientes excepciones:

  • nombre
  • estado
  • fecha de inicio
  • fecha de finalización
  • presupuesto
const experimentCampaign = experiment.getExperimentCampaign();

// Will succeed.
experimentCampaign.setAdRotationType("ROTATE_FOREVER");
experimentCampaign.createNegativeKeyword("sneakers");

// Will fail.
experimentCampaign.setName("INSERT_EXPERIMENT_NAME_HERE");

Se pueden realizar cambios en el nombre, la fecha de inicio y la fecha de finalización del experimento, después de lo cual se propagarán a la campaña experimental.

// Will succeed.
experiment.setName("INSERT_EXPERIMENT_NAME_HERE");

// Will succeed if date is acceptable.
const date = "20220601";
experiment.setStartDate(date);

Para iniciar el experimento, llama a experiment.startScheduling(). Este es un proceso asíncrono, ya que debe copiar toda la configuración de la campaña de base.

Después de que finaliza el experimento

Cuando se complete el experimento, tendrás algunas opciones. Te recomendamos que dejes que el experimento finalice por completo para que deje de publicar anuncios, pero puedas seguir interactuando con él. Un experimento finalizado se puede quitar, aplicar o graduar, y aún se puede acceder a las estadísticas de rendimiento de su campaña.

experiment.finish();
const stats = experimentCampaign.getStatsFor("INSERT_TIME_PERIOD_HERE");
  • Si no estás satisfecho con el experimento según las estadísticas, puedes quitarlo, lo que también quita la campaña experimental. La eliminación del experimento es irreversible, pero aún se puede ver en Todos los experimentos en la pestaña Experimentos de la IU de Google Ads.

        experiment.remove();
    
  • Si estás satisfecho con los resultados del experimento, tienes dos opciones:

    1. Puedes comenzar a aplicar los cambios y, al igual que con los borradores, no recibirás una notificación cuando se complete el proceso.

          experiment.startApplying();
      
    2. Puedes establecer la campaña experimental como una campaña independiente y en pleno funcionamiento, sin afectar la campaña de base. Este proceso, conocido como graduación, se completa de inmediato y requiere que se establezca un presupuesto nuevo.

          const budget = AdsApp.budgets()
              .withCondition(`campaign_budget.id = ${budgetId}`)
              .get()
              .next();
      
          experiment.graduate(budget);
      

      La nueva campaña ya no puede compartir un presupuesto con la campaña de base, lo que requiere un presupuesto nuevo. Las campañas graduadas son como las campañas normales, ya que todos sus campos se pueden modificar y pueden servir como campaña de base para más borradores y experimentos.

Otras consideraciones

Entidades base

La introducción de borradores y experimentos en las secuencias de comandos de Google Ads también introduce la noción de entidades base. Las campañas de borrador y experimentales, y los grupos de anuncios que contienen , son distintos de sus campañas de base originales, por lo que Campaign y AdGroup ahora tienen métodos para acceder a su campaña de base y grupo de anuncios: getBaseCampaign() y getBaseAdGroup().

Estos métodos muestran la entidad de llamada si la llama una campaña de base o un grupo de anuncios. Las entidades dentro de las campañas y los grupos de anuncios, como las palabras clave y los anuncios, también recibieron estos métodos.

Para ayudar a hacer un seguimiento de las entidades base, las campañas recibieron los isBaseCampaign(), isDraftCampaign() y isExperimentCampaign() métodos.

Los nuevos métodos Campaign.draftCampaigns() y Campaign.experimentCampaigns() te permiten acceder a todas las campañas de borrador y experimentales que tienen la campaña de llamada como su campaña de base. Sin embargo, no puedes seleccionar campañas de borrador con CampaignSelector.withCondition(); en su lugar, usa AdsApp.drafts().

Manejo de errores

Los siguientes métodos que involucran borradores y experimentos se ejecutan cuando se ejecuta la secuencia de comandos, pero pueden fallar de forma asíncrona:

  • Draft.startApplying()
  • Experiment.startApplying()
  • Experiment.startScheduling()

Debes esperar para verificar si estas operaciones se realizan correctamente. La IU de Google Ads muestra los estados Aplicado o Activo después de que se completan correctamente startApplying() y startScheduling(), respectivamente. Además, indica No se puede aplicar o No se puede crear en caso de falla, lo que te permite hacer clic para ver los errores.

También es posible que algunos métodos fallen en la etapa de vista previa, pero se realicen correctamente después de ejecutarse; por ejemplo, después de crear un borrador:

const draftCampaign = draft.getDraftCampaign();
draftCampaign.createNegativeKeyword("shoes"); // Will fail in preview.

Esto fallará en el modo de vista previa, ya que no puede acceder al borrador de campaña de inmediato.

Del mismo modo, crear un experimento y tratar de recuperar de inmediato su campaña de borrador fallará en el modo de vista previa, ya que el borrador no se crea en realidad.

Por este motivo, revisa los registros debajo de la lista de secuencias de comandos después de ejecutarlas y continúa con una secuencia de comandos que falló en la vista previa solo si crees que la causa se debe a limitaciones en el modo de vista previa.