Vídeo: confira a palestra sobre serviços e recursos do workshop de 2019 (em inglês)
Este guia apresenta os principais componentes da API Google Ads. A API Google Ads inclui recursos e serviços. Um recurso representa uma entidade do Google Ads, enquanto os serviços recuperam e manipulam entidades do Google Ads.
Hierarquia de objetos
Uma conta do Google Ads pode ser vista como uma hierarquia de objetos.

O recurso de nível mais alto de uma conta é o cliente.
Cada campanha contém um ou mais grupos de anúncios, usados para agrupar seus anúncios em coleções lógicas.
Um anúncio do grupo de anúncios representa um anúncio que você está veiculando. Exceto pelas campanhas de apps, que podem ter apenas um anúncio do grupo de anúncios por grupo, cada grupo de anúncios contém um ou mais anúncios do grupo de anúncios.
É possível anexar um ou mais AdGroupCriterion
ou CampaignCriterion a um grupo de anúncios ou
campanha. Eles representam critérios que definem como os anúncios são acionados.
Há muitos tipos de critérios, como palavras-chave, faixas etárias e locais. Os critérios definidos no nível da campanha afetam todos os outros recursos dela. Também é possível especificar orçamentos e datas para toda a campanha.
Por fim, você pode anexar recursos no nível da conta, da campanha ou do grupo de anúncios. Os recursos permitem fornecer informações extras aos seus anúncios, como números de telefone, endereços ou promoções. Consulte a visão geral dos recursos.
Recursos
Os recursos representam as entidades na sua conta do Google Ads. Campaign e AdGroup são dois exemplos
de recursos.
IDs de objeto
Cada objeto no Google Ads é identificado pelo próprio ID. Alguns desses IDs são globalmente exclusivos em todas as contas do Google Ads, enquanto outros são exclusivos apenas em um escopo limitado.
| ID do objeto | Escopo de exclusividade | Globalmente exclusivo? |
|---|---|---|
| ID do orçamento | Global | Sim |
| Campaign ID | Global | Sim |
| AdGroup ID | Global | Sim |
| Ad ID | Grupo de anúncios | Não, mas o par (AdGroupId, AdId) é globalmente exclusivo |
| AdGroupCriterion ID | Grupo de anúncios | Não, mas o par (AdGroupId, CriterionId) é globalmente exclusivo |
| CampaignCriterion ID | Campanha | Não, mas o par (CampaignId, CriterionId) é globalmente exclusivo |
| ID do rótulo | Cliente | Não, mas o par (CustomerId, LabelId) é globalmente exclusivo |
| ID da lista de usuários | Global | Sim |
| Código do recurso | Global | Sim |
Essas regras de ID podem ser úteis ao projetar o armazenamento local para seus objetos do Google Ads.
Alguns objetos podem ser usados para vários tipos de entidade. Nesses casos, o objeto contém um campo type que descreve o conteúdo. Por exemplo,
AdGroupAd pode se referir a um objeto como um anúncio de texto,
de hotel ou local. Esse valor pode ser acessado pelo
AdGroupAd.ad.type campo e retorna um valor na
AdType enumeração.
Nomes de recursos
Cada recurso é identificado exclusivamente por uma string resource_name, que concatena o recurso e os recursos de nível superior em um caminho. Por exemplo, os nomes dos recursos da campanha têm o seguinte formato:
customers/customer_id/campaigns/campaign_id
Portanto, para uma campanha com ID 987654 na conta do Google Ads com ID do cliente 1234567, o resource_name seria:
customers/1234567/campaigns/987654
Serviços
Os serviços permitem recuperar e modificar suas entidades do Google Ads. Há três tipos de serviços: modificação, recuperação de objetos e estatísticas e recuperação de metadados.
Modificar (alterar) objetos
Esses serviços modificam instâncias de um tipo de recurso associado usando uma solicitação mutate. Eles também fornecem uma solicitação get que recupera uma única instância de recurso, o que pode ser útil para examinar a estrutura de um recurso.
Exemplos de serviços:
CustomerServicepara modificar clientes.CampaignServicepara modificar campanhas.AdGroupServicepara modificar grupos de anúncios.
Cada solicitação mutate precisa incluir objetos operation correspondentes. Por
exemplo, o método CampaignService.MutateCampaigns espera uma ou mais
instâncias de CampaignOperation. Consulte
Como mudar e inspecionar objetos para uma
discussão detalhada sobre operações.
Modificações simultâneas
Um objeto do Google Ads não pode ser modificado simultaneamente por mais de uma origem. Isso pode causar erros se você tiver vários usuários atualizando o mesmo objeto com seu app ou se estiver modificando objetos do Google Ads em paralelo usando várias linhas de execução. Isso inclui atualizar o objeto de várias linhas de execução no mesmo aplicativo ou de aplicativos diferentes (por exemplo, seu app e uma sessão simultânea da interface do Google Ads).
A API não oferece uma maneira de bloquear um objeto antes da atualização. Se duas origens
tentarem modificar um objeto simultaneamente, a API vai gerar um
DatabaseError.CONCURRENT_MODIFICATION_ERROR.
Modificações assíncronas x síncronas
Os métodos de modificação da API Google Ads são síncronos. As chamadas de API retornam uma resposta somente depois que os objetos são modificados, exigindo que você aguarde uma resposta para cada solicitação. Embora essa abordagem seja relativamente simples de codificar, ela pode afetar negativamente o balanceamento de carga e desperdiçar recursos se os processos forem forçados a aguardar a conclusão das chamadas.
Uma abordagem alternativa é modificar objetos de forma assíncrona usando
BatchJobService, que realiza lotes de
operações em vários serviços sem aguardar a conclusão. Depois que um job em lote é enviado, os servidores da API Google Ads executam operações de forma assíncrona, liberando processos para realizar outras operações. Você pode verificar periodicamente o status do job para saber se ele foi concluído.
Consulte o guia de processamento em lote para mais informações sobre o processamento assíncrono.
Validação da modificação
A maioria das solicitações de modificação pode ser validada sem executar a chamada em dados reais. É possível testar a solicitação de parâmetros ausentes e valores de campo incorretos sem executar a operação.
Para usar esse recurso, defina o campo booleano opcional validate_only da solicitação como true. A solicitação será totalmente validada como se fosse ser executada, mas a execução final será ignorada. Se nenhum erro for encontrado, uma resposta vazia será retornada. Se a validação falhar, as mensagens de erro na resposta vão indicar os pontos de falha.
validate_only é particularmente útil para testar anúncios em busca de violações comuns da política. Os anúncios são rejeitados automaticamente se violarem políticas, como ter palavras, pontuação, capitalização ou comprimento específicos. Um único anúncio inadequado pode fazer com que todo um lote falhe. Testar um novo anúncio em uma solicitação validate_only pode revelar essas violações. Consulte o exemplo de código para processar
erros de violação de política para ver
isso em ação.
Receber objetos e estatísticas de performance
GoogleAdsService é o serviço unificado para recuperação de objetos e estatísticas de performance.
Todas as solicitações Search e SearchStream para GoogleAdsService exigem uma consulta que especifique o recurso a
consultar, os atributos de recurso e as métricas de performance a serem recuperadas, os
predicados a serem usados para filtrar a solicitação e os segmentos a serem usados para detalhar ainda mais as
estatísticas de performance. Para mais informações sobre o formato da consulta,
consulte o guia da linguagem de consulta do Google Ads.
Recuperar metadados
GoogleAdsFieldService recupera metadados sobre recursos na API Google Ads, como os atributos disponíveis para um recurso e o tipo de dados dele.
Esse serviço fornece as informações necessárias para criar uma consulta para
GoogleAdsService. Para sua conveniência, as
informações retornadas por
GoogleAdsFieldService também estão disponíveis
na documentação de referência de campos.