Embora a maioria dos serviços forneça APIs síncronas que exigem que você faça uma solicitação
e aguarde uma resposta, o BatchJobService oferece uma
maneira de realizar lotes de operações em vários serviços sem esperar de forma síncrona
que as operações sejam concluídas.
Ao contrário das operações de mutação específicas do serviço, um único job em
BatchJobService pode operar em uma coleção mista de
campanhas, grupos de anúncios, anúncios, critérios, rótulos e recursos. Os jobs enviados são executados em
paralelo, e o BatchJobService repete automaticamente
as operações que falham devido a erros temporários, como erros de limite de taxa. A
API Google Ads ainda conta cada operação no seu
limite diário, seguindo as instruções de contagem de
operações da API.
O BatchJobService também permite usar
IDs temporários nas solicitações para que você possa enviar operações
dependentes em um único job.
Operações
BatchJobService é compatível com todas as operações listadas em
MutateOperation cujo serviço subjacente é compatível com
falha parcial, bem como
AssetGroupOperation e
AssetGroupListingGroupFilterOperation, que são
explicitamente isentas e executadas (junto com operações interdependentes relacionadas)
em sublotes atômicos.
Como a API Google Ads executa operações padrão em um job com a falha parcial ativada (exceto em sublotes atômicos), se um job for cancelado ou se operações individuais falharem, as operações que foram bem-sucedidas não serão revertidas.
As seguintes operações em MutateOperation precisam ser
atômicas e não aceitam falhas parciais. Por isso, elas não são
compatíveis com jobs em lote. Adicionar qualquer uma dessas operações a um job em lote
retorna um erro
MutateError.OPERATION_DOES_NOT_SUPPORT_PARTIAL_FAILURE
(ou um InternalError.INTERNAL_ERROR para
BookCampaignsOperation e
QuoteCampaignsOperation). Em vez disso, execute-as usando
GoogleAdsService.Mutate com partial_failure definido como
false (e validate_only definido como true para
QuoteCampaignsOperation).
Operações incompatíveis no BatchJobService
BookCampaignsOperation(disponível emMutateOperation)CampaignConversionGoalOperationConversionGoalCampaignConfigOperationCustomConversionGoalOperationCustomerConversionGoalOperationCustomerOperationQuoteCampaignsOperation(disponível emMutateOperation; requer quevalidate_onlyseja definido comotrue)