Campanhas do Shopping

Os scripts do Google Ads oferecem algumas opções de gerenciamento das campanhas do Shopping. É possível usar scripts para trabalhar com campanhas do Shopping atuais, criar e gerenciar hierarquias de grupos de produtos e gerar relatórios do Shopping. No entanto, não é possível usar scripts para criar campanhas do Shopping, definir propriedades do Shopping no nível da campanha (por exemplo, prioridade de campanhas, filtros de inventário etc.) ou vincular contas do Merchant Center.

Recuperar campanhas do Shopping e grupos de anúncios

As campanhas do Shopping estão disponíveis na shoppingCampaigns coleção de um AdsApp objeto. É possível recuperá-las normalmente usando scripts:

const campaignName = "My first shopping campaign";

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

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

Depois de recuperar uma campanha, você pode acessar os grupos de anúncios dela de maneira semelhante. Isso só é recomendável se você precisar agir na campanha e nos grupos de anúncios.

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

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

Se você planeja agir apenas em grupos de anúncios específicos, use o AdsApp.shoppingAdGroups() método para buscar grupos de anúncios sem acessar a campanha primeiro:

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

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

Anúncios de produtos

Os scripts do Google Ads permitem recuperar seus anúncios de produtos usando o ads() método do ShoppingAdGroup. Você pode criar novos anúncios de produtos usando o método newAdBuilder() do ShoppingAdGroup.

Iterar a hierarquia de grupos de produtos

É possível acessar a raiz da hierarquia de grupos de produtos usando o rootProductGroup método do ShoppingAdGroup. Em seguida, use o método children para iterar os grupos de produtos secundários e percorrer a hierarquia de grupos de produtos. Cada nó é um ProductGroup objeto, e você pode usar o método getDimension para descobrir o tipo real do grupo de produtos. Você também pode converter para um tipo mais específico (por exemplo, ProductBrand) usando o método de conversão correspondente (por exemplo, asBrand). O snippet de código a seguir mostra como percorrer recursivamente a hierarquia de grupos de produtos.

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);
  }
}

Selecionar um grupo de produtos específico

É possível selecionar grupos de produtos específicos em uma hierarquia de grupos de produtos com o productGroups método de uma instância AdsApp, ShoppingCampaign ou ShoppingAdGroup. Essa abordagem é mais simples do que percorrer toda a hierarquia de grupos de produtos ao selecionar grupos de produtos específicos para fins de gerenciamento de lances. O snippet de código a seguir mostra como selecionar todos os grupos de produtos com mais de cinco cliques e uma taxa de cliques maior que 0.01 no último mês e aumenta o lance em 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);
  }
}

Atualizar uma hierarquia de grupos de produtos

É possível adicionar um grupo de produtos secundário a um grupo de produtos atual usando o método newChild. Isso oferece um ProductGroupBuilderSpace objeto, que pode ser usado para criar um grupo de produtos adequado. O snippet de código a seguir adiciona uma subdivisão para uma marca "cardcow" na raiz e, em seguida, a subdivide ainda mais para produtos novos e reformados.

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();

Da mesma forma, é possível remover uma subdivisão usando o remove método de ProductGroup. Isso também exclui toda a hierarquia de grupos de produtos abaixo do grupo de produtos que está sendo removido.

Os scripts garantem que a hierarquia de grupos de produtos esteja em um estado consistente após a criação de cada grupo. Assim, não é necessário criar ou excluir o grupo de produtos correspondente a "Todo o restante" ao atualizar a estrutura da hierarquia.

O grupo de produtos "Todo o restante"

As hierarquias de grupos de produtos do Shopping têm um grupo "Todo o restante" ("Outros") em cada nível para lidar com produtos que não correspondem à condição personalizada criada na hierarquia. Você pode usar o isOtherCase método para distinguir entre um grupo de produtos normal que você adicionou e o grupo de produtos "Outros".

O snippet de código a seguir recupera o grupo de produtos "Outros" na hierarquia de grupos de produtos raiz e imprime o lance.

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.");
}

Quando você subdivide um grupo de produtos folha, os scripts criam automaticamente um grupo de produtos "Outros" para garantir que a hierarquia de grupos de produtos permaneça válida. O grupo de produtos "Outros" herda o lance do grupo de produtos pai.

Criar um novo grupo de anúncios do Shopping

Os scripts do Google Ads permitem criar um novo grupo de anúncios do Shopping usando o newAdGroupBuilder método de ShoppingCampaign. Depois de criar o ShoppingAdGroup, você pode usar o método createRootProductGroup para criar uma nova hierarquia de grupos de produtos.

Relatórios

Os scripts do Google Ads são compatíveis com os relatórios product_group_view e shopping_performance_view para ajudar você a acompanhar a performance de suas campanhas do Shopping. Saiba mais sobre relatórios no nosso guia de relatórios.