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 los cambios en las campañas de la Red de Búsqueda y la Red de Display.

Un borrador es una clonación de una campaña existente que no publicará sus propios anuncios, pero se puede utilizar para habilitar a etapa cambios sin modificar la campaña original. Luego, los cambios en etapas pueden aplicarse a la campaña de base.

Un experimento ejecuta una campaña personalizable en paralelo a 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, ramificarlo a una campaña independiente o abandonar la campaña experimental.

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

Un borrador se crea a partir de una campaña base existente. Para ello, se utiliza un DraftBuilder y se proporciona un nombre único. La campaña de base debe ser una campaña de la Red de Búsqueda con expansión de Display o una campaña de Display (excepto las campañas 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 DraftOperation, una operación típica en secuencias de comandos. Consulta nuestra guía de compiladores para obtener más detalles.

Un draft se identifica de forma única 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.

Aprovisionar el borrador de campaña

Un objeto draft relaciona una campaña de base y un borrador de campaña. Para habilitar a etapa las actualizaciones de la campaña de base, propaga los cambios a través de la campaña en borrador.

Un borrador de campaña, como cualquier otra campaña, 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");

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

Ejecutar el borrador

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

  1. Si no deseas usar los cambios, puedes quitar el borrador. Quitar el borrador es irreversible, pero puedes verlo en Todos los borradores, en la pestaña Borradores de la IU de Google Ads.

    draft.remove();
    
  2. Si decides mantener 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 base, por lo que el borrador tendrá el estado Applying... en la IU de Google Ads. Sin embargo, el método no te notificará cuando se complete el proceso.

  3. Si primero quieres probar los cambios, 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. Las experiment se crean con ExperimentBuilder. Esto creará automáticamente un experimento con dos "grupos" que representan las diferentes partes del experimento. Un grupo (llamado grupo de control) tendrá la campaña de base y el otro (llamado grupo de tratamiento) tendrá un borrador de campaña nuevo que personalizarás según los pasos del borrador anterior antes de programar el experimento.

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

withCampaign
La campaña en la que quieres que se base el experimento.
withTrafficSplitPercent
Cuánto tráfico se enviará 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
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. Este es solo un recordatorio de cuáles eran tus objetivos al crearlo. Un buen valor predeterminado es [{metric: 'CLICKS', direction: 'INCREASE'}].

El porcentaje de división del tráfico determina en qué parte del tráfico se mostrarán los 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 ID único. Consulta ExperimentSelector.withIds() para obtener más información.

Aprovisionar la campaña experimental

Al igual que draft, un experiment 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:

  • name
  • status
  • 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 finalice el experimento

Cuando finalice tu experimento, tienes 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 aún se puede quitar, aplicar o actualizar, 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 conforme con el experimento en función de las estadísticas, puedes quitar el experimento, lo que también quitará la campaña experimental. Quitar el experimento es una acción irreversible, pero puedes verlo en Todos los experimentos, en la pestaña 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 se te notificará cuando se complete el proceso.

      experiment.startApplying();
      
    2. Puede establecer la campaña experimental como una campaña independiente y completamente operativa 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 campaña nueva 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 que pueden servir como 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. Las campañas en borrador y experimental, y sus grupos de anuncios 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 que realiza la llamada si la llama una campaña o un grupo de anuncios de base. A las entidades dentro de las campañas y los grupos de anuncios, como las palabras clave y los anuncios, también se les proporcionaron esos métodos.

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

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

Manejo de errores

Los siguientes métodos que incluyen borradores y experimentos continúan cuando se ejecuta la secuencia de comandos, pero pueden fallar de manera asíncrona:

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

Debes esperar para verificar si estas operaciones se realizaron correctamente. La IU de Google Ads muestra los estados Applied o Active después de que se completan correctamente startApplying() y startScheduling(), respectivamente. e indica No se puede aplicar o No se puede 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 se ejecuten de forma correcta después de que se ejecuten, 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 podrá acceder al borrador de campaña de inmediato.

Del mismo modo, la creación de un experimento y el intento inmediato de recuperación de su campaña en borrador fallará en el modo de vista previa, ya que en realidad el borrador no se crea.

Por este motivo, verifica los registros debajo de tu lista de secuencias de comandos después de ejecutarlos y procede con una secuencia de comandos con errores en la vista previa solo si crees que la causa se debe a limitaciones en el modo de vista previa.