Campanhas do Shopping

Os scripts do Google Ads permitem gerenciar algumas campanhas do Shopping. É possível usar scripts para trabalhar com campanhas do Shopping, 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 da campanha, filtros de inventário etc.) ou vincular contas do Merchant Center.

Recuperação de campanhas e grupos de anúncios do Shopping

As campanhas do Shopping estão disponíveis na coleção shoppingCampaigns de um objeto AdsApp. Você pode extraí-los como de costume 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ó é preferí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 método AdsApp.shoppingAdGroups() para buscar grupos de anúncios sem buscar 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

Com os scripts do Google Ads, você pode extrair seus anúncios de produtos usando o método ads() do ShoppingAdGroup. É possível criar novos anúncios de produto usando o método newAdBuilder() do ShoppingAdGroup.

Iterar pela hierarquia do grupo de produtos

É possível acessar a raiz da hierarquia de grupos de produtos usando o método rootProductGroup do ShoppingAdGroup. Em seguida, use o método children para iterar os grupos de produtos filhos e percorrer a hierarquia de grupos de produtos. Cada nó é um objeto ProductGroup, e você pode usar o método getDimension para descobrir o tipo real do grupo de produtos. Você também pode convertê-lo em um tipo mais específico (por exemplo, ProductBrand) usando o método de conversão correspondente (por exemplo, asBrand). O snippet de código abaixo mostra como percorrer recursivamente a hierarquia do grupo 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 com o método productGroups de uma AdsApp, ShoppingCampaign ou ShoppingAdGroup instância. 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 durante o ú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 filho a um grupo de produtos existente usando o método newChild. Isso gera um objeto ProductGroupBuilderSpace, 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 a subdivide para produtos novos e recondicionados.

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 método remove do ProductGroup. Isso também exclui toda a hierarquia do grupo de produtos abaixo do grupo que está sendo removido.

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

O grupo de produtos "Todo o restante"

As hierarquias de grupos de produtos do Shopping contêm um grupo de produtos "Todos os outros" em cada nível para processar itens que não correspondem à condição personalizada criada na hierarquia. Você pode usar o método isOtherCase para distinguir um grupo de produtos normal adicionado de um grupo de produtos "Outros".

O snippet de código abaixo recupera o grupo de produtos "Outros" na hierarquia raiz do grupo de produtos 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 de folha, os scripts criam automaticamente um grupo de produtos "Outros" para garantir que a hierarquia do grupo 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 método newAdGroupBuilder do ShoppingCampaign. Depois de criar o ShoppingAdGroup, use o método createRootProductGroup para criar uma nova hierarquia de grupos de produtos.

Relatórios

Os scripts do Google Ads oferecem suporte aos relatórios product_group_view e shopping_performance_view para ajudar você a acompanhar a performance das suas campanhas do Shopping. Saiba mais sobre como fazer denúncias no nosso guia de denúncias.