Local de destino

Para que uma campanha do Google AdWords seja bem-sucedida, ela deve ser segmentada em função do público-alvo. Este guia analisa a segmentação geográfica em mais detalhes. Veremos como é possível usar a Google AdWords API para adicionar, recuperar e atualizar a segmentação geográfica das campanhas. Analisaremos também conceitos avançados de segmentação geográfica, como Local de presença e Área de interesse, além de como gerar relatórios e avaliar o desempenho geográfico da campanha.

Os exemplos de código deste guia usam a biblioteca Java da Google AdWords API. Se estiver procurando uma biblioteca cliente em outra linguagem de programação, verifique nossa lista completa de bibliotecas cliente. O uso de uma biblioteca cliente, embora recomendável, é opcional. Você pode usar qualquer kit de SOAP na linguagem de programação de sua escolha para realizar chamadas para a API.

  1. Por que a segmentação geográfica é importante?
  2. Segmentação geográfica das campanhas em uma região
  3. Pesquisa de código de local de uma região
  4. Segmentação geográfica das campanhas em função da proximidade com um local
  5. Procurando as coordenadas de um endereço
  6. Segmentação geográfica das campanhas para uma região demarcada por polígono
  7. Recuperando segmentações geográficas
  8. Atualizando segmentações geográficas
  9. Configurações avançadas de segmentação geográfica
  10. Relatórios de desempenho geográfico

Por que a segmentação geográfica é importante?

Para que uma campanha do Google AdWords seja bem-sucedida, ela deve ser segmentada em função do público-alvo. A segmentação geográfica permite limitar os anúncios aos usuários de determinada região. Por exemplo, suponha que você esteja anunciando uma cadeia de supermercados. Sem segmentação geográfica, seus anúncios aparecerão em todas as regiões do mundo, e podem receber cliques de usuários em regiões onde as cadeias de supermercado não estão disponíveis, o que onera o orçamento da publicidade sem oferecer retorno. É mais eficaz segmentar suas campanhas de publicidade geograficamente para que apareçam apenas em regiões atendidas pelos supermercados. Essa abordagem também permite alcançar os clientes que procuram supermercados no local.

A Google AdWords API permite segmentar os anúncios por país, região ou proximidade de um ponto geográfico. Agora, analisaremos cada uma dessas opções. Se você não está familiarizado com essas opções no Google AdWords, leia sobre elas neste artigo da Central de Ajuda.

Segmentação geográfica das campanhas em uma região

A Google AdWords API permite segmentar as campanhas geograficamente para uma região. Uma região pode ser qualquer região geográfica para a qual o Google AdWords permite a segmentação geográfica. Por exemplo, um país, um estado, uma cidade ou uma região postal. Cada local segmentável é identificado com exclusividade por um ID de critério.

Você pode adicionar segmentações geográficas às campanhas usando CampaignTargetingService. O snippet de código a seguir mostra como segmentar suas campanhas para a Califórnia (EUA) e o México.

// Criar locais. Os IDs podem ser encontrados na documentação ou
// recuperados com LocationCriterionService.
Location california = new Location();
california.setId(21137L);
Location mexico = new Location();
mexico.setId(2484L);

List operations = new ArrayList();
for (Criterion criterion : new Criterion[] {california, mexico}) {
  CampaignCriterionOperation operation = new CampaignCriterionOperation();
  CampaignCriterion campaignCriterion = new CampaignCriterion();
  campaignCriterion.setCampaignId(campaignId);
  campaignCriterion.setCriterion(criterion);
  operation.setOperand(campaignCriterion);
  operation.setOperator(Operator.ADD);
  operations.add(operation);
}

CampaignCriterionReturnValue result = campaignCriterionService.mutate(operations
   .toArray(new CampaignCriterionOperation[operations.size()]));

Como mostra o código, é necessário criar objetos Location para cada região a ser segmentada e adicioná-los usando CampaignCriteronService.mutate. O código da Califórnia é 21137 e o do México é 2484.

O Google pode eliminar progressivamente alguns critérios de local por diversos motivos: o local pode ser reestruturado em áreas menores (ou maiores), alterações geopolíticas etc. Consulte o campo targetingStatus do objeto Location para determinar se o status de um local é ACTIVE, OBSOLETE ou PHASING_OUT. Consulte esta postagem do blog para mais detalhes sobre a eliminação progressiva dos locais de destino.

Pesquisa de código de local de uma região

Como você viu na seção anterior, é necessário criar um objeto Location com um código apropriado para realizar a segmentação geográfica de uma região. Você pode usar LocationCriterionService para pesquisar o ID de critério de um local. O exemplo de código a seguir mostra como é possível pesquisar um ID de critério de local por nome do local.

String[] locationNames = new String[] {"Quebec"};

Selector selector = new Selector();
selector.setFields(new String[] {"Id", "LocationName", "CanonicalName", "DisplayType",
   "ParentLocations", "Reach"});

selector.setPredicates(new Predicate[] {
  // Os nomes dos locais precisam ser iguais, somente EQUALS e IN são
  // compatíveis.
  new Predicate("LocationName", PredicateOperator.IN, locationNames),
  // Definir a localidade dos nomes de local retornados.
  new Predicate("Locale", PredicateOperator.EQUALS, new String[] {"en"})
});

// Fazer a solicitação get.
LocationCriterion[] locationCriteria = locationCriterionService.get(selector);

// Exibir os critérios de local resultantes.
for (LocationCriterion locationCriterion : locationCriteria) {
 String parentString =
     getParentLocationString(locationCriterion.getLocation().getParentLocations());
 System.out.printf("O termo de pesquisa '%s' retornou o local '%s (%d)' do tipo '%s' "
     + "com locais pai '%s' e alcance '%d'.\n",
    locationCriterion.getSearchTerm(),
    locationCriterion.getLocation().getLocationName(),
    locationCriterion.getLocation().getId(),
    locationCriterion.getLocation().getDisplayType(), parentString,
    locationCriterion.getReach());
}

/**
  * Função de ajuda para formatar uma string para locais pai.
  *
  * @param parents Lista de locais pai.
  * @return String formatada que representa locais pai.
  */
 public static String getParentLocationString(Location[] parents) {
   StringBuilder sb = new StringBuilder();
   if (parents != null) {
     for (Location parent : parents) {
       if (sb.length() > 0) {
         sb.append(", ");
       }
       sb.append(String.format("%s (%s)", parent.getLocationName(),
           parent.getDisplayType()));
     }
   } else {
     sb.append("N/A");
   }
   return sb.toString();
 }

Com o exemplo de código acima, o seguinte resultado será exibido:

O termo de pesquisa "Quebec" retornou o local "Quebec" (20123) do tipo "Província
" com locais pai "Canadá (país)" e alcance "5070000".
O termo de pesquisa "Quebec" retornou o local "Cidade de Quebec" (1002624) do tipo "C
idade" com os locais pai "Quebec (província), Canadá (país)" e alcance "35
6000".

Agora, você pode segmentar Quebec (província) usando o código de local 20123 e Cidade de Quebec usando o código de local 1002624.

Com LocationCriterionService você pode solicitar os locais pai de um local. Para fazer isso, adicione ParentLocations à lista de campos seletores. Por exemplo, o código anterior retornou o local (cidade de Quebec), bem como seu local pai (Canadá). Esse recurso é útil se você deseja exibir uma lista hierárquica de locais para seus clientes ou adicionar a inclusão ou a exclusão de lógica de localização geográfica ao segmentar suas campanhas.

Um ponto importante a ser lembrado ao trabalhar com locais pai é que você não deve fazer suposições sobre o displayType de um local em uma hierarquia. Por exemplo, os EUA se dividem em estados e também em cidades, mas não é isso o que necessariamente ocorre com todos os países do mundo.

Você pode fazer bom uso de LocationCriterionService se souber o nome exato do local. Se não souber o nome exato do local ou se quiser recuperar os códigos de local de inúmeras regiões, é recomendável salvar a lista localmente em um banco de dados e desenvolver sua própria lógica de pesquisa de locais. Você pode facilmente pesquisar os códigos de um local ou fazer o download da lista de todos os códigos em nossa tabela de segmentações, que é atualizada periodicamente com as últimas segmentações geográficas.

Segmentação geográfica das campanhas em função da proximidade com um local

A segmentação por local permite melhor direcionar as campanhas por localidade. Porém, em certos momentos, convém segmentar com ainda maior precisão. Por exemplo, é recomendável anunciar os supermercados que ficam em um raio de 10 quilômetros de sua loja. Nesses casos, é possível usar a área de segmentação por proximidade para as campanhas. O código para criar uma área de segmentação por proximidade é semelhante à forma como você adiciona um local de destino, exceto pela necessidade de criar um objeto Proximity em vez de um objeto Location, conforme mostrado abaixo.

Proximity proximity = new Proximity();
proximity.geoPoint = myGeoPoint;
proximity.radiusDistanceUnits = ProximityDistanceUnits.KILOMETERS;
proximity.radiusInUnits = 10;

Procurando as coordenadas de um endereço

Para usar a área de segmentação por proximidade (Proximity), é preciso localizar geograficamente o endereço a ser segmentado. Você pode usar GeoLocationService para procurar as coordenadas de um endereço, conforme mostrado abaixo.

GeoLocationServiceInterface geoLocationService =
    new AdWordsServices().get(session, GeoLocationServiceInterface.class);

// Procurar o ponto geográfico de 38 avenue de l'Opéra, 75002 Paris, FR.
Address address = new Address();
address.setStreetAddress("38 avenue de l'Opéra");
address.setCityName("Paris");
address.setPostalCode("75002");
address.setCountryCode("FR");

// Criar o seletor de localização geográfica.
GeoLocationSelector selector = new GeoLocationSelector();
selector.setAddresses(new Address[] {address});

// Ver localização geográfica.
GeoLocation[] geoLocationResult = geoLocationService.get(selector);
GeoPoint geoPoint = geoLocationResult[0].getGeoPoint();

Como no caso de LocationCriterionService, é recomendável armazenar as coordenadas das segmentações geográficas em um banco de dados local, e não procurá-las usando GeoLocationService, se você precisar segmentar um número grande de endereços em suas campanhas.

Segmentação geográfica das campanhas para uma região demarcada por polígono

Anteriormente, o Google AdWords permitia segmentar as campanhas para uma região demarcada por polígono. No entanto, as segmentações por polígono foram removidas para dar lugar às regiões por proximidade. Portanto, não é mais possível adicionar uma segmentação por polígono usando a Google AdWords API. No entanto, se você está recuperando segmentações geográficas de uma campanha existente, pode encontrar uma. Você pode excluir uma segmentação por polígono existente usando a Google AdWords API.

Recuperando segmentações geográficas

Você pode recuperar as segmentações geográficas de uma campanha usando o método CampaignCriterionService.get. É possível filtrar os resultados por CriteriaType a fim de restringi-los apenas a Local e usar paginação para limitar o número de segmentações recuperadas. O seguinte snippet de código mostra como isso é feito:

int offset = 0;

// Criar seletor.
Selector selector = new Selector();
selector.setFields(new String[] {"CampaignId", "Id", "CriteriaType", "LocationName"});
selector.setOrdering(new OrderBy[] {new OrderBy("Name", SortOrder.ASCENDING)});
selector.setPredicates(new Predicate[] {new Predicate("CriteriaType",
    PredicateOperator.EQUALS, new String[] {"LOCATION"})});
selector.setPaging(new Paging(offset, PAGE_SIZE));
CampaignCriterionPage page = null;
do {
  page = campaignCriterionService.get(selector);

  if (page.getEntries() != null) {
    // Exibir campanhas.
    for (CampaignCriterion campaignCriterion : page.getEntries()) {
      System.out.printf("Campaign criterion with campaign id '%s', criterion id '%s', "
          + "and type '%s' was found.\n", campaignCriterion.getCampaignId(),
        campaignCriterion.getCriterion().getId(),
        campaignCriterion.getCriterion().getCriterionType());
    }
    Thread.sleep(1000);
  } else {
    System.out.println("No campaign criteria were found.");
  }
  offset += PAGE_SIZE;
  selector.getPaging().setStartIndex(offset);
} while (offset < page.getTotalNumEntries());

Note que se sua campanha segmentar todos os países e regiões, você obterá uma lista vazia das segmentações por local.

Atualizando segmentações geográficas

Para atualizar segmentações geográficas de uma campanha, é necessário ter a lista de segmentações geográficas existentes e compará-la com a lista de segmentações geográficas novas. Em seguida, você pode usar o operador REMOVE para remover as segmentações geográficas desnecessárias, e o operador ADD para adicionar as novas segmentações geográficas de que precisa (mas que estão ausentes na atual campanha). Antes, a Google AdWords API permitia substituir a segmentação geográfica de uma campanha com o operador SET. Entretanto, isso não é mais praticado e será preciso usar a combinação REMOVE + ADD ao atualizar as segmentações geográficas da campanha.

Excluindo segmentações geográficas

A Google AdWords API permite excluir uma região para segmentação geográfica. Esse recurso é muito útil quando você quer segmentar uma região, mas excluir uma sub-região (por exemplo, segmentar os EUA inteiros, exceto a cidade de Nova York). Para excluir uma região, você pode criar um NegativeCampaignCriterion com seu critério como o local a ser excluído.

// Adicionar uma segmentação geográfica de campanha negativa.
NegativeCampaignCriterion negativeCriterion = new NegativeCampaignCriterion();
negativeCriterion.campaignId = campaignId;
negativeCriterion.criterion = locationToExclude;

Configurações avançadas de segmentação geográfica

O Google AdWords permite especificar se seus anúncios serão exibidos aos usuários por Local de presença ou Área de interesse. Para entender melhor essa questão, suponha que você gere uma campanha para uma floricultura e seu alvo seja apenas a cidade de Nova York. Vamos supor também que "flores" seja uma palavra-chave da campanha. Considere um usuário localizado na Califórnia em busca de "flores em Nova York". Nesse caso, a Califórnia é o Local de presença do usuário, ao passo que Nova York é a Área de interesse.

Você pode adicionar GeoTargetTypeSetting à campanha para decidir se exibirá os anúncios aos usuários com base em seu Local de presença, sua Área de interesse ou ambos. Há mais informações sobre essa configuração nesta postagem do blog.

Relatórios de desempenho geográfico

Para analisar a eficácia da segmentação geográfica nas campanhas, gere relatórios. A Google AdWords API fornece dois tipos de relatório para captar dados de desempenho geográfico:

  1. Você pode usar o Relatório de desempenho geográfico.
  2. Você pode usar o relatório de critérios e filtrar por CriteriaType=LOCATION ou PROXIMITY para captar dados de desempenho geográfico de determinada segmentação geográfica.

Consulte este guia para mais detalhes sobre como gerar um relatório usando a Google AdWords API.

Enviar comentários sobre…

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