Campanhas do Shopping

Uma Campanha do Shopping é um tipo de campanha que ajuda a promover seus produtos fornecendo informações de produto detalhadas aos usuários antes mesmo de eles clicarem no seu anúncio. Os anúncios das Campanhas do Shopping exibem uma foto dos seus produtos aos usuários, juntamente com um título, um preço, o nome da loja e outras informações.

Este guia explica como configurar e gerenciar Campanhas do Shopping na AdWords API.

Como vincular as contas do Merchant Center e do Google AdWords

Para criar uma Campanha do Shopping, primeiro você precisa vincular sua conta do Google AdWords à sua conta do Google Merchant Center. Isso requer duas etapas:

  1. Enviar um convite da sua conta do Merchant Center para a sua conta do Google AdWords.
  2. Aceitar o convite na conta do Google AdWords.

Enviar um convite da sua conta do Google Merchant Center

Você pode usar a interface do usuário do Merchant Center para enviar esse convite ou usar a Content API for Shopping para atualizar o adwordsLinks da sua conta.

Como gerenciar convites na sua conta do Google AdWords

A partir da versão v201609, é possível usar getServiceLinks e mutateServiceLinks do CustomerService para recuperar, aceitar e rejeitar vinculações entre sua conta do Google AdWords e outros serviços, incluindo o Merchant Center.

Para recuperar todas as vinculações à sua conta, basta chamar getServiceLinks com um predicado no serviceType = MERCHANT_CENTER da seguinte forma:

Java

// Get the CustomerService.
CustomerServiceInterface customerService =
    adWordsServices.get(session, CustomerServiceInterface.class);

// Create a selector that filters by service type.
Selector selector =
    new SelectorBuilder()
        .fields("ServiceType")
        .equals("ServiceType", ServiceType.MERCHANT_CENTER.getValue())
        .build();

// Get the service links.
ServiceLink[] serviceLinks = customerService.getServiceLinks(selector);

// Display the results.
if (serviceLinks != null) {
  for (ServiceLink serviceLink : serviceLinks) {
    System.out.printf(
        "Found service link with service link ID %d, type %s, name '%s', and status %s.%n",
        serviceLink.getServiceLinkId(),
        serviceLink.getServiceType(),
        serviceLink.getName(),
        serviceLink.getLinkStatus());
  }
} else {
  System.out.println("No service links found.");
}

Para aceitar um convite, chame mutateServiceLinks e passe uma operação SET que altere o linkStatus de PENDING para ACTIVE. Defina o serviceType e o serviceLinkId no operando.

Java

// Get the CustomerService.
CustomerServiceInterface customerService =
    adWordsServices.get(session, CustomerServiceInterface.class);

// Create the operation to set the status to ACTIVE.
ServiceLinkOperation op = new ServiceLinkOperation();
op.setOperator(Operator.SET);
ServiceLink serviceLink = new ServiceLink();
serviceLink.setServiceLinkId(serviceLinkId);
serviceLink.setServiceType(ServiceType.MERCHANT_CENTER);
serviceLink.setLinkStatus(ServiceLinkLinkStatus.ACTIVE);
op.setOperand(serviceLink);

// Update the service link.
ServiceLink[] mutatedServiceLinks =
    customerService.mutateServiceLinks(new ServiceLinkOperation[] {op});

// Display the results.
for (ServiceLink mutatedServiceLink : mutatedServiceLinks) {
  System.out.printf(
      "Service link with service link ID %d, type '%s' updated to status: %s.%n",
      mutatedServiceLink.getServiceLinkId(),
      mutatedServiceLink.getServiceType(),
      mutatedServiceLink.getLinkStatus());
}

Para rejeitar um convite, chame mutateServiceLinks e passe uma operação REMOVE com um operando que tenha serviceType e serviceLinkId definidos.

Java

// Get the CustomerService.
CustomerServiceInterface customerService =
    adWordsServices.get(session, CustomerServiceInterface.class);

// Create the operation to remove the service link.
ServiceLinkOperation op = new ServiceLinkOperation();
op.setOperator(Operator.REMOVE);
ServiceLink serviceLink = new ServiceLink();
serviceLink.setServiceLinkId(serviceLinkId);
serviceLink.setServiceType(ServiceType.MERCHANT_CENTER);
op.setOperand(serviceLink);

// Remove the service link.
ServiceLink[] mutatedServiceLinks =
    customerService.mutateServiceLinks(new ServiceLinkOperation[] {op});

// Display the results.
for (ServiceLink mutatedServiceLink : mutatedServiceLinks) {
  System.out.printf(
      "Service link with service link ID %d and type '%s' was removed.%n",
      mutatedServiceLink.getServiceLinkId(), mutatedServiceLink.getServiceType());
}

Como criar uma Campanha do Shopping

Observação: este guia usa CampaignService e AdGroupCriterionService para facilitar a explicação, mas você pode realizar as mesmas operações usando BatchJobService. Consulte o guia de tarefas em lote para mais detalhes.

Ao criar uma Campanha do Shopping, você define os orçamentos, os lances e as configurações. O tipo mais simples de Campanha do Shopping apresenta um lance para todos os produtos.

Há duas etapas exclusivas para a configuração de uma Campanha do Shopping:

  1. Definir o advertisingChannelType da campanha como SHOPPING.

  2. Criar e adicionar um ShoppingSetting à campanha.

As duas etapas são mostradas no código abaixo.

Campaign campaign = new Campaign();
campaign.setAdvertisingChannelType(AdvertisingChannelType.SHOPPING);
// Recommendation: Set the campaign to PAUSED when creating it to stop
// the ads from immediately serving. Set to ENABLED once you've added
// targeting and the ads are ready to serve.
campaign.setStatus(CampaignStatus.PAUSED);

ShoppingSetting shoppingSetting = new ShoppingSetting();
shoppingSetting.setMerchantId(MERCHANT_ID);
shoppingSetting.setSalesCountry("GB");
shoppingSetting.setCampaignPriority(0);
shoppingSetting.setEnableLocal(true);
campaign.setSettings(new Setting[] {shoppingSetting});

Conforme mostrado no exemplo acima, um ShoppingSetting tem as seguintes propriedades:

merchantId (obrigatório)
O ID da conta do Google Merchant Center ao qual seus produtos pertencem.
salesCountry (obrigatório)
Somente produtos com um país de destino correspondente no Merchant Center serão selecionados. Isso não afeta a segmentação de anúncios.
campaignPriority (opcional, padrão: 0)
0, 1 ou 2. Isso determina qual campanha deve ter prioridade quando mais de uma campanha usa o mesmo feed de dados do Merchant Center. A campanha com a prioridade mais alta será selecionada. Se duas campanhas tiverem a mesma prioridade, cada anúncio será abrangido por aquela que define o lance mais alto para o produto.
enableLocal (opcional, padrão: false)
Quando definido como true, esse sinalizador ativa anúncios de inventário local nas suas Campanhas do Shopping.

Como criar um grupo de anúncios e anúncios do Google Shopping

Para veicular anúncios para sua campanha do Shopping, crie um AdGroup com pelo menos um anúncio no grupo de anúncios.

As campanhas do Shopping são compatíveis com dois tipos de grupos de anúncios:

  • SHOPPING_PRODUCT_ADS: esse é o tipo de grupo de anúncios padrão para campanhas do Shopping e veicula anúncios de produtos padrão.
  • SHOPPING_SHOWCASE_ADS: esse tipo de grupo de anúncios é limitado a exibir anúncios de demonstração em resultados do Shopping. Para criar um, você precisa:
    1. definir o campo adGroupType do seu grupo de anúncios como SHOPPING_SHOWCASE_ADS;
    2. definir biddingStrategyType do biddingStrategyConfiguration do seu grupo de anúncios como MANUAL_CPC ou ENHANCED_CPC.

Depois que você criar o tipo de grupo de anúncios necessário, conclua a configuração básica da sua campanha adicionando um ProductAd ou um ShowcaseAd ao seu grupo de anúncios.

Em seguida, é necessário decidir quais produtos serão incluídos e qual será o valor do lance para eles.

Particionamento

As campanhas do Shopping são eficientes porque nelas seu inventário de produtos é dividido em várias dimensões, e os grupos de anúncios são tratados individualmente. Considere o diagrama abaixo, em que os produtos foram amplamente divididos como "Eletrônicos" (que são separados por marca), "Brinquedos" e "Outros" (que são separados por estado de novo ou usado)

Crie essa estrutura como uma árvore. Cada nível da árvore representa uma partição.

Cada nó da árvore é uma subdivisão ou uma unidade. Uma subdivisão introduz um novo nível na árvore. Já as unidades são as folhas da árvore. Cada subdivisão tem que ser sempre completamente particionada, por isso ela precisa conter um tipo de unidade que represente Outros. No exemplo, a raiz e os nós Categoria: Eletrônicos e Categoria: (Outros) são subdivisões.

Os nós são objetos da classe ProductPartition, que é uma subclasse da classe Criterion. Os ProductPartitions são vinculados ao AdGroup com BiddableAdGroupCriterion ou NegativeAdGroupCriterion.

A combinação dos tipos ProductPartition e AdGroupCriterion produz os seguintes efeitos:

Tipo ProductPartition Tipo AdGroupCriterion Efeito
UNIDADE BiddableAdGroupCriterion Um lance para os itens que correspondem a essa folha da árvore.
UNIDADE NegativeAdGroupCriterion Essa combinação indica que você não deseja definir lances para esta folha específica deste grupo de anúncios, mas que outros grupos de anúncios e campanhas (de prioridade mais baixa) podem fazer isso.

Outras combinações resultam em um erro.

Um ProductPartition também tem um caseValue que pode ser qualquer uma de várias subclasses do tipo ProductDimension. Uma ProductDimension representa os valores associados aos seus produtos, como marca, categoria ou condição. Há uma descrição completa dos tipos de ProductDimension disponíveis na documentação de referência.

Cada filho imediato de uma subdivisão precisa ter um caseValue do mesmo subtipo ProductDimension. Somente o nó raiz não tem um caseValue.

ProductPartition root = new ProductPartition();
root.setPartitionType(ProductPartitionType.SUBDIVISION);
root.setId(-1);

ProductPartition node1 = new ProductPartition();
node1.setPartitionType(ProductPartitionType.UNIT);
node1.setCaseValue(new ProductBrand(null, "Brand A"));
node1.setParentCriterionId(root.getId());

Lembre-se de que cada subdivisão precisa conter um caseValue "vazio" do tipo correto que represente "todos os outros valores".

ProductPartition node2 = new ProductPartition();
node2.setPartitionType(ProductPartitionType.UNIT);
node2.setCaseValue(new ProductBrand());
node2.setParentCriterionId(root.getId());

IDs temporários

Os critérios só recebem IDs depois que a solicitação de modificação que os cria é processada pelo servidor. No entanto, uma ProductPartition é inválida até que seja concluída. Portanto, sempre que você criar uma subdivisão, precisará também criar pelo menos um dos filhos dela na mesma operação.

Para que você possa definir o parentCriterionId para os nós filhos, use IDs de critério temporário. Eles são identificadores exclusivos por local (e não de modo global) que aplicam somente o contexto de uma única solicitação. É possível usar um "integer" negativo como um ID temporário. No exemplo de código acima, o ID da raiz ProductPartition está definido como -1.

Quando a solicitação é processada, é atribuído um ID global positivo a cada Criterion, como de costume.

Dimensões do produto

Os seguintes tipos de ProductDimension estão disponíveis para as Campanhas do Shopping:

ProductBiddingCategory, ProductCustomAttribute e ProductType são divididos em mais subtipos. Durante a subdivisão por um desses tipos, cada caseValue dessa subdivisão também precisa ser do mesmo subtipo.

ProductBiddingCategory e ProductType são hierárquicos, e os subtipos representam a profundidade na hierarquia. A categoria Mídia é uma BIDDING_CATEGORY_L1. Já Livros é uma BIDDING_CATEGORY_L2 e tem Mídia como categoria mãe. Não é possível subdividir por um caseValue, a menos que a mãe já tenha sido subdividida mais acima na árvore.

Por exemplo, não é possível ter a categoria Livros como um nó direto da raiz. Também não é possível ter Livros diretamente em Eletrônicos, pois Eletrônicos não é mãe de Livros.

ProductCustomAttribute não é hierárquico. Em vez disso, os subtipos CUSTOM_ATTRIBUTE_0 a CUSTOM_ATTRIBUTE_4 são compatíveis com os valores custom attribute 0 a custom attribute 4 no Merchant Center.

É possível especificar os canais local ou on-line (ou ambos) por meio das dimensões de produto ProductChannel e ProductChannelExclusivity.

Categorias de lances

Os valores do tipo ProductBiddingCategory são IDs fixos. É possível recuperar o conjunto completo de categorias de lances com o método ConstantDataService getProductBiddingCategoryData. É altamente recomendável armazenar os resultados dessa chamada em cache, pois o conjunto de dados é grande e não muda com frequência.

Como modificar as árvores ProductPartition existentes

A árvore precisa permanecer sempre completa. Portanto, qualquer operação de modificação que invalide uma árvore precisa fazer parte da mesma solicitação como uma operação que a corrija novamente. Para serem válidos, todos os nós filhos de uma subdivisão precisam ter um caseValue do mesmo tipo, e cada subdivisão precisa conter um nó "outro".

Se você quiser subdividir ainda mais um nó folha, será necessário remover a unidade existente e substituí-la por uma subdivisão com o mesmo caseValue. Assim, você poderá adicionar seus refinamentos como filhos do novo nó.

A remoção de uma subdivisão faz com que todos os seus filhos também sejam removidos de forma recorrente.

Filtrar por dimensões de produto

É possível adicionar um critério ProductScope para filtrar os produtos de uma campanha. Você pode criar no máximo um ProductScope por campanha. Um ProductScope é um contêiner de um ou mais ProductDimensions que representam um filtro simples de um aspecto de um produto. Por exemplo, se você adicionar um subtipo ProductBrand de ProductDimension e definir o valor dele como Nexus, a campanha será aplicada somente a produtos que tiverem "Nexus" definido como marca no Merchant Center.

ProductScope productScope = new ProductScope();
productScope.setDimensions(new ProductDimension[] {new ProductBrand(null, "Nexus")});

É possível adicionar até sete ProductDimensions a um ProductScope. Para serem incluídos na campanha, os produtos precisam ser compatíveis com todos os ProductDimension.

Restrições de lances

As restrições de lances de um grupo de anúncios do Shopping variam de acordo com o tipo de anúncio: SHOPPING_PRODUCT_ADS ou SHOPPING_SHOWCASE_ADS. A tabela a seguir resume as diferenças.

  SHOPPING_PRODUCT_ADS SHOPPING_SHOWCASE_ADS
Estratégia de faturamento Somente os seguintes tipos são suportados:
  • MANUAL_CPC
  • ENHANCED_CPC
  • TARGET_ROAS
  • TARGET_SPEND
Somente os seguintes tipos são suportados:
  • MANUAL_CPC
  • ENHANCED_CPC
Estratégia de lance no nível do grupo de anúncios Opcional Obrigatório
Lances no nível do nó de partição do produto Obrigatório Não permitido

Relatórios

As Campanhas do Shopping apresentam dois novos relatórios, o Relatório de partição de produtos e o Relatório de desempenho do Shopping.

Consulte o guia de relatórios para mais informações.

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.