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 la Red de Display.

Un borrador es una copia de una campaña existente que no publicará sus propios anuncios, pero que se puede usar para implementar cambios sin modificar la campaña original. Los cambios en etapas se pueden aplicar a la campaña de base.

Un experimento ejecuta una campaña personalizable en paralelo con la campaña original y muestra anuncios a un porcentaje específico de tráfico. En función de 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 del experimento.

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

Borradores

Crear un borrador

Para crear un borrador a partir de una campaña base existente, usa un DraftBuilder y 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 dispositivos móviles de 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 sobre los compiladores para obtener más detalles.

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

Aprovisiona el borrador de la campaña

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

Una campaña de borrador, como cualquier otra campaña, tiene métodos para obtener y configurar sus diversos atributos, como criterios, grupos de anuncios, ofertas y anuncios.

const draftCampaign = draft.getDraftCampaign();

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

Ten en cuenta que las verificaciones de políticas de anuncios se realizan para una campaña de borrador de la misma manera que para la campaña base. No podrás ejecutar un experimento a partir de un borrador de campaña que tenga anuncios que incumplan las políticas.

Ejecuta el borrador

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

  1. Si no quieres usar los cambios, simplemente puedes quitar el borrador. La eliminación del borrador es irreversible, pero 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 hiciste en el borrador, puedes continuar y aplicarlos:

    draft.startApplying();
    

    Este método inicia el proceso de aplicación de las actualizaciones a la campaña 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 deseas probar los cambios primero, puedes usar el borrador para crear un experimento.

Experimentos

Crea un experimento

Un experiment es similar a un borrador y también se crea a partir de una campaña base. Creas un experiment con un ExperimentBuilder. Esto creará automáticamente un experimento con dos "brazos" 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 campaña de borrador nueva que personalizarás según los pasos del borrador anterior antes de programar el experimento.

Cuando crees un experimento, asegúrate de configurar lo siguiente en el compilador:

withCampaign
La campaña en la que quieres que se base el experimento.
withTrafficSplitPercent
Qué porcentaje del tráfico se dirigirá al grupo del experimento. Para el 50%, especifica 50.
withStartDate y withEndDate
Especifica la fecha de inicio y de finalización de la campaña. Especifica en formato YYYYMMdd.
withType
SEARCH_CUSTOM o DISPLAY_CUSTOM, según la red que uses.
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 para ti 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 del experimento en lugar de la campaña de base. Por este motivo, cada campaña base solo puede tener 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.

Aprovisiona la campaña experimental

Al igual que un draft, un experiment no es una campaña. En cambio, vincula la campaña de base, el borrador y la campaña del experimento. 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, que se propagarán a la campaña del experimento.

// 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 finalice el experimento

Cuando finalice el experimento, tendrás algunas opciones. Te recomendamos que dejes que el experimento finalice por completo para que deje de publicar anuncios, pero que puedas seguir interactuando con él. Un experimento Finalizado se puede quitar, aplicar o graduar, y 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 conforme con el experimento en función de las estadísticas, puedes quitarlo, lo que también quitará la campaña experimental. Quitar el experimento es irreversible, pero aún se puede ver en Todos los experimentos, en la pestaña de experimentos de la IU de Google Ads.

    experiment.remove();
    
  • Si estás conforme 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 notificaciones cuando se complete el proceso.

      experiment.startApplying();
      
    2. Puedes establecer la campaña experimental como una campaña independiente y que funciona por completo, sin afectar a la campaña 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 campaña nueva ya no puede compartir un presupuesto con la campaña base, por lo que se necesita un presupuesto nuevo. Las campañas graduadas son como las campañas normales, ya que todos sus campos se pueden modificar y pueden funcionar como una campaña de base para más borradores y experimentos.

Otras consideraciones

Entidades base

La introducción de borradores y experimentos a las secuencias de comandos de Google Ads también presenta la noción de entidades base. Los borradores y las campañas 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 emisora si la llama una campaña o un grupo de anuncios de base. Las entidades dentro de las campañas y los grupos de anuncios, como las palabras clave y los anuncios, también se beneficiaron de estos métodos.

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

Los nuevos métodos Campaign.draftCampaigns() y Campaign.experimentCampaigns() te permiten acceder a todas las campañas de borrador y de experimento que tienen la campaña de llamada como 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 proceden 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 la finalización exitosa de startApplying() y startScheduling(), respectivamente. Además, indica No se pudo aplicar o No se pudo crear cuando se produce un error, 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 que tengan éxito 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 a la campaña de borrador de inmediato.

Del mismo modo, si creas un experimento y, de inmediato, intentas recuperar su campaña de borrador, se producirá un error en el modo de vista previa, ya que el borrador no se creó.

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 versión preliminar solo si crees que la causa se debe a limitaciones en el modo de vista previa.