Большинство сервисов предоставляют синхронные API, которые требуют, чтобы вы сделали запрос, а затем дождались ответа. BatchJobService позволяет выполнять пакеты операций в нескольких сервисах, не дожидаясь завершения операций.
В отличие от операций изменения, относящихся к определенному сервису, одно задание в BatchJobService может работать со смешанной коллекцией кампаний, групп объявлений, объявлений, критериев, ярлыков и объектов. Отправленные задания выполняются параллельно, и BatchJobService автоматически повторяет операции, которые не удалось выполнить из-за временных ошибок, например ошибок ограничения частоты запросов. Google Ads API по-прежнему учитывает каждую операцию в дневном лимите в соответствии с инструкциями по подсчету операций API.
BatchJobService также позволяет использовать в запросах временные идентификаторы, чтобы вы могли отправлять зависимые операции в одном задании.
Операции
BatchJobService поддерживает все операции, перечисленные в MutateOperation, если базовый сервис поддерживает частичные сбои, а также AssetGroupOperation и AssetGroupListingGroupFilterOperation, которые явно исключены и выполняются (вместе со связанными взаимозависимыми операциями) в атомарных подпакетах.
Поскольку Google Ads API выполняет стандартные операции в задании с включенной частичной ошибкой (за исключением атомарных подпакетов), то при отмене задания или сбое отдельных операций успешно выполненные операции не откатываются.
Следующие операции в MutateOperation должны быть атомарными и не поддерживают частичные сбои, поэтому они не поддерживаются в пакетных заданиях. Если добавить любую из этих операций в пакетное задание, будет возвращена ошибка MutateError.OPERATION_DOES_NOT_SUPPORT_PARTIAL_FAILURE (или InternalError.INTERNAL_ERROR для BookCampaignsOperation и QuoteCampaignsOperation). Вместо этого выполните их с помощью GoogleAdsService.Mutate, задав для partial_failure значение false (а для validate_only – значение true для QuoteCampaignsOperation).
Неподдерживаемые операции в BatchJobService
BookCampaignsOperation(доступно вMutateOperation)CampaignConversionGoalOperationConversionGoalCampaignConfigOperationCustomConversionGoalOperationCustomerConversionGoalOperationCustomerOperationQuoteCampaignsOperation(доступно вMutateOperation; требуется задать дляvalidate_onlyзначениеtrue)