Mudar objetos

Conforme discutido no guia de estrutura da API, cada recurso de nível superior na API Google Ads tem um serviço correspondente específico do tipo de recurso que permite modificar instâncias do recurso. Você também pode usar GoogleAdsService.Mutate para fazer mutações em vários tipos de recursos de forma atômica em uma única solicitação.

Este guia usa CampaignService para demonstrar a modificação de objetos Campaign, mas os mesmos conceitos se aplicam a todos os outros serviços específicos do tipo de recurso.

Solicitações de mutação

Cada serviço específico do tipo de recurso tem um método mutate que aceita uma solicitação de mutação. Essa solicitação consiste em:

  • Um customer_id (ou customerId em URLs REST)
  • Uma coleção de operations
  • Configurações de execução opcionais, como partial_failure, validate_only e response_content_type (que determina se o recurso mutável ou apenas o nome do recurso é retornado após a mutação).

Por exemplo, o método MutateCampaigns de CampaignService aceita um MutateCampaignsRequest que consiste em:

  • Um customer_id
  • Uma coleção de objetos CampaignOperation (operations)
  • Configurações de execução opcionais (partial_failure, validate_only e response_content_type indicando o tipo de resposta preferido)

Operações

Um objeto de operação, como um CampaignOperation, permite especificar a ação que você quer realizar em um único recurso definindo o campo operation. Esse campo é um oneof que consiste nos seguintes atributos:

create
Cria uma nova instância do recurso.
update
Atualiza o recurso para corresponder aos atributos do recurso update. Quando esse campo é definido, você também precisa definir o update_mask da operação, que informa à API Google Ads quais atributos modificar durante a operação de atualização. Cada biblioteca de cliente inclui um utilitário de máscara de campo ou um método auxiliar que gera o update_mask para você.
remove
Remove o recurso especificado pela string do nome do recurso (por exemplo, customers/1234567890/campaigns/987654321).

Como o campo operation é um campo oneof, não é possível usar uma única operação para modificar vários objetos. Por exemplo, se você quiser criar uma campanha e remover outra, adicione duas instâncias de CampaignOperation à sua solicitação: uma com create definido e outra com remove definido.

Operações em lote

Embora uma única operação só possa criar, atualizar ou remover um único recurso, uma única solicitação de mutação pode conter várias operações. Combine suas operações em uma única solicitação de mutação em vez de enviar várias solicitações que contêm uma única operação.

Por exemplo, se você quiser criar dez campanhas, envie um único MutateCampaignsRequest com dez objetos CampaignOperation. Para agrupar operações em diferentes tipos de recursos em uma única solicitação, use GoogleAdsService.Mutate ou recursos mutáveis.

Respostas de mutação

O que é retornado na resposta depende do que foi enviado no campo response_content_type da solicitação de mutação. Por exemplo, se MUTABLE_RESOURCE for especificado, a resposta vai conter o resource_name do recurso e os campos mutáveis da campanha em campaign. Por padrão (RESOURCE_NAME_ONLY), apenas o resource_name é preenchido em cada MutateCampaignResult.

Erros de mutação

Por padrão (partial_failure = false), as operações em uma solicitação de mutação são aplicadas à sua conta do Google Ads somente se todas as operações na solicitação forem bem-sucedidas. Se alguma operação falhar, toda a solicitação será revertida. Para solicitações de mutação que aceitam falha parcial (aquelas com um campo partial_failure na mensagem de solicitação), a definição de partial_failure = true confirma operações válidas enquanto as operações com falha retornam erros específicos da operação no campo partial_failure_error da resposta. Consulte o guia de falha parcial e o guia de erros comuns para mais detalhes sobre como lidar com erros.

Controlar alterações

Para acompanhar as mudanças feitas nos objetos da sua conta do Google Ads ou recuperar o estado atual deles, use os recursos change_status e change_event.

  • change_status fornece um resumo de quais recursos mudaram em um determinado período.
  • change_event fornece um histórico detalhado das mudanças, incluindo os valores antigos e novos dos campos alterados.

Para consultar esses recursos, use o método GoogleAdsService.SearchStream ou GoogleAdsService.Search. Leia mais sobre transmissão de relatórios usando GoogleAdsService.