Embora a maioria dos serviços forneça APIs síncronas que exigem que você faça uma solicitação
e aguarde uma resposta, 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 BatchJobService repete automaticamente as
operações que falham devido a erros transitórios, como erros de limite de taxa. A
API Google Ads ainda conta cada operação para o
limite diário de operações, seguindo as
instruções de contagem de operações da API.
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 oferece suporte a todas as operações listadas em
MutateOperation cujo serviço subjacente oferece suporte a
falha parcial, bem como
AssetGroupOperation e
AssetGroupListingGroupFilterOperation, que são
explicitamente isentas e executadas (junto com operações interdependentes relacionadas)
em sub-lotes atômicos.
Como a API Google Ads executa operações padrão em um job com falha parcial ativada (exceto em sub-lotes atômicos), se um job for cancelado ou operações individuais falharem, as operações bem-sucedidas não serão revertidas.
As operações a seguir em MutateOperation precisam ser
atômicas e não oferecem suporte a falha parcial. Portanto, elas não são
aceitas em jobs em lote. A adição de qualquer uma dessas operações a um job em lote
retorna um
MutateError.OPERATION_DOES_NOT_SUPPORT_PARTIAL_FAILURE
erro (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 não aceitas no BatchJobService
BookCampaignsOperation(disponível emMutateOperation)CampaignConversionGoalOperationConversionGoalCampaignConfigOperationCustomConversionGoalOperationCustomerConversionGoalOperationCustomerOperationQuoteCampaignsOperation(disponível emMutateOperation; requervalidate_onlydefinido comotrue)