Campanhas do Shopping

Os scripts do Google Ads oferecem algum gerenciamento das suas campanhas do Shopping. Você pode 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 da campanha, 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 coleção shoppingCampaigns de um objeto AdsApp. É possível recuperá-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ó é recomendável se você precisar agir na campanha e nos grupos de anúncios dela.

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 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 método ads() da ShoppingAdGroup. Você pode criar novos anúncios de produto usando o método newAdBuilder() de ShoppingAdGroup.

Iterar na hierarquia de grupos de produtos

É possível acessar a raiz da hierarquia de grupos de produtos usando o método rootProductGroup de 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 objeto ProductGroup, 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);
  }
}

Selecione um grupo de produtos específico

É possível selecionar grupos de produtos específicos em uma hierarquia com o método productGroups 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 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 superior a 0.01 no último mês e aumentar 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 grupo de produtos

É possível adicionar um grupo de produtos secundário a um grupo de produtos existente usando o método newChild. Isso fornece 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 ainda mais 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 de ProductGroup. Isso também exclui toda a hierarquia de grupos de produtos abaixo do grupo 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 método isOtherCase 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 raiz e imprime o lance dele.

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 "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 principal.

Criar um grupo de anúncios do Shopping

Os scripts do Google Ads permitem criar um grupo de anúncios do Shopping usando o método newAdGroupBuilder de 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 são compatíveis com os relatórios product_group_view e shopping_performance_view para ajudar você a acompanhar a performance das suas campanhas de compras. Saiba mais sobre os relatórios no nosso guia de relatórios.