Campanhas do Shopping

Os scripts do Google Ads permitem gerenciar 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. Você pode 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 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 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 da 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 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);
  }
}

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 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 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 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 correspondente a "Todos os outros" 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 "Todos os outros" ("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 de produtos "Outros" para garantir que a hierarquia 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 de compras usando o método newAdGroupBuilder de ShoppingCampaign. Depois de criar o ShoppingAdGroup, use o método createRootProductGroup para criar uma nova hierarquia de grupo de produtos.

Relatórios

Os scripts do Google Ads são compatíveis com relatórios de 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.