Campañas de Shopping

Las secuencias de comandos de Google Ads permiten administrar parte de la configuración campañas. Puedes usar secuencias de comandos para trabajar con campañas de Shopping existentes, crear y administrar agrupar jerarquías y ejecutar informes de Shopping. Sin embargo, no puedes usar secuencias de comandos para crear campañas de Shopping y configurar propiedades de Shopping a nivel de la campaña (para por ejemplo: prioridad de campaña, filtros de inventario, etc.) o vincular Merchant Center cuentas de servicio.

Recuperación de campañas de Shopping y grupos de anuncios

Las campañas de Shopping están disponibles a través de la shoppingCampaigns colección de un objeto AdsApp. Tú puedes recuperarlos como de costumbre a través de secuencias de comandos:

const campaignName = "My first shopping campaign";

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

for (const campaign of campaignIterator) {
  ...
}

Cuando hayas recuperado una campaña, puedes obtener sus grupos de anuncios de una forma. Esto solo es preferible si necesitas tomar medidas tanto en la campaña como en su grupos de anuncios.

const adGroupIterator = campaign.adGroups()
    .withCondition(`ad_group.name = "${adGroupName}"`)
    .get();

for (const adGroup of adGroupIterator) {
    ...
}

Si planeas realizar acciones solo en grupos de anuncios específicos, puedes usar la AdsApp.shoppingAdGroups() para recuperar grupos de anuncios sin recuperar el campaña primero:

const adGroupIterator = AdsApp.shoppingAdGroups()
    .withCondition(`campaign.name = "${campaignName}"`)
    .withCondition(`ad_group.name = "${adGroupName}"`)
    .get();

for (const adGroup of adGroupIterator) {
    ...
}

Anuncios de productos

Las secuencias de comandos de Google Ads te permiten recuperar sus anuncios de productos mediante el ads() método de la ShoppingAdGroup Puedes crear nuevos anuncios de productos newAdBuilder() método de ShoppingAdGroup.

Iterar la jerarquía del grupo de productos

Puedes acceder a la raíz de la jerarquía del grupo de productos con el rootProductGroup método de la ShoppingAdGroup Luego, puedes usar children método para iterar los grupos de productos secundarios y recorrer el grupo de productos en la nube. Cada nodo es un ProductGroup y puedes usar el getDimension para averiguar el tipo real del grupo de productos. También puedes transmitirlo a un tipo más específico (por ejemplo, ProductBrand). con el método de transmisión correspondiente (por ejemplo, asBrand). El siguiente fragmento de código muestra cómo recorrer de manera recursiva el grupo de productos en la nube.

walkTree(shoppingAdGroup.rootProductGroup(), 1);

function walkTree(root, level) {
  // Logger.log(root.getDimension());
  let description = "";
  switch (root.getDimension()) {
    case "ROOT":
      description = "Root";
      break;

    case "CATEGORY":
      description = root.asCategory().getName();
      break;

    case "BRAND":
      description = root.asBrand().getName();
      break;

    // Handle more types here.
    ...
  }

  if (root.isOtherCase()) {
    description = "Other";
  }

  const padding = new Array(level + 1).join('-');
  console.log("%s, %s, %s, %s, %s, %s",
             padding,
             description,
             root.getDimension(),
             root.getMaxCpc(),
             root.isOtherCase(),
             root.getId().toFixed());
  const children = root.children().get();
  for (const child of children) {
    walkTree(child, level + 1);
  }
}

Seleccionar un grupo de productos específico

Puede seleccionar grupos de productos específicos en una jerarquía de grupos de productos con los método productGroups de un AdsApp, ShoppingCampaign, o ShoppingAdGroup instancia. Este enfoque es más sencillo que recorrer todo el grupo de productos cuando seleccione grupos de productos específicos para la administración de ofertas comerciales. El siguiente fragmento de código muestra cómo seleccionar todos los grupos de productos con más de cinco clics y una tasa de clics superior a 0.01 durante el último mes y aumenta su oferta en 0.01.

function main() {
  const productGroups = AdsApp.productGroups()
      .withCondition("metrics.clicks > 5")
      .withCondition("metrics.ctr > 0.01")
      .forDateRange("LAST_MONTH")
      .get();
  for (const productGroup of productGroups) {
    productGroup.setMaxCpc(productGroup.getMaxCpc() + 0.01);
  }
}

Actualizar la jerarquía de un grupo de productos

Puedes agregar un grupo de productos secundario a un grupo de productos existente mediante su newChild . Esto te proporciona un ProductGroupBuilderSpace que luego puede usar para crear un grupo de productos adecuado. El el siguiente fragmento de código agrega una subdivisión para un "cardcow" marca debajo de la raíz, y, luego, lo subdivide para los productos nuevos y los reacondicionados.

const root = shoppingAdGroup.rootProductGroup();

// Add a brand product group for a "cardcow" under root.
const brandProductGroup = root.newChild()
    .brandBuilder()
    .withName("cardcow")
    .withBid(1.2)
    .build()
    .getResult();

// Add new conditions for New and Refurbished cardcow brand items.
const newItems = brandProductGroup.newChild()
    .conditionBuilder()
    .withCondition("New")
    .withBid(1.5)
    .build()
    .getResult();

// Refurbished items will use the bid from "cardcow" product group.
const refurbishedItems = brandProductGroup.newChild()
    .conditionBuilder()
    .withCondition("Refurbished")
    .build()
    .getResult();

Asimismo, puede eliminar una subdivisión con el remove método de ProductGroup Esta acción también borra toda la jerarquía del grupo de productos que está debajo del producto. grupo que se está quitando.

Las secuencias de comandos garantizarán que la jerarquía del grupo de productos sea coherente. después de crear cada grupo de productos, por lo que no es necesario crear ni eliminar el grupo de productos correspondiente a "Todo lo demás" cuando actualices el producto en la estructura jerárquica de grupo.

El plan "Todo lo demás" grupo de productos

Las jerarquías de grupos de productos de Shopping contienen la columna "Todo lo demás" ("Otro") grupo de productos en cada nivel para manejar los productos que no coinciden con la condición personalizada que creaste en la jerarquía del grupo de productos. Puedes usar la isOtherCase para distinguir entre un grupo de productos normal que agregaste y el "Otro" grupo de productos.

El siguiente fragmento de código recupera el estado "Otro" grupo de productos con la raíz la jerarquía del grupo de productos e imprime su oferta.

const root = shoppingAdGroup.rootProductGroup();

const childProductGroups = root.children().get();
let everythingElseProductGroupFound = false;

for (const childProductGroup of childProductGroups) {
  if (childProductGroup.isOtherCase()) {
    console.log("'Everything else' product group found. Type of the " +
               "product group is %s and bid is %s.",
               childProductGroup.getDimension(),
               childProductGroup.getMaxCpc());
    everythingElseProductGroupFound = true;
    break;
  }
}
if (!everythingElseProductGroupFound) {
  console.log("No 'Everything else' product group found under root " +
             "product group.");
}

Al subdividir un grupo de productos de hoja, las secuencias de comandos con "Otro", grupo de productos para asegurarse de que la jerarquía del grupo de productos se mantenga válido. El "Otro" el grupo de productos hereda la oferta del producto superior grupo.

Cree un nuevo grupo de anuncios de Shopping

Las secuencias de comandos de Google Ads te permiten crear un nuevo grupo de anuncios de Shopping mediante el newAdGroupBuilder método de ShoppingCampaign Una vez que hayas creado ShoppingAdGroup: puedes usar su createRootProductGroup para crear una nueva jerarquía de grupo de productos.

Informes

Las secuencias de comandos de Google Ads son compatibles product_group_view y shopping_performance_view para realizar un seguimiento del rendimiento de tus campañas de Shopping. Puedes para obtener más información sobre los informes en nuestra guía de informes.