Campanhas do Shopping

Os scripts do Google Ads fornecem certo nível de gerenciamento das suas 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 de compras no nível da campanha (por exemplo: prioridade de campanha, filtros de inventário etc.) ou vincular contas do Merchant Center.

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

As campanhas do Shopping estão disponíveis pelo conjunto shoppingCampaigns de um objeto AdsApp. Elas podem ser recuperadas como de costume com 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, é possível gerar os grupos de anúncios dela de maneira semelhante. Essa estratégia só é preferível se você precisa 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 somente 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

Os scripts do Google Ads permitem que você recupere seus anúncios de produtos usando o método ads() da ShoppingAdGroup. É possível criar novos anúncios de produtos usando o método newAdBuilder() de ShoppingAdGroup.

Iterar na hierarquia do grupo de produtos

É possível acessar a raiz da hierarquia do grupo de produtos usando o método rootProductGroup da ShoppingAdGroup. Depois, você pode usar o método children para iterar os grupos de produtos secundários e percorrer a hierarquia do grupo de produtos. Cada nó é um objeto ProductGroup, e é possível usar o método getDimension para descobrir o tipo real do grupo de produtos. Também é possível transmiti-la para um tipo mais específico (por exemplo, ProductBrand) usando o método de transmissão correspondente (por exemplo, asBrand). O snippet de código a seguir mostra como percorrer de maneira recursiva 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 de grupo de produtos com o método productGroups de uma instância AdsApp, ShoppingCampaign ou ShoppingAdGroup. Essa abordagem é mais simples do que percorrer toda a hierarquia do grupo 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 deles 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 existente usando o método newChild. Isso fornece um objeto ProductGroupBuilderSpace, que pode ser usado para criar um grupo de produtos apropriado. O snippet de código a seguir adiciona uma subdivisão de uma marca "cardcow" na raiz e a subdividirá 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 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 "Todo o restante" ao atualizar a estrutura hierárquica 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 "Todo o restante" ("Outros") em cada nível para processar produtos que não correspondem à condição personalizada que você criou na hierarquia do grupo. Você pode usar o método isOtherCase para diferenciar um grupo de produtos normal adicionado de um grupo de produtos "Outros".

O snippet de código a seguir recupera o grupo de produtos "Outros" na hierarquia do grupo de produtos raiz e exibe 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ê subdivida um grupo de produtos 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 principal.

Criar um novo grupo de anúncios do Shopping

Os scripts do Google Ads permitem que você crie um novo 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 grupo 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 do Shopping. Saiba mais sobre relatórios no nosso guia de relatórios.