Пакетная обработка

Большинство сервисов предоставляют синхронные API, которые требуют отправки запроса и ожидания ответа. BatchJobService позволяет выполнять пакетные операции с несколькими сервисами без синхронного ожидания завершения операций.

В отличие от операций изменения, относящихся к определенному сервису, одно задание в BatchJobService может работать с разными объектами: кампаниями, группами объявлений, объявлениями, критериями, ярлыками и объектами. Отправленные задания выполняются параллельно, и BatchJobService автоматически повторяет операции, которые не удалось выполнить из-за временных ошибок, например ошибок ограничения частоты запросов. Google Ads API по-прежнему учитывает каждую операцию в дневном лимите в соответствии с инструкциями по подсчету операций API.

BatchJobService также позволяет использовать в запросах временные идентификаторы, чтобы вы могли отправлять зависимые операции в рамках одного задания.

Операции

BatchJobService поддерживает все операции, перечисленные в MutateOperation, если базовый сервис поддерживает частичный сбой, а также AssetGroupOperation и AssetGroupListingGroupFilterOperation, которые явно исключены и выполняются (вместе со связанными взаимозависимыми операциями) в атомарных подпакетах.

Поскольку Google Ads API выполняет стандартные операции в задании с включенным параметром partial failure (кроме атомарных подпакетов), при отмене задания или сбое отдельных операций успешно выполненные операции не отменяются.

Следующие операции в MutateOperation должны быть атомарными и не поддерживают частичные сбои, поэтому они не поддерживаются в пакетных заданиях. Добавление любой из этих операций в пакетное задание приведет к ошибке MutateError.OPERATION_DOES_NOT_SUPPORT_PARTIAL_FAILURE (или InternalError.INTERNAL_ERROR для BookCampaignsOperation и QuoteCampaignsOperation). Вместо этого выполняйте их с помощью GoogleAdsService.Mutate, установив для partial_failure значение false (а для validate_only – true для QuoteCampaignsOperation).

Неподдерживаемые операции в BatchJobService